0).如果使用CNG
如果用了blank模版(项目中没有android目录)则先在项目根目录中执行命令:
npx expo prebuild
1).生成上传密钥
expo项目根目录中执行命令:
#macOS
sudo keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
#windows
keytool -genkey -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
过程中会要求输入密码,需要记下这个密码
2).添加配置内容
打开android/gradle.properties文件,将以下内容添加到最后,并且*****修改成生成上传密钥时填写的密码
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore # Path to the "keystore.jks" file
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias # Replace with value of the `keystore.keyAlias` field in the credentials.json file
MYAPP_UPLOAD_STORE_PASSWORD=***** # Replace with value of the `keystore.password` field in the credentials.json file
MYAPP_UPLOAD_KEY_PASSWORD=***** # Replace with value of the `keystore.keyPassword` field in the credentials.json file
打开android/app/build.gradle文件,将release代码块添加到android->signingConfigs代码块内
android {
//......
signingConfigs {
debug { //原有的
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
release { //新增代码块
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
}
3).构建
cd android
&
gradlew assembleRelease