2013-09-25 39 views
1

我有麻煩上的Xcode 5.此設置OCMockito(和OCHamcrest)用的CocoaPods問題是我Podfile:約OCMockito設置與的CocoaPods

platform :ios, '5.0' 
pod 'RestKit', '~> 0.20.0' 
pod 'OCMockito', '~> 1.0.0' 
link_with ['WeatherApp', 'WeatherAppTests'] 

當我試圖跟iOS的項目設置(https://github.com/jonreid/OCMockito#adding-ocmockito-to-your-project) ,Xcode中找不到這個進口:

#define HC_SHORTHAND 
#import <OCHamcrestIOS/OCHamcrestIOS.h> 

#define MOCKITO_SHORTHAND 
#import <OCMockitoIOS/OCMockitoIOS.h> 

於是,我就這樣做insted的:

#define HC_SHORTHAND 
#import <OCHamcrest/OCHamcrest.h> 

#define MOCKITO_SHORTHAND 
#import <OCMockito/OCMockito.h> 

它正在工作,但我不知道這很好。

另外,我還有一個問題。據我瞭解,我將RestKit和OCMockito連接到我的主要目標和我的測試目標。是否有可能在兩個目標上鍊接RestKit,但只將OCMockito鏈接到測試目標上?

在此先感謝您的幫助。

UPDATE:

這是Pods.xcconfig generetad通過的CocoaPods:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers" "${PODS_ROOT}/Headers/AFNetworking" "${PODS_ROOT}/Headers/OCHamcrest" "${PODS_ROOT}/Headers/OCMockito" "${PODS_ROOT}/Headers/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit" "${PODS_ROOT}/Headers/RestKit/RestKit/CoreData" "${PODS_ROOT}/Headers/RestKit/RestKit/Network" "${PODS_ROOT}/Headers/RestKit/RestKit/ObjectMapping" "${PODS_ROOT}/Headers/RestKit/RestKit/Support" "${PODS_ROOT}/Headers/SOCKit" "${PODS_ROOT}/Headers/TransitionKit" 
OTHER_LDFLAGS = -ObjC -framework CFNetwork -framework CoreData -framework CoreGraphics -framework MobileCoreServices -framework Security -framework SystemConfiguration 
PODS_ROOT = ${SRCROOT}/Pods 

看來,IOS頭都沒有設置正確,是莢錯呢?

UPDATE:

這是莢/接頭連接/ OCMockito

Pods/Headers/OCMockito

+0

你檢查Pods.xcconfig正在建立這些頭正常嗎? – MishieMoo

+0

我已經更新了我的問題,看起來頭文件沒有正確設置。 – Ruenzuo

+0

OCMockito標題應該在'Pods/Headers/OCMockito'中。你確定你不覆蓋你的項目或目標構建配置中的任何設置嗎? – MishieMoo

回答

1

OCHamcrestIOS僅適用於使用預構建的iOS框架的內容。使用CocoaPods時,只需導入OCHamcrest。

1

要在您的測試目標捆綁使用OCHamcrest(或OCMockito),而不是你的主要應用程序,你可以像這樣添加一些東西到Podfile:

target :YourTestTarget, :exclusive => true do 
    pod 'OCHamcrest', '~> 3.0' 
    pod 'OCMockito', '~> 1.0' 
    #pod 'RestKit/Testing' 
end 

如果您打算進行單元測試RestKit映射(等)那麼你可能也想在你的包中包含RestKit/Testing。

然後你只包括像這樣:

#define HC_SHORTHAND 
#import <OCHamcrest/OCHamcrest.h> 

#define MOCKITO_SHORTHAND 
#import <OCMockito/OCMockito.h> 

這是完整的Podfile可能是什麼樣子:

platform :ios, '5.1' 
pod 'Appirater', '~> 0.0.2' 
pod 'FlurrySDK', '~> 4.0.5' 
pod 'RestKit',  '~> 0.21.0' 
target :FooBarTests, :exclusive => true do 
    #pod 'RestKit/Testing' 
    pod 'OCHamcrest', '~> 3.0' 
    pod 'OCMockito', '~> 1.0' 
end 
+0

感謝您的幫助,這真的很有用。 – Ruenzuo