React-Native APK发行

发行配置

  1. 先保证自己正确配置了所有的 RN 环境
  2. 在 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
  • 当运行这个命令的时候,需要输入一系列的参数(口令的密码)

1563262264789

  1. 当生成了签名之后,签名保存在用户的桌面上
  2. 将你的签名证书copy到项目的android/app目录下。
  3. 编辑 android -> gradle.properties文件,在最后添加如下代码:
1
2
3
4
MYAPP_RELEASE_STORE_FILE=your keystore filename
MYAPP_RELEASE_KEY_ALIAS=your keystore alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
  1. 编辑 android/app/build.gradle文件添加如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
...
android {
...
defaultConfig { ... }
+ signingConfigs {
+ release {
+ storeFile file(MYAPP_RELEASE_STORE_FILE)
+ storePassword MYAPP_RELEASE_STORE_PASSWORD
+ keyAlias MYAPP_RELEASE_KEY_ALIAS
+ keyPassword MYAPP_RELEASE_KEY_PASSWORD
+ }
+}
buildTypes {
release {
...
+ signingConfig signingConfigs.release
}
}
}
...
  1. 进入项目根目录下的android文件夹,在当前目录打开终端,然后输入gradlew assembleRelease开始发布APK的Release版(这个过程要等很久)
  2. 当发行完毕后进入自己项目的android\app\build\outputs\apk目录中,找到app-release.apk,这就是我们发布完毕之后的完整安装包;就可以上传到各大应用商店供用户使用啦;

注意:请记得妥善地保管好你的密钥库文件,不要上传到版本库或者其它的地方。

若满足:

  1. 项目中使用了第三方插件
  2. 报错:react-native-xxxxxx:verifyReleaseResources
  3. 报错Aapt2Exception

原因:由于第三方插件未及时更新,其所使用的SDK版本于当前项目使用的SDK版本不匹配,才会导致此问题。

解决办法:

  1. 首先在node_modules中找到报错的包里面的build.gradle,如\node_modules\react-native-smart-amap-location\android\build.gradle

  2. 修改这个build.gradle,使其与android/build.gradle里面的SDK版本保持一致;

  3. 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
    25
    android {
    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/

× 请我吃糖~
打赏二维码