You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将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功能失效。
  • 彻底清理重建项目
    • 执行以下命令清缓存、重构建:
      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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 23:01:13