2015-02-24 21 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喜歡嘲諷或磕碰莢

相關問題