【问题标题】:Cocoapods error: linker command failed with exit code 1 (use -v to see invocation)Cocoapods 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
【发布时间】:2024-01-05 01:22:02
【问题描述】:

第一次在最新的 Xcode 7.2.1 和 Swift 2.1 中使用可可豆荚(最新版本)作为依赖项。我初始化我的项目文件夹,然后编辑 podfile 并添加我的依赖项。当我运行pod install 时,它运行顺利,直到我打开我的项目并尝试构建。我已经用两个独立的项目(一个是全新的测试项目)尝试了这个,我得到了两个linker command failed with exit code 1 (use -v to see invocation)。我的 pod 文件如下所示:

platform :ios, '8.0' #8.0 is minimum supported, right?
use_frameworks!

target 'Testing Frameworks' do
    pod 'Alamofire', '~> 3.0'
end

【问题讨论】:

    标签: xcode cocoa swift2


    【解决方案1】:

    关闭您当前的项目并打开在您的项目文件夹中创建的 .xcworkspace。

    祝你好运!

    【讨论】:

    • 我从项目中完全删除了所有 pod 文件和依赖项,并且仅使用基本项目文件成功构建。然后我再次对项目执行pod init,将依赖项添加到我的pod文件中,执行pod install并使用新的xcworkspace打开项目。它加载项目,但有完全相同的错误,并有一个新警告说:项目“Pods”的目标“Pods-project”被拒绝为“Pods_project.framework”的隐式依赖,因为它的架构“x86_64”没有包含所有必需的架构“i386 x86_64”
    • 知道了,我必须在构建设置中将 BUILD ACTIVE ARCHITECTURE ONLY 更改为 NO。谢谢!
    • 这一直困扰着我一段时间,当我读到你的答案时我笑了,因为它是多么的简短和简单。我没想到XD。感谢您的出色工作!
    【解决方案2】:

    首先尝试显示报告导航器 (8. Xcode 左侧导航器中的选项卡) 并检查报告。它应该为您提供一些信息,例如:

    framework not found Pods_[PODFILE_OLD_ABSTRACT_TARGET_NAME].

    通常当您在podfile 中更改abstract_target 的名称​​(或将来 Cocoapods 用来命名框架的任何名称)时,请检查目标的 Link binary With 构建阶段下的库

    如果它使用不再存在的旧名称保留框架(在新名称旁边)将其删除

    【讨论】:

    • 你是我的英雄。
    【解决方案3】:
    1. 转到项目设置。
    2. 转到构建设置。
    3. 将 BUILD ACTIVE ARCHITECTURE ONLY 更改为 NO。

    【讨论】:

    • 天赐良机...构建/发布的值不同
    【解决方案4】:

    我刚刚在我的项目中遇到了类似的问题。我发现在“链接框架和库”部分项目的 GENERAL 设置中有两个 pod 文件:"libPods.a""Pods_ProjectName.framework"

    删除"libPods.a" 对我有帮助。

    【讨论】:

      【解决方案5】:

      我的解决方案是在目标构建设置中将 `$(inherited) 标志添加到 LIBRARY_SEARCH_PATHS。

      【讨论】:

        【解决方案6】:

        如果您在开发 pod 时遇到此错误,则可能是您的模块没有导出任何内容。在.podspec 中检查s.source_files 的模式。对我来说,glob 模式缺少我的源文件。

        【讨论】: