CocoaPods 不链接库

dav*_*son 6 static-linking ios cocoapods xcode7

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

问题是我似乎仍然必须将链接二进制文件中的框架与构建阶段的库部分显式链接,或者我收到错误消息,大意是“_OBJC_CLASS_$_Crashlytics”,引用自:ld:符号未找到架构 x86_64 ......我收到了一些 CocoaPods 管理的依赖项中定义的类的错误。如果我在目标的 Link Binary with Libraries 部分的 Pods 项目中明确添加相关框架,一切正常,但根据我的理解,这应该没有必要。

这是 podfile:

# 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
Run Code Online (Sandbox Code Playgroud)

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

非常感谢任何帮助

小智 0

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

在我的 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
Run Code Online (Sandbox Code Playgroud)

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

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

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