React Native项目签名打包:keyPassword的获取与设置疑问
React Native Android签名打包:keyPassword的疑问
我开发了一个React Native应用项目,想要构建其APK安装包,正在遵循官方文档的步骤操作。
文档要求先使用keytool生成私有签名密钥,我已按照Windows平台的指引完成操作,终端输出如下:
PS C:\Program Files\Java\jdk1.8.0_271\bin> keytool -genkeypair -v -storetype PKCS12 -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000 Enter keystore password: Re-enter new password: What is your first and last name? [Unknown]: My Name What is the name of your organizational unit? [Unknown]: Myself What is the name of your organization? [Unknown]: OrgName What is the name of your City or Locality? [Unknown]: CityName What is the name of your State or Province? [Unknown]: StateName What is the two-letter country code for this unit? [Unknown]: XY Is CN=My Name, OU=Myself, O=OrgName, L=CityName, ST=StateName, C=XY correct? [no]: yes Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days for: CN=My Name, OU=Myself, O=OrgName, L=CityName, ST=StateName, C=XY [Storing my-upload-key.keystore] PS C:\Program Files\Java\jdk1.8.0_271\bin>
随后文档要求将生成的keystore密码和key密码填入指定文件:
- 将
my-upload-key.keystore文件放置在项目的android/app目录下。- 编辑
~/.gradle/gradle.properties或android/gradle.properties文件,添加以下内容(将*****替换为正确的keystore密码、别名和key密码):MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore MYAPP_UPLOAD_KEY_ALIAS=my-key-alias MYAPP_UPLOAD_STORE_PASSWORD=***** MYAPP_UPLOAD_KEY_PASSWORD=*****
之后需要在android/app/build.gradle中添加如下配置:
signingConfigs { release { storeFile file(MYAPP_UPLOAD_STORE_FILE) storePassword MYAPP_UPLOAD_STORE_PASSWORD keyAlias MYAPP_UPLOAD_KEY_ALIAS keyPassword MYAPP_UPLOAD_KEY_PASSWORD } }
我确认storePassword是之前使用keytool时设置的keystore密码,但完全不记得曾设置或生成过keyPassword。想请教如何找到该keyPassword?是否需要现在创建?
解答
keyPassword和storePassword是同一个值:你用
keytool -genkeypair命令生成密钥库时,只被要求输入了一次密码(keystore密码),这时候默认会把这个密码同时设为密钥(key)的密码。所以你直接把MYAPP_UPLOAD_KEY_PASSWORD设为和MYAPP_UPLOAD_STORE_PASSWORD一样的密码即可。验证方法:如果不确定,可以用keytool命令查看密钥库信息来确认:
keytool -list -v -keystore my-upload-key.keystore -alias my-key-alias输入你设置的keystore密码,如果能正常显示密钥的详细信息,说明这个密码同时也是keyPassword。
如果确实忘记或需要修改:如果后续需要单独修改keyPassword,可以使用以下命令:
keytool -keypasswd -alias my-key-alias -keystore my-upload-key.keystore按照提示输入原keystore密码、原key密码(如果之前没单独设置就是keystore密码),再设置新的key密码即可。
内容的提问来源于stack exchange,提问作者A-Abe
相关产品推荐
相关产品推荐

