2015-06-17 9 views
12

मेरे पास एक मौजूदा उद्देश्य-सी प्रोजेक्ट है और मैं एक निर्भरता के रूप में OHHTTPStubs के साथ एक नया एक्सकोड 7 यूआई परीक्षण लक्ष्य जोड़ना चाहता हूं।कोकोपोड्स के माध्यम से एक एक्सकोड 7 यूआई परीक्षण निर्भरता शामिल करें?

मैं Xcode में नए (स्विफ्ट 2.0) यूआई परीक्षण लक्ष्य जोड़ा, फिर मेरे Podfile को यह कहा:

target 'FooUITests' do 
    pod 'OHHTTPStubs', '4.0.1' 
end 

मैं pod update भाग गया, साफ है, और पुनर्निर्माण किया। लेकिन जब मैं टेम्पलेट यूआई परीक्षण के शीर्ष पर कोशिश करता हूं और import OHHTTPStubs करता हूं। मेरे लिए बनाई गई फ़ाइल फ़ाइल एक्सकोड फ़ाइल, यह शिकायत करता है कि "ऐसा कोई मॉड्यूल नहीं है" OHHTTPStubs '"।

मैं कोकोपोड्स संस्करण 0.37.2 का उपयोग कर रहा हूं- एक उद्देश्य-सी निर्भरता को स्विफ्ट (... यूआई परीक्षण) लक्ष्य में काम करने के लिए भी आयात कर रहा है?

अद्यतन: नीचे मेरी self-answer में बताया गया है, मेरे Podfile को use_frameworks! जोड़ने मुझे साफ संकलन-मैं, लेकिन काम करता है-जब मैं वास्तव में जाना अपने परीक्षण फ़ाइल, संदर्भ वर्गों और विधियों, कोड पूरा होने के शीर्ष पर कर सकते हैं import OHHTTPStubs हो जाता है

2015-06-18 10:06:57.134 XCTRunner[51557:609693] The bundle “FooUITests” couldn’t be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle. 
2015-06-18 10:06:57.135 XCTRunner[51557:609693] (dlopen_preflight(/Users/foo/Library/Developer/CoreSimulator/Devices/38181A1B-67B1-4D7F-B434-85361533F985/data/Containers/Bundle/Application/83C68748-55A3-4A02-8862-C18ADEF895B5/FooUITests-Runner.app/PlugIns/FooUITests.xctest/FooUITests): Library not loaded: @rpath/OHHTTPStubs.framework/OHHTTPStubs 
    Referenced from: /Users/foo/Library/Developer/CoreSimulator/Devices/38181A1B-67B1-4D7F-B434-85361533F985/data/Containers/Bundle/Application/83C68748-55A3-4A02-8862-C18ADEF895B5/FooUITests-Runner.app/PlugIns/FooUITests.xctest/FooUITests 
    Reason: image not found) 

वहाँ Release-iphoneos और Release-iphonesimulator मेरी ~/Library/Developer/DerivedData निर्देशिका के अंतर्गत OHHTTPStubs.framework के बनाता है, हालांकि होने लगते है: परीक्षण चलाने के लिए मैं Xcode कंसोल में निम्न उत्पादन मिलता है।

क्या संकेत चल रहा है के बारे में कोई संकेत?

उत्तर

2

बाहर कर देता है सब मुझे क्या करना जरूरत use_frameworks! को Cocoapods बता Podfile में (स्विफ्ट लक्ष्य के लिए) था:

target 'FooUITests' do 
    use_frameworks! 
    pod 'OHHTTPStubs', '4.0.1' 
end 
+2

हम्म, शायद इतना तेज़ नहीं। यह कई सफाई और पुनर्निर्माण के बावजूद, (क्यों?) के बावजूद काम नहीं कर रहा है। अब मुझे "बंडल" फू मिल रहा है "लोड नहीं किया जा सका क्योंकि यह आवश्यक संसाधनों को क्षतिग्रस्त या गायब कर रहा है। बंडल को पुनर्स्थापित करने का प्रयास करें।" जब भी मैं कोशिश करता हूं और वास्तव में परीक्षण चलाता हूं, हालांकि यह बनाता है। –

+0

क्या आपने कभी यह पता लगाया है? एक ही समस्या है। – piofusco

0

CocoaPods 0.38.0.beta.2 का उपयोग कर काम करने के लिए लगता है, जाँच https://github.com/CocoaPods/CocoaPods/issues/3709

+1

मेरे लिए नहीं। मैं 0.3 9 पर एक ही मुद्दे देख रहा हूँ। –

1

[CP] Embed Pods Frameworks जोड़ना मेरे परीक्षण लक्ष्य में स्क्रिप्ट बिल्ड चरण को मेरे लिए तय किया गया है, जैसा कि in this CocoaPods GitHub issue वर्णित है। (जो "${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTARGET/Pods-YOURTARGET-frameworks.sh" चलता है)

ध्यान रखें कि आपके नियमित लक्ष्य में, अपने चरण बनाएं खंड दोनों [CP] Copy Pods Resources हैं (हालांकि "${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTARGET/Pods-YOURTARGET-resources.sh" चलाता है), और [CP] Embed Pods Frameworks। लेकिन आपके परीक्षण लक्ष्य में केवल [CP] Copy Pods Resources है।

मैन्युअल रूप से [CP] Embed Pods Frameworks मैन्युअल रूप से अपने परीक्षण लक्ष्य ("${SRCROOT}/../../Pods/Target Support Files/Pods-YOURTESTTARGET/Pods-YOURTESTTARGET-resources.sh" चलाने के लिए) को स्क्रिप्ट चरण चलाएं।

संबंधित मुद्दे