エラーメッセージ:
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コマンドプロンプトを使用。
keytool -keystore formconnect.keystore -list -v
このコマンドを使用して、キーを生成した後にエイリアス名を見つけることができます。
実行の最初の行にはエイリアス名が含まれています:<value>
keytoolが使用される場合、エイリアス名は「mykey」になります。
アプリケーションをパッケージ化するときにそのエイリアス名を使用します。
私のコマンドが同じ問題を抱えていた
キーを生成するため
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
チームの開発者が問題を解決するソリューションを提案しました。以前は、Foo.apkをjarsigner.exeのあるディレクトリにコピーして、そこで実行しようとしました。プロポーズした:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore .keystore Foo.apk project_foo
できます!キーストアのファイルパスを指定する必要性を削除して、問題を修正しました。
リリースunsigned.apkフォルダーパスを追加
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore keystorename.keystore .....\ platforms\Android\build\outputs\apk\Android-release-unsigned.apkエイリアス名
それは私のために働いています!!