跳转到内容
Tauri

安卓代码签名

要在 Play 商店上发布,您需要使用数字证书对应用程序进行签名。

安卓使用两个签名密钥:上传和应用签名。

开发者将使用上传密钥签名的 .aab.apk 文件上传到Play商店。 最终用户下载使用应用签名密钥签名的 .apk 文件。 要创建您的应用签名密钥,请按照官方 Play 商店文档中描述的步骤来进行。

请按照以下说明对您的应用进行签名。

  1. 创建一个 upload 密钥库

    如果您已经有一个密钥库,请跳到下一步。如果没有,请使用以下方法之一创建一个。

    1. 按照 Android Studio 密钥生成步骤

    2. 在命令行中运行如下命令: 在 Mac/Linux 中,执行如下命令:

      keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

      在 Windows 上,执行如下命令:

      keytool -genkey -v -keystore $env:USERPROFILE\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

      这个命令将 upload-keystore.jks 文件存储在你的家目录中。如果你想把它存储在其他地方,可以改变传递给 -keystore 参数的参数值。然而,请保持 keystore 文件的私密性,不要将其提交到公共源代码控制!

  2. 从应用程序中引用密钥库

    创建一个名为 [project]/src-tauri/gen/android/keystore.properties 的文件,其中包含对你的密钥库的引用。

    storePassword=<password from previous step>
    keyPassword=<password from previous step>
    keyAlias=upload
    storeFile=<密钥存储文件的位置,例如 /Users/<user name>/upload-keystore.jks 或 C:\\Users\\<user name>\\upload-keystore.jks>
  3. 在 Gradle 中配置签名

    通过编辑 [project]/src-tauri/gen/android/app/build.gradle.kts 文件,配置 gradle 在发布模式下构建应用时使用您的上传密钥。

    1. 在文件开头添加所需的导入。

      import java.util.Properties
      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["keyPassword"] as String
      storeFile = file(keystoreProperties["storeFile"] as String)
      storePassword = keystoreProperties["storePassword"] as String
      }
      }
      buildTypes {
      ...
      }
    3. buildTypes 块中的 release 配置中使用新的 release 签名配置。

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

你应用的发布版本现在会自动签名。


© 2024 Tauri Contributors. CC-BY / MIT