React Native打包Android Release APK生成旧版本问题及解决方法
React Native Android Release APK 未包含最新更改的解决方案
我前段时间碰到了一模一样的问题:严格按照官方文档生成Android正式版APK,上传到Google Play后用户看到的还是旧版本功能,本地运行react-native run-android --variant=release也只输出旧包,但调试模式下新功能完全正常。试了其他办法还触发了重复资源错误,折腾好久终于找到一个有效的解决办法——这个方案来自React Native官方GitHub Issues,亲测多次有效,步骤如下:
具体解决步骤
1. 修改react.gradle配置
找到项目目录下的node_modules/react-native/react.gradle文件,定位到里面的doFirst代码块,在它后面添加这段代码:
doLast { def moveFunc = { resSuffix -> File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}"); if (originalDir.exists()) { File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}"); ant.move(file: originalDir, tofile: destDir); } } moveFunc.curry("ldpi").call() moveFunc.curry("mdpi").call() moveFunc.curry("hdpi").call() moveFunc.curry("xhdpi").call() moveFunc.curry("xxhdpi").call() moveFunc.curry("xxxhdpi").call() }
2. 执行打包准备命令
打开终端,依次运行以下命令:
cd android ./gradlew bundleRelease cd .. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
3. 生成最新的Release APK
最后运行这条命令,就能得到带有所有最新更改的正式版APK了:
react-native run-android --variant=release
我反复试了好几次这个流程,每次都能成功生成包含新功能的APK,之前的问题彻底解决了。
内容的提问来源于stack exchange,提问作者Pavan Akshay Abhange




