AndroidStudioで生成したAPKをDeveloperConsoleにアップ出来ないケース

More than 5 years have passed since last update.

AndroidStudioでは、BuildメニューからGenerate Signed APKを選択すると、署名付きAPKファイルを生成出来ます。

生成されたAPKファイルをDeveloper Consoleにアップロードすれば、公開用アプリとして登録されるはずです。

しかしアップロード完了後、Developer Consoleに以下のようなエラーが表示され、アップロードに失敗しました。


アップロードできませんでした

デバッグ可能な APK をアップロードしました。セキュリティ上の理由により、Google Play に公開するにはデバッグを無効にする必要があります。デバッグ可能な APK の詳細をご確認ください。


下記のブログで、同じケースのことが書かれており、解決出来ました。

「デバッグ可能なAPKをアップロードしました。」などどと言い始めた Google Play Developer Console(新! #android ファッション通信 Σ(^A^;))


解決方法


  1. AndroidManifest.xml ファイルに android:debuggable="false" を追記する

  2. AndroidStudio の Build Variants を release にしてから APK を生成する


AndroidManifest.xml ファイルに android:debuggable="false" を追記する

<application> タグを以下のように修正します。


AndroidManifest.xml

    <application

android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@string/AppTheme"
android:debuggable="false"
>
....
</application>


AndroidStudio の Build Variants を release にしてから APK を生成する

AndroidStudioのTool Windowsメニューから、Build Variantsを選択します。

するとソースツリーの下あたりに、Build Variantsウィンドウが出現します。そこでBuild Variantの設定がDebugになっている場合は、Releaseに切り替えます。


まとめ

上記2つの方法であれば、どちらでもDeveloper Consoleへ登録可能なAPKが生成出来ました。

ただし、AndroidStudioを使う上では2番目のBuild Variantsを切り替える方法が、正しいのだと思います。

理由は、BuildツールとしてGradleを採用しているからです。

GradleでBuildする最大のメリットとして、1つのプロジェクトから複数バージョンのAPKを生成することが出来ます。デフォルトのBuild Variantsには、DebugとReleaseしかありませんが、それ以外にも自由に追加可能なため、生成したいAPKに合わせてBuild Variantsを都度切り替えるやり方が、本来の使い方のようです。

このへんのBuild Variantsについては、下記ブログがすごく参考になります。

Build Variants によって別バージョンの Android アプリを同じプロジェクトからビルドする (Gradle 使用)(ひだまりソケットは壊れない)