2013-08-29 6 views
14

मैं अपने आईओएस ऐप के साथ कुछ हफ्तों के लिए कोकोपोड्स का उपयोग कर रहा हूं और यह एक लक्ष्य के साथ पूरी तरह से काम करता है जिसे मैं परीक्षण कर रहा हूं (चलिए इसे "मेन ऐप" कहते हैं)। हालांकि, अब मैं एक अलग लक्ष्य ("MyAppLite") बनाना चाहता हूं और ध्यान दिया कि बिल्ड विफल रहा है (फ़ाइल को पॉड्स की शीर्षलेख फ़ाइलों में से एक पर नहीं मिला है)।सभी लक्ष्यों के साथ फली को एकीकृत करना

सेटिंग बिल्ड मैंने देखा है में मतभेद इस प्रकार हैं:

  • अन्य लिंकर झंडे MyAppLite
  • फ्रेमवर्क में आवश्यक व्यवस्थाएं शामिल नहीं है/शीर्ष/लाइब्रेरी खोज पथ सभी MyAppLite में खाली हैं
  • MainApp में उपयोगकर्ता निर्धारित सेटिंग्स बिल्ड में से कोई भी मैं यह कैसे सुनिश्चित कर सकते हैं MyAppLite

में मौजूद हैं कि जब मैं pod install, सभी टा चलाने rgets पुस्तकालयों से जुड़ा हुआ है?

platform :ios, '5.0' 

pod 'TTTAttributedLabel', '~> 1.7.0' 
pod 'iRate', '~> 1.7.5' 
pod 'MBProgressHUD', '~> 0.6' 
pod 'FlurrySDK', '~> 4.2.3' 
pod 'ACSimpleKeychain', '~> 0.0.1' 
pod 'WEPopover', '~> 0.0.1' 
pod 'AFNetworking', '~> 1.3.1' 
pod 'Nimbus', '~> 1.0.0' 
pod 'QuincyKit', '~> 2.1.9' 
+0

कृपया Cocoapods 1.0.0 संगतता के लिए http://stackoverflow.com/a/34905278/1033581 को देखें। –

उत्तर

13

के लिए अलग निर्भरता विन्यास की जरूरत है आप link_with निर्देश

platform :ios, '5.0' 

pod 'TTTAttributedLabel', '~> 1.7.0' 
pod 'iRate', '~> 1.7.5' 
pod 'MBProgressHUD', '~> 0.6' 
pod 'FlurrySDK', '~> 4.2.3' 
pod 'ACSimpleKeychain', '~> 0.0.1' 
pod 'WEPopover', '~> 0.0.1' 
pod 'AFNetworking', '~> 1.3.1' 
pod 'Nimbus', '~> 1.0.0' 
pod 'QuincyKit', '~> 2.1.9' 

link_with "MyApp" 
link_with "MyAppLite" 

का उपयोग इस libPods.a का उत्पादन करेगा कर सकते हैं और यह Target1 और Target1 से लिंक होगा ।

प्रासंगिक documentation:

  • ध्यान दें, स्वचालित रूप से अपनी परियोजना के साथ podfile में हर लक्ष्य लिंक cocoapods कि। इस कारण से लक्ष्यों के नाम मिलना चाहिए। किसी भी कारण से आप एक अलग नाम के साथ अपने podfile में एक लक्ष्य निर्दिष्ट करना चाहते हैं, तो आप link_with विशेषता सेट कर सकते हैं:

    target :test, :exclusive => true do 
        link_with 'MyAppTests' 
    end 
    
  • लक्ष्य डिफ़ॉल्ट रूप से, विशेष कर रहे हैं उनके माता पिता के लिए एक अलग मंच है।

  • पॉडफाइल का मुख्य लक्ष्य, हमेशा अंतिम परियोजना के पहले लक्ष्य से जुड़ा हुआ है।

+2

यह अनिवार्य रूप से मैं क्या किया है, लेकिन मैं एक स्पष्ट लक्ष्य सभी फली युक्त, लाइन 'link_with के बाद परिभाषित करने के लिए किया था [, 'MyApp' 'MyAppLite']' फली की सूची से पहले। – colincameron

+0

क्या मैं पूछ सकता हूं कि आपको ऐसा क्यों करना पड़ा? –

+0

सुनिश्चित नहीं है, यह अन्यथा काम नहीं करेगा। – colincameron

2

डॉक्स से::

कोई स्पष्ट लक्ष्य निर्दिष्ट किया जाता है, तो फलियाँ लक्ष्य अपनी परियोजना में पहले लक्ष्य के साथ लिंक कर दिया जाएगा

संदर्भ के लिए, मेरी Podfile है।

आप आगे के लक्ष्यों के साथ जोड़ने के लिए link_with का उपयोग कर सकते हैं।

इसके अलावा Cocoapods दस्तावेज में Multiple Targets यदि आप विभिन्न लक्ष्यों

+0

सेटिंग बिल्ड 'फली install' साथ स्वचालित रूप से स्थापित कर रहे हैं - मैं मैन्युअल रूप से चीजें हैं जो सही ढंग से स्वचालित रूप से उत्पन्न किया जाना चाहिए के साथ खिलवाड़ शुरू करने के लिए नहीं करना चाहते हैं - कि CocoaPods के पूरे मुद्दे नहीं है? – colincameron

+0

इसके अलावा, मैं सभी लक्ष्यों के लिए बिल्कुल वही निर्भरता निर्धारित करना चाहता हूं। – colincameron

+0

ठीक है। मैंने जवाब अपडेट किया। आशा करता हूँ की ये काम करेगा। – serrrgi

24

CocoaPods 1.0.0, devs से सिफारिश abstract_target (लेकिन 0.39.0 के साथ संगत नहीं) का उपयोग कर रहा है के लिए:

platform :ios, '5.0' 

abstract_target 'defaults' do 
    pod 'TTTAttributedLabel', '~> 1.7.0' 
    pod 'iRate', '~> 1.7.5' 
    pod 'MBProgressHUD', '~> 0.6' 
    pod 'FlurrySDK', '~> 4.2.3' 
    pod 'ACSimpleKeychain', '~> 0.0.1' 
    pod 'WEPopover', '~> 0.0.1' 
    pod 'AFNetworking', '~> 1.3.1' 
    pod 'Nimbus', '~> 1.0.0' 
    pod 'QuincyKit', '~> 2.1.9' 

    target 'MyApp' 
    target 'MyAppLite' 
end 

CocoaPods 0.39.0 + 1.0 के लिए।0 संगतता, def का उपयोग कर ठीक काम करता है (लेकिन devs द्वारा अनुशंसित नहीं है):

platform :ios, '5.0' 

def default_pods 
    pod 'TTTAttributedLabel', '~> 1.7.0' 
    pod 'iRate', '~> 1.7.5' 
    pod 'MBProgressHUD', '~> 0.6' 
    pod 'FlurrySDK', '~> 4.2.3' 
    pod 'ACSimpleKeychain', '~> 0.0.1' 
    pod 'WEPopover', '~> 0.0.1' 
    pod 'AFNetworking', '~> 1.3.1' 
    pod 'Nimbus', '~> 1.0.0' 
    pod 'QuincyKit', '~> 2.1.9' 
end 

target 'MyApp' do 
    default_pods 
end 

target 'MyAppLite' do 
    default_pods 
end 
संबंधित मुद्दे