在构建测试目标期间未导入Cocoapod

时间:2015-02-24 19:44:02

标签: ios swift cocoapods

我会先说这个解决方案可能非常简单,但我已经尝试了几个小时来解决这个问题,我觉得它很接近,但有些事情仍然是错误的。

我正在创建一个Cocoapod,其中包含一些其他pod作为依赖项,我正在尝试设置项目/目标,但是遇到了我试图在{{1}中加载Cocoapod依赖项的问题}(PusherSwift.swift等)失败。

以下是回购的链接:https://github.com/hamchapman/pusher-swift-test

任何人都可以看到没有加载pod框架的原因,以便可以在import Alamofire文件中使用它们吗?

具体来说,我正在尝试运行(默认)测试,但它一直在说失败:

PusherSwift.swift

注意,我正在使用以下内容:

  • cocoapods 0.36.0 beta2 gem
  • Xcode 6.3 beta

4 个答案:

答案 0 :(得分:2)

好吧,我现在通过在PusherSwift项目中添加Pods项目使其工作。我不完全确定为什么它能使它工作但它基本上似乎只是让PusherSwift目标的框架可用。

答案 1 :(得分:1)

默认情况下,Cocoapods仅链接到项目中的第一个目标。第二个目标,通常是您的单元测试,没有链接。 http://guides.cocoapods.org/syntax/podfile.html#link_with

使用Podfile中的link_with配置将pod明确链接到您的单元测试目标。例如

link_with 'MyApp', 'MyAppTests'

答案 2 :(得分:1)

做这样的事情:

target 'Echo' do
    pod 'Alamofire'
    pod 'AFNetworking'
    pod 'Google/Analytics'
    pod 'Google/AppInvite'
    pod 'Appirater'
    pod 'FDTake'
    pod 'MBProgressHUD'
    pod 'TDBadgedCell'
    pod 'FDWaveformView'
    pod 'SwiftyJSON'

    target 'EchoTests' do
        inherit! :search_paths
    end
end

这使得测试目标具有主目标所具有的所有pod,但您仍然可以定义一些测试依赖项,如模拟或存根pod

答案 3 :(得分:0)

这是一个愚蠢的答案,但它确实有效。

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!

target 'Echo' do
    pod 'Alamofire'
    pod 'AFNetworking'
    pod 'Google/Analytics'
    pod 'Google/AppInvite'
    pod 'Appirater'
    pod 'FDTake'
    pod 'MBProgressHUD'
    pod 'TDBadgedCell'
    pod 'FDWaveformView'
    pod 'SwiftyJSON'
end

target 'EchoTests' do
    pod 'Alamofire'
    pod 'AFNetworking'
    pod 'Google/Analytics'
    pod 'Google/AppInvite'
    pod 'Appirater'
    pod 'FDTake'
    pod 'MBProgressHUD'
    pod 'TDBadgedCell'
    pod 'FDWaveformView'
    pod 'SwiftyJSON'
end

我确信有更好的方法可以做到这一点,但我找不到它!