私はAndroidアプリをintellijとgradleで開発しています。次の方法を使用してキーストアファイルを生成します。
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
次に、build.gradleのキーストアファイルを使用しました。
signingConfigs {
robert {
storePassword 'robert'
storeFile file('/Users/bournewang/Documents/Project/Android.keystore')
keyPassword 'robert'
keyAlias 'mike'
}
}
最終的に署名済みapkファイルを生成しようとしたとき:./gradlew assembleRelease
エラーが発生します:
タスク ':Myexample:packageRelease'の実行に失敗しました。
キーストアからキーを読み取れませんでした
最初にキーストアファイルを確認します。例では、my-release-key.keystoreという名前のファイルを作成します。正しく、フォルダUsers/bournewang/Documents/Project
に実際に存在する場合、エイリアスをチェックします。例では-alias alias_nameですが、configではエイリアスmikeを指定しました
何が間違っているかを知るために、gradleのsigningReport
コマンドを使用できます。
Macの場合:
./gradlew signingReport
Windowsの場合:
gradlew signingReport
キーストアファイルのキーエイリアスが存在しない可能性があります。
これは answer 署名の問題を修正する必要があります;)
double-quotes
を削除することで問題が解決しました。
DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
私の場合、他のソースからテキストをコピーしているときに、クリップボードエントリの最後にスペースが含まれていました。こうすることで、キーパスワードの末尾にスペースができました。
ファイル名やエイリアスだけでなく、任意のパラメータを使用できます。私にとっては、キーパスワードです。
署名設定を使用せず、コマンドラインですべてのパラメーターを入力してCordova Releaseコマンドをテストする場合、パスワードに特殊文字が含まれている場合は、パスワードを一重引用符で囲む必要があります。
cordova run Android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'