Apple Mach -O Linker命令失败

时间:2015-11-05 03:13:45

标签: ios xcode xcode6 linker-errors duplicate-symbol

random issue is happening

更新我的POD安装后,Xcode出现了一个新问题:

16 个答案:

答案 0 :(得分:92)

使用pod时,请确保打开.xcworkspace文件而不是项目文件(.xcodeproj)。这应该可以解决链接问题。

答案 1 :(得分:18)

有时你需要干净的构建。它帮助了我。 要清理构建,请转到产品 - >清洁

答案 2 :(得分:14)

有几种情况会导致此问题。目前,这个问题没有任何接受的答案,我也找到了同一问题的另一个解决方案,我在这里发布我的答案/经验。

在您的应用程序中,转到Target - >构建设置,然后您将找到以下属性。

  • CLANG_WARN_INFINITE_RECURSION
  • CLANG_WARN_SUSPICIOUS_MOVE
  • GCC_NO_COMMON_BLOCKS

将那些值设置为NO,然后清理并构建项目。

答案 3 :(得分:13)

以下步骤帮助我摆脱了这个问题:

  1. 转到项目路径并删除Pods文件夹和Podfile.lock文件。
  2. 使用“pod install”命令重新安装pod。
  3. 打开xcworkspace并在运行前清理它。
  4. 希望它能为我节省一些人的时间。

答案 4 :(得分:11)

关闭项目并转到项目路径,然后使用.xcworkspace而不是.xcodeproj选择项目。 您现有项目的原因不包含您链接的任何库。

ss

答案 5 :(得分:6)

从目标中删除 WikitudeSDK 的本地文件。 Xcode在库的路径之间变得混淆,哪一个选择 - pod或本地。

还尝试重新安装podfile并从pod文件中删除wikitude。 在链接器搜索路径设置中,在构建设置中,检查提到的路径以查找所需的库。

最后在更新pod之前安装gems

答案 6 :(得分:3)

您必须选中Link Binary With Libraries选项。有时你会构建不再在项目中的pod。

在左侧面板中单击您的项目名称,然后再次在Targets下(单击名称),然后构建阶段>链接二进制文件。删除你不使用的所有内容。

答案 7 :(得分:2)

解决 - 最佳方式

{{1}}

打开xcworkspace并在运行之前清理它。

答案 8 :(得分:1)

我得到了像“变量名”的重复一样的错误。您需要检查所有.m文件的所有变量和函数名称,并确保它在任何其他文件中都不相同。然后清理并构建。

这对我有用。

答案 9 :(得分:1)

我的解决方案是打开位于我的'/ platforms / ios'文件夹中的.xcodeproj的.xcworkspace文件。

答案 10 :(得分:0)

我遇到了类似的问题,我必须确保在必要时启用"副本"将框架添加到项目中时的复选框。参考仅对我不起作用......

答案 11 :(得分:0)

我不知道为什么在我的情况下发生了错误,我正在重复使用我之前创建的另一个项目中的一些代码,在我调整代码之后,我总是得到“Apple Mach -O Linker命令失败” - 信息。我最好的猜测是,它发生的原因是我从项目中创建/删除了一些文件。

为我解决这个问题的是:

  • 创建新项目
  • 将所有必要的文件从旧项目复制到新项目(拖放,不要忘记“如果需要复制”复选框)
  • 构建并发现它可以正常工作

听起来很愚蠢,我不明白为什么,但它确实有效。

答案 12 :(得分:0)

我正在使用XCode编译离子3应用程序。

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.10.1
    ionic (Ionic CLI) : 3.10.1

global packages:

    Cordova CLI : 7.0.1 

local packages:

    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3 ios 4.5.0
    Ionic Framework    : ionic-angular 3.6.0

System:

    ios-sim : 5.0.8 
    Node    : v8.4.0
    npm     : 5.4.0 
    OS      : OS X Yosemite
    Xcode   : Xcode 7.2 Build version 7C68 

ios的大多数文件都没有写入权限,这是主要问题 我刚刚更改了ios文件的权限,并通过使用命令解决了问题。

sudo chmod -R 775 platforms/ios/ 

工作得很好。

答案 13 :(得分:0)

覆盖项目时遇到错误。

之后仍然遇到错误:

在更改为github中的其他分支后,错误已解决,但可能其中一种其他故障排除方法起了作用。现在所有分支都运行在xcode上而没有Mach -O Linker Error。

答案 14 :(得分:0)

我遇到了同样的问题。我声明了两个同名的类。因此它与班级名称相冲突。在更新类名后,它对我有用。

答案 15 :(得分:-4)

您要做的第一件事就是删除文件 /Users/Yourname/Library/Developer/Xcode/DerivedData/YourAppName-xxxx 然后重新启动Xcode。那不是开玩笑!

如果您收到类似“duplicate symbol_OBJC_CLASS _ $ _ Pod in:”的错误, 你应该去TARGETS-> Build Phases->编译源代码并删除额外的文件。