誤刪 debug.keystore 或忘記密碼,導致無法簽署 Debug 版本 APK。Eclipse/Android Studio 會自動產生新的 debug keystore,但有時會失敗或報錯。
| 作業系統 | 路徑 |
|---|---|
| Linux / macOS | ~/.android/debug.keystore |
| Windows | %USERPROFILE%\.android\debug.keystore |
debug.keystore 檔案Build > Clean Project → Build > Rebuild ProjectRun > Run 'app',Gradle 會自動偵測缺失並重新產生新產生的 keystore 預設屬性:
androiddebugkeyandroid(keystore 與 key 密碼相同)
keytool -genkey -v -keystore debug.keystore \
-alias androiddebugkey \
-keyalg RSA -keysize 2048 -validity 10000 \
-storepass android -keypass android \
-dname "CN=Android Debug,O=Android,C=US"
參數說明:
-validity 10000:有效期 10000 天(約 27 年)-dname:區分名稱,避免互動式輸入.android 目錄在 app/build.gradle 中指定:
android {
signingConfigs {
debug {
storeFile file("../debug.keystore") // 相對專案根目錄
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
}
}
.android/debug.keystore| 問題 | 原因 | 解決 |
|---|---|---|
| 重建後簽名不一致 | 新舊 keystore 不同,無法直接升級安裝 | 解除安裝舊版 App 再安裝新版 |
| Gradle 報 keystore not found | 路徑錯誤或檔案損毀 | 檢查 signingConfigs 路徑,或刪除讓 Gradle 自動重建 |
| 密碼錯誤 | 手動建立時密碼非預設值 | Gradle 設定對應密碼,或重新用預設密碼產生 |
| 有效期過短 | 舊版預設 365 天 | 手動產生指定 -validity 10000 |
Release keystore 一旦遺失無法恢復(除非有備份),將導致無法更新上架應用。務必:
Debug keystore 遺失無妨,**刪除舊檔案後 Clean/Renbuild 專案即可自動重建**。預設密碼 android、別名 androiddebugkey。若需自訂參數可用 keytool 手動產生並配置 Gradle。Release keystore 則必須妥善備份,遺失將無法更新應用。