React Native iOS构建arm64架构12个重复符号链接失败问题咨询
错误原因
该构建错误属于Expo生态跨版本兼容问题:ExpoModulesCore 与旧版 UMReactNativeAdapter 中存在完全重复的权限服务类定义。你未修改代码仍出现问题,是因为CocoaPods默认会拉取符合语义化版本规则的最新小版本,间隔6天期间相关依赖发布了更新版本,重新安装依赖时就触发了冲突。
修复步骤
- 移除
package.json中的废弃依赖unimodules-permissions-interface,该依赖功能已完全整合进Expo核心模块,重复引入是冲突直接诱因 - 将
package.json中的react-native-unimodules版本调整为0.13.3,该版本适配你当前使用的Expo SDK 42生态,不会出现跨版本核心模块冲突 - 修改Podfile的post_install代码块,新增冲突符号重命名配置,修改后的完整post_install块如下:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' # 解决UMReactNativeAdapter与ExpoModulesCore重复符号冲突 if target.name == 'UMReactNativeAdapter' config.build_settings['OTHER_CFLAGS'] = '$(inherited) -DEXPermissionsService=EXPermissionsServiceLegacy -DEXReactNativeUserNotificationCenterProxy=EXReactNativeUserNotificationCenterProxyLegacy' end end end end
- 执行你之前的全量缓存清理脚本,再依次执行
npm install、进入ios目录执行pod install,重新打开Xcode workspace构建即可正常生成包。
内容的提问来源于stack exchange,提问作者David Carrillo JR
相关产品推荐
相关产品推荐

