[Android | AIR] パッケージ名を確認する。あとAIRから書き出したアプリケーションIDの変換法則とか

2013/11/30

こんにちは。きんくまです。

これは取引先の人に教えてもらったのだけど、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

とやると、もとのフルパスが表示されます。

LINEで送る
Pocket

自作iPhoneアプリ 好評発売中!
フォルメモ - シンプルなフォルダつきメモ帳
ジッピー電卓 - 消費税や割引もサクサク計算!

ページトップへ戻る