Android unsigned release apk filesに署名するための証明書を取得したので、次のコマンドを使用してcerをインポートしました:
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keystore my_keystore.keystore
しかし、Android studioでアプリに署名すると、エラーが発生します。
Error:Execution failed for task ':packageDebug'.
> com.Android.ide.common.signing.KeytoolException: Failed to read key alias_name from store "C:\Users\username\my_keystore.keystore": trusted certificate entries are not password-protected
私の推論では、キーはパスワードで保護されていないため、もう一度試して、キーのパスワードを次のように設定しました。
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keypass changeit -keystore my_keystore.keystore
しかし、それでもエラーは解決しません。
私はjarsignerを使って手動の手順でも試しました:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name
エラーが発生しました:
jarsigner: Certificate chain not found for: alias_name. alias_name must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
Android apk signingsのこのエラーに関する関連する投稿を取得できないので、私を助けてください
* .cerファイルには通常、証明書のみが含まれ、APKの署名に必要な秘密鍵は含まれません。
キーストアの内容を一覧表示します。
keytool -list -v -keystore my_keystore.keystore
Entry type:
行を探します(対応するエイリアスを探します)。値はPrivateKeyEntry
ではなくtrustedCertEntry
である必要があります
Keystore Explorer を取得することを強くお勧めします。このプログラムは、キーストアと証明書の問題があったときに私の人生を2回以上救いました。これは無料でオープンソースであり、ナビゲートしやすいGUIです。新しいキーペアを作成し、既存のキーペアをキーストアにインポートできます。私は約3年前にそれを使い始めました、そしてそれはまだ開発ツールのための私のフォルダーにあります。
Android studioを使用している場合、apkに署名するための非常に簡単な解決策があります。以下の手順に従ってください。)Androidメニューに移動します ->Find Build->署名付きAPKを生成...その後新しいウィンドウが表示されます->[Create new ...]ボタンをクリックします。次に、以下に示すように詳細を入力してをクリックしますOK->次へ ->今後使用するために.jksファイルを保存するキーストアパスを選択します->必要なパスワードを設定します-> エイリアス名の設定->パスワード->証明書の詳細を入力してください->次にクリック
署名したいディレクトリを選択します.apkが保存します(それ以外の場合はapp folder内に生成されます)->release)->署名バージョンを選択->クリックフィニッシュ
APKが正常に生成されるまで待ちます