2015-02-24 20 views
3

我会在前言中说这个解决方案可能非常简单,但我已经尝试了几个小时来弄清楚这一点,我觉得它很接近,但仍有一些错误。Cocoapod在构建测试目标期间没有被导入

我创建一个Cocoapod有一些其他的豆荚作为依赖,我想设置的项目/目标工作,但跑入问题,在我试图在PusherSwift.swift加载Cocoapod依赖(import Alamofire等)都失败了。

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

任何人都可以看到,为什么没有被加载POD框架,使他们能够在PusherSwift.swift文件中使用?

具体我试图运行(默认)测试,但它不断失败的说:

No such module Alamofire

注意,我使用了以下内容:

  • 的CocoaPods 0.36。 0 beta2 gem
  • Xcode 6.3 beta
+0

迅捷支持稳定吗? – mostruash 2015-02-24 20:00:53

+0

嗯,我假设没有完全看到宝石仍然是一个测试版。但是,我觉得我得到的问题是微不足道的(当你知道答案!) – hamchapman 2015-02-24 20:37:20

回答

2

好的w我现在通过在PusherSwift项目中添加Pods项目来完成它的工作。我不完全相信为什么它能够工作,但基本上它似乎只是让PusherSwift目标可用的框架。

1

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

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

link_with 'MyApp', 'MyAppTests'

+0

cocoapods 1.0有类似的解决方案吗? – 2016-01-21 19:48:35

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 

我敢肯定有更好的方法来做到这一点,但我找不到它!

+0

查看我的回答;) – ErikBrandsma 2016-06-21 13:10:05

0

做这样的事情:

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 

这就使得测试目标具有所有的主要对象有豆荚,但你仍然可以定义一些testdependencies喜欢嘲讽或磕碰荚

相关问题