【问题标题】:CocoaPods not linking librariesCocoaPods 没有链接库
【发布时间】:2016-03-15 03:30:30
【问题描述】:

我最近开始使用 CocoaPods 来管理我现有 ios 项目中的依赖项。我在运行 OS X 10.11.1 (El Capitan) 的 Mac 上使用 Xcode 7.1.1。

问题是我似乎仍然必须在构建阶段的 Link Binary with Libraries 部分中显式链接框架,或者我收到错误消息,大意是“_OBJC_CLASS_$_Crashlytics”,引用自:ld: symbol (s) not found for architecture x86_64 ... 对于 CocoaPods 管理的依赖项中定义的类,我遇到了许多此类错误。如果我在目标的 Link Binary with Libraries 部分的 Pods 项目中明确添加相关框架,一切正常,但据我了解,这应该没有必要。

这是 pod 文件:

# Uncomment this line to define a global platform for your project
 platform :ios, '7.0'
# Uncomment this line if you're using Swift
# use_frameworks!

workspace 'myproject'

def shared_pods
  pod 'ParseUI'
  pod 'ParseCrashReporting'
  pod 'Fabric'
  pod 'Crashlytics'
end

target 'myproject' do
  shared_pods
end

target 'myprojectTests' do
  shared_pods
  pod 'OHHTTPStubs'
end

我猜这与我将 pod mgmt 添加到现有项目的事实有关。我尝试过不同的 Podfile 配置,我尝试过删除和重新安装,但到目前为止没有任何效果...防止错误的唯一可靠解决方案是显式链接 Pods 目录中的相关框架。

非常感谢任何帮助

【问题讨论】:

  • 只需在终端输入pod --version 看看Pod 是否真的存在?使用最新更新,我们必须重新安装 pod
  • 0.39.0 ...pod 项目中包含所有框架,libPods-myproject.a 列在 Link Binary with Libraries 部分中,等等... Pod 确实存在。 .这是我明确链接到的 Pod 目录中的框架,以使其全部正常工作……但是,为什么?
  • 1) 在切换到 Cocoapods 之前,您是否使用过 Crashlytics?如果是这样,也许您没有正确转换项目。 2) 删除 podfile 中的所有内容,只留下您正在使用的 pod 'ParseUI'、pod 'ParseCrashReporting'、pod 'Fabric'、pod 'Crashlytics' 的文本,然后从命令行运行 'pod install'。第二个建议是删除 podfile 中的额外配置信息,看看是否是问题所在。在运行“pod install”之前,您还可以手动删除 .xcworkspace 和 Pods 目录,因为它们无论如何都会被重建。
  • 我会尝试...我之前已经完成了所有这些,但我会再次开始清理并在完成后发布
  • ps。在切换到 CocoaPods 之前,我正在使用 Crashlytics,当他们迁移到 Fabric 时,我按照他们的说明进行了更新。但是链接器错误并不特定于任何一个框架,我从所有框架中获取它们的类,我只是没有将它们全部列出...... Crashlytics 是列表中的第一个

标签: ios cocoapods xcode7 static-linking


【解决方案1】:

我遇到了类似的问题,即编译好的库,但在链接时找不到。

在我的 Podfile(cocoapod 版本 1.2.1)中:

  abstract_target 'Global' do
    pod 'pod-name', '~> 1.0,0', :configurations => ['Alpha', 'Release']
    pod 'pod-nme2', :configurations => ['Release']

    target 'MyTarget' do
    end
  end

问题是,当我检查目标用于编译代码的架构时,运行时使用的配置等是“调试”而不是配置下 Podfile 中所述的“Alpha”。

链接应用程序时,它会因为缺少所有 pod 包含的库而失败!

“架构 x86_64 的未定义符号:”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2015-03-19
    • 2019-02-05
    相关资源
    最近更新 更多