我正在尝试构建这个由Unity构建的xcode工作区 . 当我在构建项目(链接)的最后阶段修改项目后,我得到了Apple Mach -O Linker(Id)错误 . 我无法打开错误选项卡以查看导致错误的确切原因 . 所有它说的是“链接器命令失败,退出代码1(使用-v查看调用) . 还有两个Apple Mach -O Linker(Id)错误发生但我不知道如何解决它们 .
任何帮助是极大的赞赏!
I can't expand these tabs.. this is all I get told This is the warning tab expanded, the two Apple Mach -O Linker (Id) warnings are the same
11 回答
此问题已连接到"Link Binary With Libraries" . 我已经重命名了目标,并且Pods有两个.framework文件 . 因此,删除过时的 - 问题解决了 .
这个问题有不同的解决方案,其中之一就是将 Enable Bitcode 设置为 No . (我不知道为什么 default 这是 Yes )
这个问题是鬼问题 . 清除缓存,重新启动Xcode,模拟器和MAC,确保正确链接框架,更改应用程序架构,或者,有时无所事事可以解决此问题 .
如果你刚刚安装/卸载了一个pod,你可能想看看这个 . 这对我有用:
首先确保打开.xcworkspace文件而不是.xcodeproj . 但这很可能不是造成这个问题的原因 .
删除最近刚刚安装的pod .
在Xcode上的项目目录中,打开frameworks文件夹,如果刚删除的pod仍然作为一个lastremovedpod.framework列出,那么也从那里删除它 . 这一步是我的项目最终编译的原因 .
另一个可能的原因是你重命名了一个目标(为什么我这样做?)并且你正在使用pods . 您最终在主项目(而不是Pods项目)的
Frameworks
文件夹中找到旧目标名称的版本,例如pods_oldtarget_framework
,它不再存在 .只需删除旧版本(或将目标命名为原始版本并删除新版本),您应该好好去 .
我有同样的问题,并解决了
安装最新的CocoaPods
然后做
pod setup
对我来说,它缺少框架 . 尝试搜索您在Google上获得的错误并找出它们所属的框架,然后在“构建阶段”选项卡中导入它们 .
如果在ios上以ios为单位构建,请确保在构建设置中禁用ios平台的其他设置下的“Metal Editor Support” .
我使用xcode 9.3,我得到了同样的错误 . 但是9.2它有效 . 由于两个xcode产生的工件之间不兼容,可能会发生错误 . 抛出错误的项目包括使用xcode 9.2构建的框架
我将libstdc .tbd添加到“BuildPhases >> Link Binary With Libraries” . 这个对我有用 .
对我来说,我遇到了问题,因为我使用的是Xcode 9(beta),然后我用另一个Xcode 8.3打开了同一个项目 . 为我解决问题只需清洁再运行 .
我不得不更改部署目标以使其正常工作