2015-10-12 7 views
18

में एक फ्रेमवर्क लक्ष्य में कनवर्ट करें मेरे पास एक एक्सकोड प्रोजेक्ट है जो एक स्थिर लाइब्रेरी उत्पन्न करता है। मेरी टीम स्विफ्ट में सभी नए विकास की योजना बना रही है। It is not possible to add Swift files to the static library project। हम आईओएस 7 के लिए समर्थन छोड़ रहे हैं, इसलिए अब हमारे आईओएस ऐप में ढांचे को शामिल करना संभव है। इसलिए, मैं अपने स्थैतिक पुस्तकालय परियोजना को एक ढांचा परियोजना में बदलने का इरादा रखता हूं।एक एक्सकोडिक लाइब्रेरी लक्ष्य को एक एक्सकोड प्रोजेक्ट

मैंने देखा है लेकिन मुझे इस रूपांतरण को निष्पादित करने के लिए कोई टूल या सलाह नहीं मिल रही है। स्थैतिक पुस्तकालय बड़ी है (100 से अधिक। एम फाइलें)।

मैं एक नया समांतर ढांचा लक्ष्य बनाने के बजाय बेहतर उत्तर की उम्मीद कर रहा हूं। मैंने इसे दो बार कोशिश की है। एक त्वरित लक्ष्य के रूप में पहली बार, लेकिन मैं आसानी से सभी उद्देश्य सी फाइलों को आयात करने में सक्षम नहीं था। अगला, एक उद्देश्य सी लक्ष्य के रूप में, लेकिन अब कोई .pch नहीं है।

+0

मैं मिश्रित objC + स्विफ्ट कोड का ढांचा बनाकर, एक ही समस्या में भाग गया। क्या आपको कोई समाधान @ जेफरी थॉमस मिला? –

+1

@ लॉउड नं। यह सिर्फ काम का एक दिन था। मैंने एक नया उद्देश्य सी लक्ष्य बनाया, फिर सभी लक्ष्य सेटिंग्स (.pch सहित) को फिर से बनाया। –

+1

महान सवाल, यह सुनकर बहुत दुखी है कि कोई गैर-मैन्युअल समाधान नहीं मिला है। :( –

उत्तर

1

मैंने देखा कि किसी ने मैन्युअल रूप से फ्रेमवर्क बनाया है, मॉड्यूल.फ्रेमवर्क फ़ाइल बना रहा है और सभी हेडर फ़ाइलों को मॉड्यूल.फ्रेमवर्क/हेडर फ़ोल्डर में कॉपी कर रहा है। यह समाधान काम करता प्रतीत होता है, प्रोजेक्ट सही ढंग से फाइलों को आयात कर सकता है और उन्हें फ्रेमवर्क के रूप में सही तरीके से देख सकता है।

मुझे यकीन नहीं है कि यह कठिन करने का सबसे अच्छा तरीका है, मैं इसे एक बड़ी परियोजना पर कोशिश कर रहा हूं कि एटीएम कोकोपोड्स के माध्यम से स्थिर पुस्तकालय आयात कर रहा है, लेकिन ऐसा लगता है कि मुझे दृश्यता के साथ कुछ समस्या है ढांचे का उपयोग कर कुछ कक्षाएं।

+0

क्या मैं अन्य ढांचे से हेडर फाइलों को अपने स्वयं के ढांचे में शामिल कर सकता हूं ताकि अंतिम उपयोगकर्ता मेरा ढांचा देख सके और मेरे से अन्य ढांचे से कक्षाओं तक पहुंच सके? – Saty

+0

क्या आपको याद है कि उन्होंने उन्हें सभी को संकलित स्रोत अनुभाग में कैसे चिपकाया ढांचे? मुझे कुछ हजार फाइलें मिलती हैं जिन्हें मुझे संभालने की ज़रूरत है। –

4

स्थिर जुड़ा हुआ पुस्तकालय से स्थिर/गतिशील जुड़ा हुआ ढांचा बदलने के लिए,

  1. अपने मौजूदा स्थिर जुड़ा हुआ पुस्तकालय परियोजना में एक लक्ष्य के रूप में एक नया कोको स्पर्श ढांचे जोड़ें।
  2. बिल्ड चरणों में, सभी .m, .mm, .c, .cpp, .metal, आदि को अपने स्थिर लिंक किए गए ढांचे के लक्ष्य के "\ Build चरणों \ संकलन स्रोत" चरण में जोड़ना।
  3. शीर्षलेखों को रखें जिन्हें आप "\ बिल्ड चरण \ शीर्षलेख" में उजागर करना चाहते हैं।
  4. गतिशील लिंक किए गए ढांचे के लिए, अपनी बिल्ड सेटिंग्स में मैक-ओ टाइप सेटिंग की जांच करना याद रखें। यदि आप तेजी से उपयोग करने जा रहे हैं, तो आपको यह सुनिश्चित करना होगा कि मैक-ओ प्रकार गतिशील लाइब्रेरी के रूप में सेट किया गया है ताकि यह गतिशील लिंक किए गए ढांचे बन जाए। स्थैतिक लिंक किए गए ढांचे के लिए, आपको मैच-ओ प्रकार को स्थैतिक पुस्तकालय के रूप में सेट करने की आवश्यकता होगी, लेकिन आप रूपांतरित स्थिर लिंक किए गए ढांचे में केवल स्विफ्ट का उपयोग नहीं कर सकते हैं (केवल उद्देश्य-सी, उद्देश्य-सी ++, सी ++, सी इत्यादि की अनुमति है) ।

तब के लिए app इस ढांचे का उपयोग करना चाहता है कि बस के रूप में #import हैडर शामिल में "के चरण \ लिंक बाइनरी के साथ पुस्तकालय का निर्माण" अपने अनुप्रयोग लक्ष्य के ढांचे जोड़ने की जरूरत है। यदि रूपांतरित ढांचा गतिशील लिंकवर्क ढांचा है, तो आपको इसे "एम्बेडेड बिनरी" में रखना होगा।

+0

जैसे ही मैं अपनी नई परियोजना में एक स्विफ्ट फ़ाइल जोड़ता हूं, मुझे 'स्थिर पुस्तकालयों के लिए स्विफ्ट समर्थित नहीं है' – lostintranslation

+0

प्रस्तावित तरीका "स्थिर लिंक्ड लाइब्रेरी" को परिवर्तित करना है "स्थिर लिंक किए गए ढांचे" के लिए। जबकि स्विफ्ट इस समय स्थैतिक पुस्तकालय का समर्थन नहीं करता है, आप केवल नव निर्मित "स्थैतिक" लिंक किए गए ढांचे में तेजी से नहीं जोड़ सकते हैं। – joseph

+0

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

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