react native 安卓打包--mac环境,如果打包不成功可注意下my-release-key.keystore的位置关系(绝对路径)

// my-release-key.keystoremy-key-alias都是可修改的名称

1.生成签名密钥(keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

2.在项目中找到android/app/src/main目录下创建一个叫assets的文件夹

 

在工程目录下(android/app/src/main/assets),并在 此文件夹下(assets)生成index.android.bundle(如果没有这个文件,即使打包成功了也会闪退)

 

(生成index.android.bundle一定要先起服务(react-native start)再输入才会有效,否则生成的是空的)

 

下面是指令(苹果自带curl

curl -k 'http://localhost:8081/index.android.bundle' > android/app/src/main/assets/index.android.bundle

 

3.添加gradleandroid keystore配置(设置app文件夹下的build.gradle文件):

// 签名 ---写在android {}中
signingConfigs { // 放在defaultConfig{} 下面     // 以下字符串为单引号,双引号好像会报错(忘记了)
    release {
    storeFile file('/Users/zhou/Desktop/demoS/my-release-key.keystore') // 这里的位置是keystore在系统文件的绝对路径位置
    storePassword ‘密码’
    keyAlias ’alias名字‘
    keyPassword ‘MYAPP_RELEASE_KEY_PASSWORD’    
    }}

 


buildTypes {
    release {

 

  minifyEnabled enableProguardInReleaseBuilds
  proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"

        signingConfig signingConfigs.release // 再加入这行代码,添加这句话引入签名配置,使之签名生效
    }
}

4.启用Proguard代码混淆来缩小apk文件的大小:

修改为true:def enableProguardInReleaseBuilds = true

 

5./android/目录中执行gradle assembleRelease命令(或者./gradlew assembleRelease),打包后的文件(apk格式带签名的)在android/app/build/outputs/apk目录中,如果打包碰到问题可以先执行gradle clean清理一下。

 注意:打包过程中可能会遇到gradle版本的问题可以在这里修改,如果是本地电脑上的gradle版本问题,可以参考我的其他文章

 

 

 

 

 

 

posted @ 2019-03-30 17:07  lude1994  阅读(1251)  评论(0编辑  收藏  举报