更改Android React本机应用程序的上载密钥

更改Android React本机应用程序的上载密钥,android,gradle,keystore,fastlane,android-keystore,Android,Gradle,Keystore,Fastlane,Android Keystore,我们必须为React本地Android应用程序重置Android上载密钥。我们联系谷歌重置了密钥 谷歌要求我们完成以下步骤: 以下是如何生成和注册新的上载密钥: 按照Android Studio帮助中心中的说明生成新密钥。它必须与以前的任何键不同。或者,可以使用以下命令行生成新密钥: keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks 此密钥必须是20

我们必须为React本地Android应用程序重置Android上载密钥。我们联系谷歌重置了密钥

谷歌要求我们完成以下步骤: 以下是如何生成和注册新的上载密钥:

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

keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
此密钥必须是2048位RSA密钥,有效期为25年。 将该密钥的证书导出为PEM格式:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks 
回复此电子邮件并附上upload_certificate.pem文件

进一步的步骤
我们现在有了生成的文件,
keystore.jks
和一个
upload\u certificate.pem
文件

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

构建过程
gradle.properties文件

MYAPP_RELEASE_STORE_FILE=APPNAME-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=APPNAMEapprelease
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")
注释

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

文档在某些地方会随意将
.jks
文件称为
.keystore
。它们的格式相同

自己检查一下:

file APPNAME-release-key.keystore
APPNAME-release-key.keystore : Java KeyStore 
> file keystore.jks
keystore.jks : Java KeyStore 

然后,您的解决方案很简单,可以将
keystore.jks
重命名为
APPNAME release key.keystore

谢谢@fabio,不幸的是,这仍然不起作用。我尝试用硬编码字符串中的密码替换releasekeypass和releasekeyalias值,但它仍然会抱怨在密钥库``中找不到别名为'-upload'的密钥。能否提供指向您引用的说明的链接?下面是我生成密钥的方法:
keytool-genkey-v-keystorekeystore.jks-alias alias_name-keyalg RSA-keysize 2048-validity 10000
。下面是检查别名的方法:
keytool-list-v-keystore keystore.jks
请稍候,当命令行创建
upload
时,您的错误消息指出您的别名应该是
-upload
。如果是React Native中的错误,请尝试使用
keytool-genkeypair-alias'-upload'-keyalg RSA-keysize 2048-validity 9125-keystore keystore.jks生成jks