React Native 生成签名 APK

4

我正在尝试生成用于在Google Play发布的apk。我按照以下步骤进行:https://facebook.github.io/react-native/docs/signed-apk-android.html

步骤1) 我运行了这个命令

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 

它询问了我一个问题,我回答后生成了my-release-key.keystore文件。

我将my-release-key.keystore文件放置在项目文件夹android/app目录下。

现在它说: 编辑文件~/.gradle/gradle.properties并添加以下内容(用正确的密钥库密码、别名和密钥密码替换*****),

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore 
MYAPP_RELEASE_KEY_ALIAS=my-key-alias 
MYAPP_RELEASE_STORE_PASSWORD=***** 
MYAPP_RELEASE_KEY_PASSWORD=*****

现在,在/root/.gradle/gradle.properties中之前没有文件,所以我创建了一个新文件并添加了上述4个常量及其值。另外还告诫(将*****替换为正确的密钥库密码、别名和密钥密码)。
对我来说,这一步是最令人困惑的,因为别名字段中没有*****。当我生成my-release-key.keystore文件时,我没有获取任何别名。
那么我应该在my-key-alias的位置放什么?
实际上,my-key-alias是什么?
除了我输入的两个密码之外,keytool命令还生成了类似于这样的内容。
CO=Dev Abhi, OP=The Awesome Coder, L=The Awesome Coder, M=Delhi, SP=Delhi, M=IN

你好,以下是对上述内容的翻译:

上面的是阿里斯塔吗?

那么我需要替换像

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore 
MYAPP_RELEASE_KEY_ALIAS=CO=Dev Abhi, OP=The Awesome Coder, L=The Awesome Coder, M=Delhi, SP=Delhi, M=IN 
MYAPP_RELEASE_STORE_PASSWORD=password1
MYAPP_RELEASE_KEY_PASSWORD=password2

请问 ~/.gradle/gradle.properties 这个路径是不是真实的路径,它与 /root/.gradle/gradle.properties 有什么区别?


你从哪里得到了MYAPP_RELEASE_KEY_PASSWORD?在生成密钥库时只要求输入密钥库密码! - Alauddin Ahmed
现在keytool默认使用PKCS12,似乎不需要为密钥设置密码。要为密钥生成密码,必须将存储类型设置为jks。请参阅此答案:https://dev59.com/zFUL5IYBdhLWcg3w6rto#49599630 - Fanchen Bao
2个回答

3

不确定这是否能帮到您,但我遇到了完全相同的问题。我的问题最终是我正在编辑的文件 ~/.gradle/gradle.properties 不是您项目目录中的文件,而是操作系统根目录中的文件。一旦我将变量移动到该位置,我就能够生成签名APK!


3
最终我成功生成了已签名的apk。所以,我错过的事情是 - 当你执行命令时,
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

在选项-alias之后,我们提到任何名称/术语“my-key-alias”。这实际上是我们需要记住的内容,并且稍后在后续步骤中必须使用相同的术语。

MYAPP_RELEASE_KEY_ALIAS=my-key-alias

其余的事情都按照文档要求操作。但是,我仍然觉得React Native团队在生成签名APK方面可以更易于理解。如果有人遇到同样的问题,请通过http://customphpscript.com联系我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接