【发布时间】: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