Xcode 9 - 链接器命令失败,退出代码为 1
Posted
技术标签:
【中文标题】Xcode 9 - 链接器命令失败,退出代码为 1【英文标题】:Xcode 9 - linker command failed with exit code 1 【发布时间】:2017-10-03 08:37:50 【问题描述】:在编译应用程序时出现以下错误
" 使用旧版本的 Swift 语言 (3.0) 编译而不是以前的文件 (4.0) 文件 "
你能帮帮我吗?
【问题讨论】:
【参考方案1】:使用 xcworkspace 来构建而不是 xcproject?
这通常发生在使用 Cocoapods 并且您从不了解 cocoapod 库的 xcproject 构建时发生。
【讨论】:
如何使用xcworkspace搭建能详细解释一下吗? 刚刚关闭了 xcode,而不是通过您的项目文件夹,您将到达那里 (yourproject.xcworkspace)。每当您添加或更新库时,您都需要关闭 xcode。完成更新后,您可以打开 .xcworkspace 文件 @Krishnakushwaha 我的项目文件夹没有任何 .xcworkspace 文件 @AkilaDevinda 好的,没问题,只需通过您的项目目录并使用终端 cmd 安装 pod - pod install 之后您将获得 .xcworkspace【参考方案2】:删除派生数据并进行干净的构建。
如果您正在构建一个框架,请确保您在构建时选择了Generic ios Device
,或者在Build Settings
中将Build for Active Architecture only
设置为true。
【讨论】:
@ScottyBlades 你能简单介绍一下这个问题吗? 我的公司正在经历从 swift 4 到 4.2 的迁移,我们的一些内部模块已经进行了切换,而其他模块则没有。当我尝试使用本地.podspecs
时,我遇到了这个问题。【参考方案3】:
我认为发生这种情况是因为您更改了应用名称或目标
寻求解决这个问题在 Podfile 中查看你的目标
然后在 targets 中返回您的 xcode 选择您的目标应用并在 linked Frameworks and Libraries(最后一个)中查看是否有 任何 pods 与 podfile 中的目标相比 浅色和奇怪的名称 并使用减号按钮将其删除。
【讨论】:
【参考方案4】:我宁愿解决具体问题,但如果其他答案都不起作用,则完全重置可以解决它。如果您收到此错误,并且您还收到涉及“重复符号文件”的错误读数,并且所有其他努力都失败了,那么完全重置可能对您有用。
什么对我有用:
-
阅读错误报告以识别可能包含重复文件的存储库。
将 repo 拖到回收站。
重新克隆您的存储库。
使用正确的远程跟踪设置您的存储库。
git remote add <url.git>
,或git remote set-url <url.git>
这绝对对我有用。就我而言,出于某种难以捉摸的原因,当我为本地依赖项运行 git pull upstream develop
时,git
会从多个提交中提取/生成重复文件。
执行上述步骤后,问题消失了,git pull upstream develop
不再一次从多个提交中提取。也许我的仓库有一个奇怪的git
缓存。
【讨论】:
【参考方案5】:我可能迟到了,但对于有问题的未来开发者......
如果您一直在操作 podfile 或创建新目标,或者可能更改其中任何一个的名称,请在构建阶段选项中检查您是否拥有正确的目标名称的 pod 框架。
【讨论】:
【参考方案6】:我在代码库中有两个文件副本。删除一个副本有助于代码成功构建
【讨论】:
【参考方案7】:如果你有 pod
首先清理项目并关闭 Xcode,然后打开终端并转到项目文件夹然后 pod update
打开项目并运行
在我的情况下工作!
【讨论】:
【参考方案8】:我今天通过使用与测试目标的 Build Settings-->Bundle Loader 设置中命名的捆绑文件关联的目标在模拟器中运行应用程序来解决此问题。以前,我在处理具有与测试目标捆绑文件关联的产品名称不同的产品名称的不同目标时删除了派生数据文件夹。在模拟器中重新运行应用程序必须在测试目标正在寻找的派生数据文件夹中重新创建捆绑文件,然后我的测试开始正常运行。
【讨论】:
以上是关于Xcode 9 - 链接器命令失败,退出代码为 1的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 9.4.1:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
MAC OSX Xcode 9.2链接器命令失败,退出代码为1(使用-v查看调用)