前言
从没接触过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
结尾
遇到的问题,后面再总结