iOS 15 Beta 5下Xcode 13 Beta 5构建Cordova应用出现Target Integrity Error
问题根源
Xcode 13 Beta 5强化了隐式依赖的校验规则,当项目中存在多个同名框架目标时,无法自动选择正确的链接对象,会触发对应警告,严重时会导致应用启动失败。当前触发冲突的原因是项目同时引入了两套Cordova框架:一套是项目内嵌的CordovaLib项目自带的Cordova目标,另一套是CocoaPods引入的Pods项目下的Cordova目标,二者产生命名冲突。
解决方案
方案一:删除重复的Cordova依赖(推荐)
两套Cordova同时存在本身属于冗余配置,优先清理重复引入即可解决问题:
- 检查Podfile,确认是否有额外引入Cordova的配置行,如果是用Cordova CLI原生管理的项目,不需要再在Podfile里单独加
pod 'Cordova',删除对应行后执行pod install,清理编译缓存后重新编译即可。 - 如果确认需要通过CocoaPods管理Cordova版本,就把项目内嵌的
CordovaLib引用从Xcode项目导航栏中移除,同时在「Build Phases」->「Link Binary With Libraries」里删掉原生Cordova.framework的引用,只保留Pods下的Cordova.framework。
方案二:显式指定依赖目标(临时兼容)
如果暂时不想调整依赖结构,可以手动指定链接的目标消除歧义:
- 打开Xcode项目,选中
AbbWorld目标,进入「Build Settings」 - 搜索
Other Linker Flags,把原来隐式的-framework Cordova配置,替换为明确指向你要使用的框架路径:如果要用Pods下的就改为-framework "Pods/Cordova",要用原生CordovaLib的就改为-framework "CordovaLib/Cordova" - 重新编译项目即可。
方案三:临时关闭隐式依赖检查
如果只是临时在Xcode13上调试,可以暂时关闭对应的检查项:
- 选中
AbbWorld目标,进入「Build Settings」 - 搜索
Enable Implicit Dependencies,设置为No - 注意该操作会关闭所有隐式依赖检查,仅适合临时调试使用,不建议长期开启。
内容的提问来源于stack exchange,提问作者r_krthk
相关产品推荐
相关产品推荐

