web-dev-qa-db-ja.com

証明書チェーンが見つかりません、修正してGoogle Playストアに公開する方法は?

エラーメッセージ

jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

[〜#〜] question [〜#〜]:エラーに対処するために公開鍵証明書チェーンを含めるにはどうすればよいですか?

[〜#〜] background [〜#〜]:アプリ開発者はAndroidアプリを完了し、 Foo.apkという名前の署名されていないAPK。Google Playストアにアップロードする準備として、APKに署名してzipalignすることが私のキーストアはWindowsマシンのC:\ Path\.keystoreにあります。

コマンドライン、私のコマンド:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Path\\.keystore Foo.apk project_foo

コマンドライン、応答:

Enter Passphrase for keystore:
jarsigner: Certificate chain not found for: project_foo.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

また試された:正しいパスワードを覚えていることを確認した。コマンドラインから「keytool -list」を使用すると、予想されるリストが表示されます(1つの秘密鍵が含まれます)。

OSの以前の質問証明書チェーンが見つかりません.cerファイルはVerisignから。利用可能な同様のファイルはありません。

その他の情報:Windows 7マシン、標準のWindowsコマンドプロンプトを使用。

41
campbellwarren

keytool -keystore formconnect.keystore -list -v

このコマンドを使用して、キーを生成した後にエイリアス名を見つけることができます。

実行の最初の行にはエイリアス名が含まれています:<value> keytoolが使用される場合、エイリアス名は「mykey」になります。

アプリケーションをパッケージ化するときにそのエイリアス名を使用します。

91
Umitk

私のコマンドが同じ問題を抱えていた

キーを生成するため

 keytool -genkey -v -keystore testapp-key.keystore -alias testapp-key -keyalg RSA -keysize 2048 -validity 10000

その後、アプリに署名するためにこれを行いました

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testapp-key.keystore testapp.apk testapp

このエラーが発生しました

jarsigner: Certificate chain not found for: testapp.<br/>
project_foo must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.

次に、jarsignirコマンドのエイリアス'testapp''testapp-key'のキーエイリアスに置き換えました。これは最初のコマンド、つまりキー生成コマンドにあります

コマンドは次のようになります

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore testapp-key.keystore testapp.apk testapp

あなたの場合、それはこのようになります

 jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore C:\Path\\.keystore Foo.apk your-key-alias
9

チームの開発者が問題を解決するソリューションを提案しました。以前は、Foo.apkをjarsigner.exeのあるディレクトリにコピーして、そこで実行しようとしました。プロポーズした:

  1. Windowsがjarsigner実行可能ファイルを見つけることができるように、PATH環境変数を設定します。
  2. Foo.apkをキーストアが配置されているパスに移動します。
  3. 以下のコマンドを実行します(キーストアを見つけるためにパスを使用せずに)。
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore .keystore Foo.apk project_foo

できます!キーストアのファイルパスを指定する必要性を削除して、問題を修正しました。

3
campbellwarren

リリースunsigned.apkフォルダーパスを追加

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystorename.keystore .....\ platforms\Android\build\outputs\apk\Android-release-unsigned.apkエイリアス名

それは私のために働いています!!

1
Dhanashri Dhoke