Expo EAS构建:AgoraRtmKit.framework中的Bitcode导致App Store提交失败(SDK 52 / React Native 0.76 / 托管工作流)
Expo EAS构建:AgoraRtmKit.framework中的Bitcode导致App Store提交失败(SDK 52 / React Native 0.76 / 托管工作流)
我目前在Expo托管工作流中使用Expo SDK 52(对应React Native 0.76.9),集成了Agora的视频通话功能,用到的依赖版本是:
react-native-agora@4.5.2agora-react-native-rtm@1.5.1agora-rn-uikit@5.0.2
本地构建和EAS构建都能顺利完成,但提交到App Store Connect时直接被拒,收到的错误提示是:
Invalid Executable. The executable 'com.app/Frameworks/AgoraRtmKit.framework/AgoraRtmKit' contains bitcode. (90482)
我已经尝试了好几种方法,但都没解决问题:
- 使用
withNoBitcode插件添加ENABLE_BITCODE=NO配置 - 在自定义的
eas.json中设置构建参数 - 确保使用的是最新版本的
eas-cli和Expo SDK
核心问题卡在这儿:在Expo托管工作流里,我根本碰不到嵌入的AgoraRtmKit.framework文件——这个框架本身就带了Bitcode,而我能改的只是项目本身的Bitcode开关,管不到框架内部的设置。
我现在急需以下任意一种解决方案:
- 无Bitcode版本的Agora SDK,或者官方给出的发布时间表
- 适用于Expo的、能解决
AgoraRtmKit.frameworkBitcode问题的临时方案 - 推荐一个兼容Expo SDK 52的视频通话替代方案,不需要依赖Agora
可能的解决方案
1. 联系Agora官方获取无Bitcode版本
不少开发者反馈,Agora针对部分场景已经提供了无Bitcode的SDK变体,你可以试试这两个途径:
- 登录Agora开发者后台,查看对应依赖版本的SDK下载选项,有些版本会分带Bitcode和不带Bitcode的安装包
- 提交Agora技术支持工单,明确说明你的使用场景(Expo托管工作流、SDK 52),请求适配的无Bitcode版本。通常官方会在1-3个工作日内回复,部分情况下能直接提供定制化的框架包
2. Expo托管工作流的临时绕过方案
虽然托管工作流不让直接改原生框架,但可以通过间接方式处理:
- 自己写一个Expo
config-plugins自定义插件,在EAS构建过程中自动移除AgoraRtmKit.framework中的Bitcode。核心逻辑是调用xcodebuild的bitcode_strip工具对框架做处理,然后在app.json/app.config.js中配置这个插件,让构建时自动执行 - 考虑切换到Expo裸工作流:这虽然会增加一些原生配置的维护成本,但裸工作流允许你直接操作iOS项目的框架文件——你可以手动替换
AgoraRtmKit.framework为无Bitcode版本,或者在Xcode中添加构建脚本自动剥离Bitcode
3. 兼容Expo SDK 52的视频通话替代方案
如果暂时卡在Agora的问题上,这些替代方案可以试试:
- Twilio Video React Native:官方提供了Expo兼容插件,支持视频通话和实时消息,不需要手动处理复杂的原生配置
- Jitsi Meet:开源的视频会议解决方案,有专门适配Expo的包,支持自托管或云服务,兼容性不错
- Zoom Video SDK:虽然配置稍复杂,但有Expo插件支持,适合需要企业级功能的场景
内容来源于stack exchange
相关产品推荐
相关产品推荐

