跳到主要內容
Tauri

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

此命令會將 upload-keystore.jks 檔案儲存在您的主目錄中。如果您想要將其儲存在其他位置,請變更您傳遞給 -keystore 參數的引數。

請參閱官方文件以取得更多資訊。

設定簽署金鑰

建立名為 [project]/src-tauri/gen/android/keystore.properties 的檔案,其中包含對您的金鑰庫的參考

password=<password defined when keytool was executed>
keyAlias=upload
storeFile=<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 檔案。

  1. 在檔案開頭新增所需的 import

    import java.io.FileInputStream
  2. 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 String
    keyPassword = keystoreProperties["password"] as String
    storeFile = file(keystoreProperties["storeFile"] as String)
    storePassword = keystoreProperties["password"] as String
    }
    }
    buildTypes {
    ...
    }
  3. buildTypes 區塊中的 release 配置中使用新的 release 簽署配置

    buildTypes {
    getByName("release") {
    signingConfig = signingConfigs.getByName("release")
    }
    }

您的應用程式的發布版本現在將自動簽署。


© 2025 Tauri Contributors。CC-BY / MIT