2014-11-19 7 views
5

के साथ आईओएस के लिए एम्बेडेड गतिशील ढांचे में तीसरे पक्ष के lib का उपयोग कैसे करें अब मेरे पास एक परियोजना है, जैसे टेस्ट ऐप, कुछ तीसरे पक्ष की lib का उपयोग करके अलामोफायर और कुछ अन्य उद्देश्य-सी में libs का उपयोग कर।स्विफ्ट

अब मैं आज विजेट जोड़ना चाहता हूं। कुछ ट्यूटोरियल के मुताबिक, मैंने एक साझा लक्ष्य "testAppKit" को एक साझा गतिशील ढांचे के रूप में बनाया है, और आज के रूप में "testAppWidget" को लक्षित करें। सामान्य कोड testAppKit में पुन: उपयोग के लिए होगा।

अब मुझे testAppKit में तृतीय पक्ष libs का उपयोग करने की आवश्यकता है। और testAppKit के निर्माण चरणों में lib और हेडर जोड़ा। फिर मैं testAppKit.h में #import <theLib/TheHeader.h> जोड़ता हूं। लेकिन वहाँ एक त्रुटि है:

Include of non-modular header inside framework module 'testAppKit' 

तो, मैं कैसे एम्बेडेड गतिशील ढांचे के इस प्रकार में तीसरे पक्ष के libs उपयोग करने के लिए (शायद स्विफ्ट या ऑब्जेक्टिव-सी में) जानना चाहते हैं।

उत्तर

7

मैं अपने ऐप में ड्रॉपबॉक्स डेटास्टोर एपीआई का उपयोग करता हूं और अंततः इसे ऐप और आज एक्सटेंशन युक्त कोड साझा करने के लिए एम्बेडेड कोको टच फ्रेमवर्क के लिए काम करता हूं।

मैं पता लगा एम्बेडेड ढांचे में मेरी स्विफ्ट फ़ाइल में मैं किसी भी 3 पार्टी ढांचे मैं परियोजना (अर्थात Farbic.framework, Crashlytics आदि), लेकिन नहीं ड्रॉपबॉक्स में था आयात कर सकते हैं कि।

क्या अंतर था? "मॉड्यूल" फ़ोल्डर! Dropbox.framework मॉड्यूल मानचित्र फ़ाइल प्रदान नहीं करता है। तो मैंने इसे Fabric.framework में जो पाया है उसके आधार पर बनाया:

  1. अपनी प्रोजेक्ट सख्त में ड्रॉपबॉक्स.फ्रेमवर्क फ़ोल्डर पर जाएं।
  2. नया फ़ोल्डर "मॉड्यूल" बना सकते हैं और अंदर जाना
  3. एक फ़ाइल बुलाया बनाएँ: "module.modulemap"

फ़ाइल की सामग्री:

framework module Dropbox { 
    umbrella header "Dropbox.h" 

    export * 
    module * { export * } 
} 

कर कि मैं करने के लिए आवश्यक करने के बाद आयात पथ जोड़ें।

  1. अपने प्रोजेक्ट फ़ाइल पर जाएं
  2. "बिल्ड सेटिंग" पर अपने एम्बेडेड ढांचे लक्ष्य का चयन करें
  3. जाओ और पाते हैं "स्विफ्ट संकलक - खोज पथ"
  4. अपने Dropbox.framerowk और स्थापित करने के लिए पथ जोड़ें "रिकर्सिव" विकल्प।

मैं यहाँ एक स्क्रीनशॉट रखना चाहते थे लेकिन मुझे लगता है कि अभी तक ऐसा नहीं कर सकते - मेरी "प्रतिष्ठा" की वजह से;)

अब मैं "आयात ड्रॉपबॉक्स" ऐसा करने के लिए मेरी तेज फाइलों में सक्षम हूँ:)

आशा इस मदद कर सकता है :)