我正在尝试构建从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
答案 0 :(得分:15)
此问题有不同的解决方案,其中之一是将启用Bitcode 设置为否。 (我不知道为什么默认 是)
这个问题是鬼问题。清除缓存,重新启动Xcode,模拟器和MAC,确保正确链接框架,更改应用程序架构,或者,有时无所事事可以解决此问题。
答案 1 :(得分:7)
答案 2 :(得分:5)
对我来说,情况是我删除了pod中不需要的依赖项之一,在删除它之后,我得到了一个错误,即找不到相同的依赖项。因此,我从项目 >> 构建设置 >> 其他链接器标记中删除了它的条目,然后选择了相同的条目并将其删除,如图所示图片下方。从链接器标记中删除后,我开始出现 Apple Mach -O链接器(Id)错误?,并且尝试了一天之后,我才意识到问题出在链接器标记之内。在删除任何依存关系的地方,您必须删除其他行名称 -framework 。您可以检查下面的图片以获得清晰度。
因此,我建议在从链接器标志中删除依赖项时要注意这一点,也要删除依赖项名称下方的关联框架。就我而言,它是 ObjectMapper
答案 3 :(得分:4)
如果你刚刚安装/卸载了一个pod,你可能想看一下。这对我有用:
首先确保打开.xcworkspace文件而不是.xcodeproj。但这可能不是造成这个问题的原因。
删除刚刚安装的广告连播。
在Xcode上的项目目录中,打开frameworks文件夹,如果刚刚删除的pod仍然作为一个lastremovedpod.framework列出,那么也从那里删除它。这一步是我的项目最终编译的原因。
答案 4 :(得分:2)
另一个可能的原因是你重命名了一个目标(为什么我这样做?)并且你正在使用pods。您最终会在主项目(而不是Pods项目)的Frameworks
文件夹中找到旧目标名称的版本,例如不再存在的pods_oldtarget_framework
。
只需删除旧版本(或将目标命名为原始版本并删除新版本),您应该好好去。
答案 5 :(得分:0)
我遇到了同样的问题,并由
解决pod setup
答案 6 :(得分:0)
答案 7 :(得分:0)
对我而言,它缺少框架。尝试搜索您在Google上获得的错误并找出它们所属的框架,然后在“构建阶段”选项卡中导入它们。
答案 8 :(得分:0)
如果在Mac上为ios构建统一,请确保在构建设置中禁用" Metal Editor支持"在ios平台的其他设置下。
答案 9 :(得分:0)
我使用了xcode 9.3,我得到了同样的错误。但是9.2它有效。 由于两个xcode产生的工件之间不兼容,可能会发生错误。抛出错误的项目包括使用xcode 9.2构建的框架
答案 10 :(得分:0)
我将libstdc ++。tbd添加到“ BuildPhases >> Link Binary With Libraries”。它对我有用。
答案 11 :(得分:0)
我如何解决此问题:
我退出Xcode,然后再次打开项目的.xcworkspace。
在启动Xcode时...我看到警告... xcode足够聪明,请您切换到建议的设置...点按它,让他进行更改。 (认真阅读并以积极的态度阅读警告,然后您将解决问题)?
答案 12 :(得分:-1)
我必须更改部署目标才能使其正常工作