CocoaPods没有链接库

时间:2015-12-09 18:07:21

标签: ios cocoapods xcode7 static-linking

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

问题是我似乎仍然必须明确链接链接二进制文件中的框架与构建阶段的库部分,或者我得到的错误消息“_ OBJC_CLASS _ $ _ Crashlytics”,引自:ld:symbol (s)找不到架构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

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

任何非常感谢的帮助

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,其中编译好的库,但在链接时找不到。

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

// pull the target URL out of the session and parse it to get the ?username=crmpicco part     

parse_str(parse_url($request->getSession()->get('_security.default.target_path'), PHP_URL_QUERY), $usernameArray);

$prefilledUsername = isset($usernameArray['username']) ? $usernameArray['username'] : '';

// ... then pass through $prefilledUsername to my Login view

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

当链接应用程序时,它将失败,并且缺少所有包含pod的库!

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