更改 Android React-Native 应用程序的上传密钥

Stu*_*rtM 5 android keystore gradle android-keystore fastlane

我们必须为 React-Native Android 应用程序重置我们的 Android 上传密钥。我们联系了 Google 以重置密钥。

Google 要求我们完成以下步骤: 以下是生成和注册新上传密钥的方法:

按照 Android Studio 帮助中心中的说明生成新密钥。它必须与任何以前的键不同。或者,您可以使用以下命令行生成新密钥:

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
Run Code Online (Sandbox Code Playgroud)

此密钥必须是 2048 位 RSA 密钥并具有 25 年的有效期。将该密钥的证书导出为 PEM 格式:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks 
Run Code Online (Sandbox Code Playgroud)

回复此电子邮件并附上 upload_certificate.pem 文件。

进一步的步骤
我们现在有了生成的文件keystore.jks和一个upload_certificate.pem文件。

以前我们的应用程序使用“***-release-key.keystore”文件上传。

构建过程
gradle.properties 文件

MYAPP_RELEASE_STORE_FILE=APPNAME-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=APPNAMEapprelease
Run Code Online (Sandbox Code Playgroud)

build.gradle 文件

def getPassword(String currentUser, String keyChain) {
  def stdout = new ByteArrayOutputStream()
  def stderr = new ByteArrayOutputStream()
  exec {
      commandLine 'security', '-q', 'find-generic-password', '-a', currentUser, '-s', keyChain, '-w'
      standardOutput = stdout
      errorOutput = stderr
      ignoreExitValue true
  }
  //noinspection GroovyAssignabilityCheck
  stdout.toString().trim()
}

def releasekeypass = getPassword("APPNAME","android_keystore")
def releasekeyalias = getPassword("APPNAME","android_keystore")
Run Code Online (Sandbox Code Playgroud)

备注
我们使用 fastlane 来部署应用程序。我们如何使用我们拥有的新文件获取/更改 .keystore 文件?

Fab*_*bio 3

文档在某些地方往往会随意引用.jks文件.keystore。它们的格式相同。

自己检查一下:

file APPNAME-release-key.keystore
APPNAME-release-key.keystore : Java KeyStore 
> file keystore.jks
keystore.jks : Java KeyStore 
Run Code Online (Sandbox Code Playgroud)

那么您的解决方案很简单,只需重命名keystore.jksAPPNAME-release-key.keystore.