无法将Pods链接到Calabash目标

时间:2014-10-07 09:17:02

标签: ios xcode cocoapods calabash

我们在Calabash目标中整合CocoaPods时遇到了一些问题。

目前我们有4个目标:

应用:正常应用目标
AppTests :单元测试目标
App-Calabash :葫芦目标
App-API-Stubs :特殊目标

我们希望在App,App-Calabash和App-API-Stubs之间共享所有Pod。 此外,AppTests和App-Calabash必须包括其他库。

这是我们的Podfile:

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '7.0'

link_with 'App', 'App-Calabash', 'App-API-Stubs'
inhibit_all_warnings!

pod 'MagicalRecord', '~> 2.2'
pod 'AFNetworking', '~> 2.3.1'
pod 'ObjectiveSugar', '~> 1.1.0'
pod 'KZPropertyMapper', '~> 2.5.0'
pod 'FXBlurView', '~> 1.6.2'
pod 'OHHTTPStubs', '~> 3.1.5'
pod 'Google-Maps-iOS-SDK', '~> 1.8.1'
pod 'KVOController', '~> 1.0.1'
pod 'Braintree', '~> 3.3.1'
pod 'TTTAttributedLabel', '~> 1.10.1'
pod 'ObjectiveLuhn', '~> 1.0.0'
pod 'CrashlyticsFramework', '~> 2.2.1'

target 'App-Calabash', :exclusive => true do
  pod 'Calabash', '~> 0.9.169'
end

target 'AppTests', :exclusive => true do
  pod 'Specta', '~> 0.2.1'
  pod 'Expecta', '~> 0.3.0'
  pod 'OCMock', '~> 3.1.1'
end

所有目标都建立并运行得很好但是Calabash一个 它抱怨它无法找到Crashlytics/Crashlytics.h。但即使我们暂时避免使用Crashlytics,它也会在链接过程中抱怨Calabash库:

ld: warning: directory not found for option '-L/Users/Marco/ios/App/Pods/build/Debug-iphoneos'
ld: file not found: -lPods-App-Calabash-Calabash
clang: error: linker command failed with exit code 1 (use -v to see invocation)

因此,将豆荚整合到特定目标中似乎有些错误 我很确定我错过了一些简单的东西,但我无法弄清楚。

非常感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

我整个上午都在寻找解决方案。我在这里找到了答案http://flexpletives.blogspot.com.es/2014/02/ios7-tdd-w-ocmock-and-xcode5.html

转到你的Calabash目标 - >构建设置 - >其他链接器标志

删除“-force_load” 添加“-all_load”

答案 1 :(得分:1)

通过为您的Podfile中的App-Calabash目标指定独占,您说想要链接Calabash框架而不是其他框架,这就是为什么找不到Crashlytics的原因。< / p>

target 'App-Calabash', :exclusive => true do
   pod 'Calabash', '~> 0.9.169'
end

今天我使用Cocoapods设置了Calabash,这就是我的工作方式:

1。)将新配置添加到名为Calabash或类似项目的项目中(从项目设置的“信息”面板中)。

2。)使用以下行更新您的Podfile:

pod 'Calabash', :configurations => ['Calabash']

3.。)从命令行运行pod update

4.。)在Pods项目下,在Targets Support Files中,你应该找到一个名为Pods.calabash.xcconfig的文件。将此文件拖放(但不要选择“如果需要时复制”选项)将该文件与Pods.debug.xcconfig和Pods.release.xcconfig一起拖到主项目中的Pods组。

5.。)在主项目中,导航到项目设置的“信息”面板,然后展开在步骤1中创建的Calabash配置。主项目的目标配置将设置为Pods.debug或Pods.release。将它设置为Pods.calabash。

6。)创建一个名为Calabash的新方案并进行编辑。选择“运行”阶段,然后在“信息”窗格中从下拉列表中选择Calabash构建配置。

7。)为了运行Calabash,选择新创建的Calabash方案并运行。

希望这些信息有所帮助。

答案 2 :(得分:0)

以下答案帮助我解决了与此几乎完全相同的问题。

https://stackoverflow.com/a/27039447/1004227

简而言之,我必须为Calabash计划的所有相关目标将配置设置为None。然后运行pod install并让Cocoapods将配置重置为Pods.calabash配置。