将Expo托管工作流转为裸React Native后APK调试及发布异常求助
Expo Eject转裸React Native后调试/发布APK异常的排查方案
核心排查点及修复步骤
- react-native-branch配置是否完整
- 打开
android/app/src/main/AndroidManifest.xml,确认已添加Branch要求的meta-data(如io.branch.sdk.BranchKey)、deeplink的intent-filter,以及必要权限(ACCESS_NETWORK_STATE、INTERNET)。 - 检查项目级和app级
build.gradle,确保Branch依赖已正确引入,版本和react-native-branch的要求匹配。
- 打开
- 签名配置是否匹配
- 调试版:裸RN的默认
debug.keystore和Expo时期不同,要确认app/build.gradle里的debug签名配置正确,同时把这个签名的SHA-1添加到Branch后台的调试应用配置中。 - 发布版:检查release签名文件(.jks)的
storeFile、密码等配置是否正确,并且SHA-1已同步到Branch后台的生产应用配置,签名不匹配会直接导致Branch功能失效。
- 调试版:裸RN的默认
- 彻底清理重建项目
- 执行以下命令清缓存、重构建:
cd android && ./gradlew clean rm -rf node_modules package-lock.json npm install npx react-native start --reset-cache - 重新打调试包:
npx react-native run-android --variant=debug - 重新打发布包:
cd android && ./gradlew assembleRelease
- 执行以下命令清缓存、重构建:
- 移除Expo遗留配置冲突
- 删除
app.json里的expo字段及相关配置,避免和裸RN的Android配置文件冲突。 - 检查
MainApplication.java,去掉Expo的初始化代码,确保Branch的初始化(Branch.getAutoInstance(this))在onCreate方法中正确执行。
- 删除
- 通过日志定位具体问题
- 调试版用
adb logcat *:E抓崩溃日志,重点看Branch相关的报错,比如初始化失败、链接解析异常。 - 发布版要配置ProGuard规则,防止Branch类被混淆,在
proguard-rules.pro中添加:-keep class io.branch.** { *; } -keep class com.facebook.react.modules.deeplinking.** { *; }
- 调试版用
内容的提问来源于stack exchange,提问作者AngelDev0329
相关产品推荐
相关产品推荐

