React-Native APK发行
发行配置
- 先保证自己正确配置了所有的 RN 环境
- 在 cmd 命令行中,运行这一句话
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
- 其中:
my-release-key.keystore
表示你一会儿要生成的 签名文件 名称-alias
后面的东西也很重要,这个名称可以根据自己的需求改动my-key-alias
- 当运行这个命令的时候,需要输入一系列的参数(口令的密码)
- 当生成了签名之后,签名保存在用户的桌面上
- 将你的签名证书copy到项目的android/app目录下。
- 编辑
android
->gradle.properties
文件,在最后添加如下代码:
1 | MYAPP_RELEASE_STORE_FILE=your keystore filename |
- 编辑 android/app/build.gradle文件添加如下代码:
1 | ... |
- 进入项目根目录下的
android
文件夹,在当前目录打开终端,然后输入gradlew assembleRelease
开始发布APK的Release版(这个过程要等很久) - 当发行完毕后进入自己项目的
android\app\build\outputs\apk
目录中,找到app-release.apk
,这就是我们发布完毕之后的完整安装包;就可以上传到各大应用商店供用户使用啦;
注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。
坑
若满足:
- 项目中使用了第三方插件
- 报错
:react-native-xxxxxx:verifyReleaseResources
- 报错
Aapt2Exception
原因:由于第三方插件未及时更新,其所使用的SDK版本于当前项目使用的SDK版本不匹配,才会导致此问题。
解决办法:
首先在node_modules中找到报错的包里面的
build.gradle
,如\node_modules\react-native-smart-amap-location\android\build.gradle
;修改这个
build.gradle
,使其与android/build.gradle
里面的SDK版本保持一致;将
build.gradle
里的compile改为implementation,因为compile已过时。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25android {
compileSdkVersion 28 //23--->28
buildToolsVersion "28.0.3" //23.0.3--->28.0.3
defaultConfig {
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) //compile-->implementation
implementation 'com.android.support:appcompat-v7:23.4.0' //compile-->implementation
implementation "com.facebook.react:react-native:+" //compile-->implementation
implementation 'com.amap.api:location:3.1.0' //compile-->implementation
}
再次发行…
最后更新: 2019年09月02日 10:59
原始链接: https://HowlCN1997.github.io/2019/03/11/React-Native打包成apk/