こんにちは。きんくまです。
これは取引先の人に教えてもらったのだけど、Androidのapkファイルからパッケージ名などの情報が確認できるみたい。
AndroidのSDKをどこかにダウンロードしてあるとして、その中にapptなるツールがあります。
自分の場合だと、
SDKへのパス/sdk/build-tools/android-4.2.2/aapt
に入っていました。
で、それを使って中身を見ます。
aapt dump badging xxxxx.apk
>> android パッケージ名 バージョン 確認 – peroon’s diary
または、別のコマンドで詳細に見るには
aapt l -a xxxx.apk
そうするとpackageのところにパッケージ名が書いてあります。
AIRから書き出したアプリケーションIDがAndroidのパッケージ名に変換される
で、AIRから実際に書き出したパッケージ名を見てみます。
もしAIR用の設定ファイル xxxxx-app.xml の中でアプリケーションIDを
<id>com.foo-bar.myapp</id>
というふうにハイフンつきで指定すると、パッケージ名は
air.com.foo_bar.myapp
とアンダーバーに変更されてました。あと先頭にairが追加されます。
じゃあ、今度はAIR用の設定ファイルでアンダーバーをつけたアプリケーションIDを使うとどうなるかというと、これはエラーで書き出せませんでした。
アンダーバーと、ハイフンはiOS, Androidでそれぞれ使える、使えないというのがあるみたいです。
アンダーバー _ はiOSのAppIDだと使えない。
あと、今度はハイフン – はAndroidだと使えない。
>> iPhone/Android両対応アプリを作る際にハイフンを含んだApp IDを使うとき
AIRのxmlのIDが、Androidではいろいろと変換とか追加されちゃいましたけど、iOSはプロビジョニングファイルのアプリケーションIDと一致してないとはじかれるので、そのまま使われていると思います。
おまけ
ターミナルのコマンドで一時的に使いたくて、/usr/local/binとかにエイリアスをわざわざおきたくないとき。
エイリアス名=フルパス
としておくと便利です。一時的にターミナル内で変数として使えます。ターミナルを終了しちゃえば残らないです。
設定時 =の前後にスペースは空けないことに注意です。
今回のaaptコマンドだったら
myaapt=SDKへのパス/sdk/build-tools/android-4.2.2/aapt
という感じです。使い方はエイリアス名に$をつけます。
そうすれば、apkファイルのおいてあるディレクトリに行ったあとに
$myaapt dump badging xxxxx.apk
とできます。で、じゃあこのコマンドのもともとはどこなの?ていうときは
which $myaapt
とやると、もとのフルパスが表示されます。
■ 自作iPhoneアプリ 好評発売中!
・フォルメモ - シンプルなフォルダつきメモ帳
・ジッピー電卓 - 消費税や割引もサクサク計算!
■ LINEスタンプ作りました!
毎日使える。とぼけたウサギ