.apkファイルはZipファイルであり、それらを抽出すると、アプリに関する情報を見つけるためにマニフェストファイルを解析できることを私は知っています。これは、アプリストアを作成しようとしている私のような人にとって非常に便利です。実際、少なくとも私はアプリのバージョン名とバージョンコードを見つけることができます。
しかし、Android-studioでは、署名されたapkをビルドすると、バージョン名とバージョンコードがマニフェストファイルで定義されていません。それらをbuild.gradle
ファイルで定義する必要があります。では、ユーザーがファイルをアップロードするときにアプリストアでバージョンコードとバージョン名を見つけて、それが古いバージョンと同じでないことを検出するにはどうすればよいですか?
パス/ to/your/Android-sdk/build-tools/your-api-version-available/...からAAPTを使用するだけです。
コマンド実行の例:
aapt dump badging theuserapp.apk
そしてそれは次のようなもので応答します:
package: name='com.blabla.theuserapp' versionCode='2000' versionName='2.0.0'
もちろん、このツールは生のテキスト出力を生成する実行可能ファイルであるため、簡単にスクリプトを作成して、お気に入りのスクリプト言語から解析することができます。