つばくろぐ @takamii228

知は力なり

APKファイルとIPAファイルのバージョン情報をコマンドラインから確認する

apkファイルとipaファイルのバージョン情報をコマンドラインで確認する方法を備忘録として残しておきます。

apkとipaのバージョン情報について

apkファイル及びipaファイルのバージョン情報は、ストア申請のときのバージョニング情報として利用されるものです。それぞれ公式に詳細が記載されています。

両OSともにx.y.zというバージョンの文字列と、バージョンの一意性を表す数字が定義されています。微妙に呼び名が異なるので注意が必要です。

OS バージョン名 ビルド番号
Android versionName versionCode
iOS version number build string

versionNameとversin numberがストアで表示されるときのバージョン番号ですね。

apkのversionNameとversionCodeをコマンドラインから確認する

apkのバージョン番号とビルド番号を確認するのは、Android Studioでapk analyzerにかければすぐにわかりますが、ここではコマンドラインを使う方法を紹介します。

コマンドとしてはAndroid SDKに含まれるaapt2コマンドを使うことでAndroidManifest.xmlの情報が取得できます。それをgrepして加工してあげればほしい情報が出力できます。

developer.android.com

$ aapt2 dump badging sample.apk | grep "versionName" | sed -e "s/.*versionName='//" -e "s/' .*//"
1.2.3
$ aapt2 dump badging sample.apk | grep "versionCode" | sed -e "s/.*versionCode='//" -e "s/' .*//"
100

ipaのversion numberとbuild stringをコマンドラインから確認する

ipaについてはBitriseが公開しているipa_analyzerを使うのが便利です。

github.com

ipaのバージョン情報・ビルド番号はipaが持つinfo.plistの中のCFBundleShortVersionStringおよびCFBundleVersionに記載されています。

ipa_analyzerを使うとinfo.plistの値をjson形式で情報を出力してくれるので、jqコマンドでフィルターをかければよいでしょう。

$ ipa_analyzer -i sample.ipa -p --info-plist --prov | jq -r '.info_plist | .content | .CFBundleShortVersionString'
1.2.3
$ ipa_analyzer -i sample.ipa -p --info-plist --prov | jq -r '.info_plist | .content | .CFBundleVersion'
100

CIマシンでバージョニングを自動化するときに、正しくバージョニングできているかを上記のコマンドを使って確認するとよいでしょう。