Android 程式碼簽署
若要在 Play 商店上發布,您需要使用數位憑證簽署您的應用程式。
Android App Bundles 和 APK 必須先經過簽署,才能上傳以進行發布。
Google 也為在 Play 商店中發布的 Android App Bundles 提供了額外的簽署機制。請參閱官方 Play App Signing 文件以取得更多資訊。
建立金鑰庫和上傳金鑰
Android 簽署需要 Java Keystore 檔案,該檔案可以使用官方 keytool
CLI 產生
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
keytool -genkey -v -keystore $env:USERPROFILE\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
此命令會將 upload-keystore.jks
檔案儲存在您的主目錄中。如果您想要將其儲存在其他位置,請變更您傳遞給 -keystore
參數的引數。
請參閱官方文件以取得更多資訊。
設定簽署金鑰
建立名為 [project]/src-tauri/gen/android/keystore.properties
的檔案,其中包含對您的金鑰庫的參考
password=<password defined when keytool was executed>keyAlias=uploadstoreFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks or C:\\Users\\<user name>\\upload-keystore.jks>
您通常會在您的 CI/CD 平台中產生此檔案。以下程式碼片段包含 GitHub Actions 的範例工作步驟
- name: setup Android signing run: | cd src-tauri/gen/android echo "keyAlias=${{ secrets.ANDROID_KEY_ALIAS }}" > keystore.properties echo "password=${{ secrets.ANDROID_KEY_PASSWORD }}" >> keystore.properties base64 -d <<< "${{ secrets.ANDROID_KEY_BASE64 }}" > $RUNNER_TEMP/keystore.jks echo "storeFile=$RUNNER_TEMP/keystore.jks" >> keystore.properties
在此範例中,金鑰庫已使用 base64 -i /path/to/keystore.jks
匯出為 base64,並設定為 ANDROID_KEY_BASE64
密碼。
設定 Gradle 以使用簽署金鑰
設定 gradle 以在發布模式中建置您的應用程式時使用您的上傳金鑰,方法是編輯 [project]/src-tauri/gen/android/app/build.gradle.kts
檔案。
-
在檔案開頭新增所需的 import
import java.io.FileInputStream -
在
buildTypes
區塊之前新增release
簽署配置signingConfigs {create("release") {val keystorePropertiesFile = rootProject.file("keystore.properties")val keystoreProperties = Properties()if (keystorePropertiesFile.exists()) {keystoreProperties.load(FileInputStream(keystorePropertiesFile))}keyAlias = keystoreProperties["keyAlias"] as StringkeyPassword = keystoreProperties["password"] as StringstoreFile = file(keystoreProperties["storeFile"] as String)storePassword = keystoreProperties["password"] as String}}buildTypes {...} -
在
buildTypes
區塊中的release
配置中使用新的release
簽署配置buildTypes {getByName("release") {signingConfig = signingConfigs.getByName("release")}}
您的應用程式的發布版本現在將自動簽署。
© 2025 Tauri Contributors。CC-BY / MIT