React Native Expo应用在TestFlight及Android内部测试启动崩溃求助
解决方案
Android端:修复requireNativeComponent: 'RNSVGPath' was not found崩溃
- 用
expo install react-native-svg替代npm install安装依赖,确保版本与当前Expo SDK完全兼容(不同SDK对应固定的react-native-svg版本,比如SDK 49对应13.14.0,SDK 50对应14.1.0),避免手动安装不匹配版本。 - 检查
app.json/app.config.js的插件配置,确认react-native-svg已加入插件列表:{ "expo": { "plugins": [ "expo-splash-screen", "react-native-svg" ] } } - 执行
eas build --clear-cache清理构建缓存后重新打包,排除旧缓存导致的依赖集成失败。 - 若使用
react-native-svg-transformer等SVG工具,检查metro.config.js配置是否与Expo默认metro设置兼容,不要随意覆盖Expo的原生metro配置。
iOS端:修复EXUpdates相关启动崩溃
- 核对
app.json中updates字段的配置:确保url指向正确的Expo Updates服务器(格式为https://u.expo.dev/[你的项目ID]),同时确认enabled、fallbackToCacheTimeout等参数设置合理:{ "expo": { "updates": { "url": "https://u.expo.dev/xxx", "enabled": true, "fallbackToCacheTimeout": 0 } } } - 检查iOS构建的签名配置:确认EAS Build使用的证书和Provisioning Profile包含必要权限,若启用自动更新,需确保网络权限配置正常(无需额外配置HTTPS服务)。
- 确保EAS Build时正确注入环境变量:如果项目使用
EXPO_PUBLIC_前缀的变量,构建时通过eas build --profile [你的构建配置] --env-file .env.production指定环境文件,避免变量缺失导致Updates初始化失败。 - 临时禁用Updates测试:在
app.json中设置"updates": {"enabled": false},重新构建TestFlight版本,若不再崩溃则锁定问题在Updates配置,再逐步排查细节。
通用排查动作
- 执行
npx expo prebuild --clean清理生成的原生文件后重新构建(Managed workflow也可尝试)。 - 执行
npm ls react-native-svg检查是否存在多版本依赖冲突,如有则用npm dedupe去重。 - 查看Expo Dashboard中的构建日志,搜索
RNSVGPath或EXUpdates相关条目,排查构建过程中未被注意的警告或错误。
内容的提问来源于stack exchange,提问作者Raji Rajah
相关产品推荐
相关产品推荐

