Android Studioを使用してAndroidプロジェクトをビルドし、APKをGoogle Playにアップロードすると、使用しているにもかかわらずこのエラーが表示され続けます同じキーストアアプリの以前のバージョンで使用したもの:
アップロードに失敗しました
以前のAPKとは異なる証明書で署名されたAPKをアップロードしました。同じ証明書を使用する必要があります。
既存のAPKは、指紋付きの証明書で署名されています:
[SHA1:89:2F:11:FE:CE:D6:CC:DF:65:E7:76:3E:DD:A7:96:4F:84:DD:BA:33]
およびアップロードしたAPKの署名に使用される証明書には指紋があります:
[SHA1:20:26:F4:C1:DF:0F:2B:D9:46:03:FF:AB:07:B1:28:7B:9C:75:44:CC]
まず、Google Playがここで間違っている可能性は低いです。デバッグキーを誤って使用しなかったと確信していますか?
次のコマンドを使用して、古いAPKと新しいAPKに含まれる証明書を再確認する必要があります。
jarsigner -verify -verbose:summary -certs old.apk
jarsigner -verify -verbose:summary -certs new.apk
次のように、各APKで署名されたファイルに関する情報が表示されます。
sm 4642892 Thu Apr 17 10:57:44 CEST 2014 classes.dex (and 412 more)
X.509, CN=My App, O=My Company, C=DE, L=Köln
[certificate is valid from 11/11/13 12:12 to 29/03/41 12:12]
[CertPath not validated: Path does not chain with any of the trust anchors]
新しいAPKにX.509, CN=Android Debug, O=Android, C=US
、その後、元のリリースキーではなくデバッグキーでAPKに署名しました。
X.509 ID文字列が異なる場合、または2つのAPK間で証明書の日付が異なる場合は、notを使用したことを確認しただけです。両方のAPKに同じ署名キー。
「CertPath not validated」メッセージは無視できます。この場合は関係ありません。
証明書情報が異なる場合は、元のキーストア、つまりGoogle Playから通知された最初のSHA1値を持つファイルを見つける必要があります。
正しいSHA1フィンガープリントを持つものが見つかるまで、見つけることができるすべてのキーストアファイルを検索します。
keytool -list -keystore my-release.keystore
元のキーストアが見つからない場合は、neverこの特定のアプリの更新を公開できません。
Androidは、これを アプリケーションの署名 ページで明示的に言及しています。
警告:キーストアと秘密鍵を安全で安全な場所に保管し、それらの安全なバックアップがあることを確認してください。 Google Playにアプリを公開してからアプリに署名したキーを紛失した場合、アプリのすべてのバージョンに常に署名する必要があるため、アプリの更新を公開することはできません同じキーで。
APKの最初のリリース後、後続のすべてのリリースはまったく同じキーで署名する必要があります。
いいえ、これは不可能です。 APKには公開情報のみが含まれ、秘密鍵情報は含まれません。
いいえ。元のファイルを見つけても、キーAでAPKに署名してから、キーAとBの両方で次のアップデートに署名してから、キーBのみで次のアップデートに署名することはできません。
複数のキーを使用してAPK(または任意のJARファイル)に技術的に署名できますが、Google Playは複数の署名を持つAPKを受け入れません。
新しいアプリケーションIDを使用してアプリを構築し(たとえば、「com.example.myapp」から「com.example.myapp2」に変更する)、Google Playで新しいリストを作成する必要があります。
おそらく、古いアプリがインストールされていても人々が新しいアプリをインストールできるようにコードを変更する必要があります。競合するコンテンツプロバイダーがいないことを確認する必要があります。
既存のインストールベース、レビューなどが失われ、既存の顧客に古いアプリをアンインストールして新しいバージョンをインストールさせる方法を見つける必要があります。
繰り返しますが、このバージョンで使用するキーストアとパスワードのバックアップがあることを確認してください。