2015-02-18 16 views
6

मैं कोको पॉड्स द्वारा स्थापित पर्यावरण के अंदर पुन: प्रयोज्य कोड के साथ एक त्वरित मॉड्यूल (कोको टच फ्रेमवर्क) बनाने की कोशिश कर रहा हूं जिसमें उद्देश्य-सी (अर्थात् यहां रेस्टकिट) में लिखे गए तीसरे पक्ष के पुस्तकालय शामिल हैं। । दुर्भाग्य से मैं अपने द्वारा बनाए गए मॉड्यूल में रेस्टकिट का उपयोग करने में सक्षम नहीं हूं। कोको टच फ्रेमवर्क, भाषा:: स्विफ्ट, परियोजना: MyProject, एम्बेड आवेदन में: MyProjectस्विफ्ट मॉड्यूल (ढांचे) में निर्भरता का उपयोग

  • में -> नई लक्ष्य

    1. फ़ाइल:

      यहाँ है कि मैं क्या मॉड्यूल बनाने के लिए किया था है "कॉन्फ़िगरेशन" खंड में प्रोजेक्ट सेटिंग्स का "जानकारी" टैब मैं अपने नए बनाए गए लक्ष्य के लिए Pods.debug और Pods.release xcconfig फ़ाइल को परिभाषित करता हूं।

      #import <RestKit/RestKit.h>

    परिणाम::

  • प्रवेशिका फ़ाइल, Xcode स्वचालित रूप से मेरे लिए बनाया है जो में, networkModule.h, मैं निम्न पंक्ति जोड़ते हैं संकलन करने की कोशिश कर रहा है मुझे त्रुटि मिलती है "फ्रेमवर्क मॉड्यूल के अंदर गैर मॉड्यूलर हेडर शामिल करें" नेटवर्क मॉड्यूल '

    मैंने बिल्ड सेटिंग्स में वाईएस में "गैर-मॉड्यूलर फ्रेमवर्क मॉड्यूल में शामिल करने की अनुमति" के लिए ध्वज सेट किया है परियोजना लक्ष्य और मॉड्यूल/फ्रेमवर्क लक्ष्य के लिए।

    मैं कोको पॉड प्रोजेक्ट में गया और मैंने लक्ष्य सदस्यता में "सार्वजनिक" के लिए RestKit.h शीर्षलेख फ़ाइल की दृश्यता सेट करने का प्रयास किया है (जो निश्चित रूप से कोको पॉड्स पर्यावरण के साथ गड़बड़ी का अच्छा समाधान नहीं है)

    मैं संकलित करने में सक्षम नहीं हूं। मुझे अब भी वही त्रुटि मिलती है।

    यह पहली जगह एक कोको फली कामयाब ढांचे के लिए निर्भरता के साथ एक कोको टच रूपरेखा बनाने के लिए संभव है?

    बीटीडब्ल्यू। एक निजी कोको फली बनाने के रूप में अच्छी तरह से बाहर काम नहीं किया, के रूप में यह प्रतीत नहीं होता है की मेरी पहली विचार, समर्थित होने की हालांकि मैं तेजी के लिए समर्थन के साथ कोको फली 0.36 की प्री-रिलीज़ उपयोग कर रहा हूँ।

  • +0

    यह http://stackoverflow.com/questions/24876936/obj-c-cocoapods-swift-framework – bonebox

    +0

    @alex da franca का एक डुप्लिकेट है क्या आपने अपनी समस्या हल की है? मुझे एक ही समस्या है और मुझे कोई समाधान नहीं मिल रहा है –

    +0

    कुछ और सेटिंग्स tweaks के बाद समस्या चली गई (या जैसा कि यह एक एक्सकोड अपडेट ... ;-) मैं अब RESTKIT का उपयोग नहीं कर रहा हूं, जैसा कि मैं ढूंढ रहा था एक "तेज" समाधान। फिर भी मैं एम्बेडेड फ्रेमवर्क का उपयोग करता हूं, जो पीओडी पर निर्भर करता है और इसे काम करने के लिए मिला है, लेकिन अब यह कहना मुश्किल है कि वास्तव में सफलता में क्या बदलाव आया है। –

    उत्तर

    0

    आपको अपना जीता निजी पॉड बनाने में सक्षम होना चाहिए। आपको बस इसके लिए एक पॉडस्पेक बनाने की जरूरत है। यहां एक उदाहरण है।

    Pod::Spec.new do |s| 
        s.name   = "Commons" 
        s.version  = "1.0.0" 
        s.summary  = "Common code for my iOS projects." 
        s.license  = {:type => 'Commercial', :text => "Copyright (c) Dan Leonard(Or Your Name?). All rights reserved." } 
        s.source  = { :git => "https://github.com/PATHTOPOD", :tag => 
        s.version.to_s } 
        s.homepage  = "https://github.com/PATHTOPOD" 
        s.requires_arc = true 
    
        s.ios.deployment_target = '9.0' 
    
        s.subspec 'Core' do |ss| 
        ss.source_files = '*.swift' 
        end 
    
        s.subspec 'Menu' do |ss| 
        ss.source_files = 'Menu/*.swift' 
        ss.resources = ['Menu/*.storyboard', 'Menu/*.xcassets'] 
        ss.dependency 'Alamofire' 
        end 
    end 
    

    तो अपनी परियोजना के अंदर आप सिर्फ pod init अपने podfile कि सिर्फ बनाया गया था खोलने के लिए और इस उदाहरण Podfile कॉमन्स में अब इस

    source 'https://github.com/CocoaPods/Specs.git' 
    xcodeproj 'YOURPROJECT.xcodeproj' 
    platform :ios, '9.0' 
    use_frameworks! 
    
    pod 'Commons', git: 'https://github.com/PATHTOPODPROJECT' 
    #pod 'Commons', :path => '/Users/YourUser/Path/To/Project/commons' 
    
    pod 'KeychainSwift' 
    pod 'SQLite.swift', git: 'https://github.com/stephencelis/SQLite.swift.git' 
    

    जोड़ने करने के लिए दो बार दूसरे पर टिप्पणी की है कहा गया है है। यदि आप इसे अनदेखा करते हैं और पहले टिप्पणी करते हैं तो टर्मिनल से अपने प्रोजेक्ट फ़ोल्डर में pod install करें। यह एक विकासपोत बना देगा जो एक फली है जो स्थानीय है। इस तरह आप एक्सकोड के भीतर स्थानीय रूप से फली में परिवर्तन कर सकते हैं। कोई स्विचिंग और फली हर बार जब आप एक परिवर्तन करना स्थापित करने।

    आप रख कर किसी भी अन्य की तरह फली आयात करेगा

    import Commons नहीं #import <Commons/Commons.h> है यही कारण है कि आप इसे कैसे उद्देश्य सी स्विफ्ट नहीं में क्या

    एक बार जब आप एक काम संस्करण है हब और बिंदु git करने के लिए यह वादा आपकी परियोजना github संस्करण के लिए।

    उम्मीद है कि इससे मदद मिलती है।

    +0

    के तहत "हेडर" धन्यवाद, लेकिन समस्या वास्तव में एक स्वयं का पीओडी बनाने के लिए नहीं थी, जो बाद में काम करता था और मुझे लगता है कि यह एक संस्करण-का-कोकोपोड्स-मुद्दा था, फिर वापस (एक साल पहले) कृपया उपर्युक्त प्रश्नों पर टिप्पणियां पढ़ें, कि प्रारंभिक समस्या, जो एक स्वयं की फली नहीं बना रही थी, बल्कि एक दूसरे के आधार पर पीओडी रखने के बजाय, कोको फोड के अपडेट द्वारा हल किया गया है। –

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