Android Studio 2.3でAPKに署名しました(build->generate signed APK)。GooglePlayストアにアップロードしようとすると、署名されていないAPKをアップロードしたというエラーが表示されます。どなたか原因と解決方法を教えてください。
Android 7.0はAPK署名スキームv2を導入しています。これは、アプリのインストール時間を短縮し、APKファイルへの不正な変更に対する保護を強化する新しいアプリ署名スキームです。
署名されたapkを生成している間、2つのチェックボックスがあります。 .
1。 V1(瓶署名)。 2。 V2(完全なapk署名)。
3つの選択肢があります。
1。 V1を選択します(古いバージョンの署名の場合)-apkが正常にアップロードされます。
2。 V2を選択します(新しいバージョンの署名の場合)-これだけでは機能しないことに注意してください。
3。 V1とV2を選択します(古いバージョンと新しいバージョンの場合)-apkが正常にアップロードされます。
V2のみを選択しても機能しない理由。 ?。
APK Signature Scheme v2がAndroid 7.0(Nougat)で導入されたためです。 APKをAndroid 6.0(Marshmallow)および古いデバイスにインストールできるようにするには、v2スキームと署名する前に、JAR署名を使用してAPKに署名する必要があります。。
詳細については、ここにジャンプ。
これは、リリースビルドを取得しているときにv2シグネチャのみを使用しているためです。
したがって、v1とv2については何が言及されています?
v1はデフォルトの署名メカニズムであり、v2は追加された最新のメカニズムであり、はるかに速く検証されます。 これは、v2署名のAPKがAndroid Nougat(Android 7.0、APIレベル24)でより速くインストール/更新されることを意味します。
だからあなたは何をすべきですか?
変更なしでアプリに署名する場合。
デフォルトであるv1(jar署名のみ)を確認します。
最新の署名と7.xバージョンのサポートが必要な場合。
v2(完全なApk署名)を確認してください。これにより、アプリのサイズも小さくなります。
アプリを小さくしたい場合は、より速くインストールでき、すべてのAndroidバージョンと互換性があります。
v1とv2の両方を確認します。
PS:パイプのビルド以外で、Studioでアプリに署名する場合にのみ適用されます。
より多くのレフリースのためにリンク。
V2を使用してAPKに署名する方法
https://developer.android.com/studio/command-line/apksigner.html
ステップ1) Android Studioの「ツールウィンドウ」から「ターミナル」を選択します。
gradlew assembleRelease
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
apksigner sign --ks my-release-key.jks my-app-unsigned-aligned.apk --out my-app-release.apk
注: apksignerツールを使用するには、Android SDK Build Toolsのリビジョン24.0.3以降がインストールされている必要があります。このパッケージはSDK Managerを使ってアップデートできます。
apksigner verify my-app-release.apk
Note: Step 2 to 4 Perform in Command Prompt G:◆AndroidStudio ◆Sdk ◆build-tools