React Native android打包

前言

从没接触过RN开始赶鸭子上架,7月份一个月做了3个app。项目结束要打包了,各种坑啊。这里整理一下,我的悲惨打包经历。

打包步骤

1.生成签名文件(略,网上查查吧)
2.在 android/app/src/main/ 目录下创建 assets 目录
项目根目录下,执行命令 :

react-native bundle --entry-file index.js --platform android --dev false --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res/

3.修改android/gradle.properties文件,增加如下

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=xx
MYAPP_RELEASE_KEY_PASSWORD=xx
[注意替换xx为你自己设置的密钥和存储密码]

4.在android/app/build.gradle添加下面的代码

def enableProguardInReleaseBuilds = true   //改成ture  

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
    }}
    splits {
....
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release   //添加这块代码 
           ...
        }
    }
  .....
            }
        }
    }
}

5.将keystore文件,放在android/app文件下:
这里写图片描述

6.打包
进入android文件夹,运行:gradlew assembleRelease

报错处理

打包流程没什么,网上一搜一大把,主要是报错,这里统计一下:
报错1:error: uncompiled PNG file passed as argument. Must be compiled first into .flat file
这里写图片描述
解决方法:

加入android.enableAapt2=false到 gradle.properties.

报错2:Could not find com.android.tools.lint:lint-gradle:26.1.3.
这里写图片描述
这个错网上真的是不好找,解决方法是在android/build.gradle文件中加入如下代码:
这里写图片描述
报错3:’:app:transformClassesAndResourcesWithProguardForRelease’.
这里写图片描述
解决方案:
在proguard-rules.pro中加入如下代码:

-ignorewarnings

结尾

遇到的问题,后面再总结

猜你喜欢

转载自blog.csdn.net/mffandxx/article/details/80886391