React Native≥0.73.5与bugsnag-react-native≥0.72.3编译iOS应用适配问题
解决React Native≥0.73.5 + bugsnag-react-native≥0.72.3新架构iOS编译报错问题
问题背景
React Native 0.73.5起对新架构下的Objective-C++编译规则做了调整,而bugsnag-react-native 0.72.3+的部分源码文件未适配该规则,导致iOS编译时触发this file must be compiled as obj-C++错误。
解决方案
1. 手动修改Bugsnag文件编译类型
- 打开Xcode,进入项目的
Pods目录,找到BugsnagReactNative子项目 - 定位到报错的源文件(通常是
BugsnagReactNativeSpec.mm或相关桥接文件) - 选中文件,在右侧Build Settings面板中找到Compile Sources As选项,将其值改为
Objective-C++ - 执行
Cmd+Shift+K清理Xcode缓存,重新编译项目
2. 通过Podfile自动配置编译规则
在项目根目录的Podfile中添加post_install钩子,自动修改Bugsnag的编译设置:
post_install do |installer| installer.pods_project.targets.each do |target| next unless target.name == 'BugsnagReactNative' target.build_configurations.each do |config| # 强制将所有源文件按Objective-C++编译 config.build_settings['OTHER_CFLAGS'] ||= [] config.build_settings['OTHER_CFLAGS'] << '-x objective-c++' end end end
保存文件后执行pod install,重新安装依赖后再编译项目。
3. 等待官方适配版本
该问题属于版本兼容bug,Bugsnag团队已收到相关反馈,会在后续版本中适配React Native 0.73.5+的新架构要求,可关注bugsnag-react-native的官方更新动态,待修复版本发布后直接升级即可。
内容的提问来源于stack exchange,提问作者johnrubythecat
相关产品推荐
相关产品推荐

