ios - एम्बेडेड बाइनरी के रूप में उपयोग करने के लिए एक्सोडोड 7(बीटा 3) के साथ एक स्विफ्ट फ्रेमवर्क का निर्माण करना



xcode swift2 (1)

जब से आईओएस 8 में एंबेडेड बायनेरीज पेश किए गए थे, तब से मैं अपने कई आम कोडों को चौखटे में बंद करना चाहता था। मैंने यह करने से पहले और एक साल इंतजार करने का निर्णय लिया, एक्सकोड 7 बीटा और आईओएस 9 के साथ, मैं ऐसा करने के लिए शुरू कर रहा हूं।

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

यह वही है जो मैंने फ्रेमवर्क बनाने के लिए किया है:

  1. एक कोको टच फ्रेमवर्क के रूप में अपना फ्रेमवर्क बनाया
  2. मेरे लक्ष्य के निर्माण के चरण चला गया, हेडर के पास गया, और मेरी सभी स्विफ्ट फाइलों को "सार्वजनिक" अनुभाग में जोड़ दी गई, उम्मीद है कि वे सभी public रूप से उन्हें चिन्हांकित किए बिना मेरे सभी सिम्बोल्स निर्यात करेंगे
  3. मैंने अपनी परियोजना को ढांचे के रूप में संग्रहित करने की कोशिश की वर्तमान में, यह लगता है कि Xcode 7 बीटा 3 में एक बग है (आज इसे बाद में रिपोर्ट करने वाला है) जिसमें यह दूषित संग्रह फ़ाइलों को उत्पन्न करता है इस कारण से मैं आर्गेनाइजर विंडो से अपना रूपरेखा प्राप्त नहीं कर सका। इसके आस-पास काम करने के लिए, मैंने .framework में चलने की क्रिया का स्कीमा डिबग से रिलीज करने के लिए बदल दिया, इसे बनाया और इसे हासिल किया। मेरे प्रोजेक्ट के build/iphoneos-release डायरेक्टरी के build/iphoneos-release यह एक त्वरित परीक्षण था इसलिए मुझे अनुकरणकों के लिए तैयार किए गए ढांचे की आवश्यकता नहीं थी।

और यह है कि मैंने एक नई परियोजना को रूपरेखा जोड़ने का प्रयास किया:

  1. "फ़्रेमवर्क" समूह (संगठनात्मक उद्देश्यों के लिए) बनाया गया था और उस रूपरेखा को वहां खींच लिया, "हाँ" का चयन करते समय मुझे पूछा कि क्या मैं फ़ाइल को अपनी प्रोजेक्ट की निर्देशिका में कॉपी करना चाहता हूं
  2. मेरे लक्ष्य की सेटिंग्स के चलते, "लिंक्ड लाइब्रेरीज़" (इसे स्वचालित रूप से जोड़ा गया) से मेरे फ्रेमवर्क को हटा दिया गया, इसके बजाय एंबेडेड बाइनरी में इसे जोड़ा गया इसने लिंक किए गए पुस्तकालयों के लिए फ्रेमवर्क को फिर से जोड़ा, इसलिए मुझे इसे दो बार से निकालना पड़ा। लिंक्ड पुस्तकालयों में ढांचा छोड़कर एक लिंकर त्रुटि का कारण बनता है (ढांचे को नहीं मिल सकता है - पता नहीं क्यों, लेकिन मुझे लगता है कि यह मेरी समस्या के लिए अप्रासंगिक है और मुझे एप्पल को भी रिपोर्ट करना चाहिए), लेकिन एक बार जब आप उसे वहां से हटा दें जब आप इसे एंबेडेड बायनेरिज़ में जोड़ते हैं तो ठीक संकलन करें
  3. एक फ़ाइल में मेरे ढांचे को आयात करने की कोशिश की Xcode शिकायत करता है कि "ऐसा कोई मॉड्यूल" नहीं है।

दुर्भाग्य से, इस तथ्य के बावजूद कि एम्बेडेड चौखटे लगभग एक साल तक रहे हैं, मुझे इस विषय पर ज्यादा लिखना नहीं मिल सकता है।

तो मेरा सवाल है: क्या मैं फ्रेमवर्क को सही ढंग से बना रहा हूं, जिससे यह संभव हो सकता है कि Xcode 7 बीटा बग के कारण मेरी संरचना / कुछ भी विफल हो रहा है? या फिर एक रूपरेखा बनाने के लिए एक अलग प्रक्रिया है जिसे मैं एंबेड बाइनरी के रूप में उपयोग करना चाहता हूं? मुझे शायद यह उल्लेख करना चाहिए कि मैं इस पुस्तकालय को ओपन सोर्स बनाना चाहता हूं, और मुझे लगता है कि एक सादा का वितरण करना चाहिए। .framework फ़ाइल जो लोग इसका इस्तेमाल करना चाहते हैं, वह साफ होगा।


मुझे एक्सकोड 7 पर एक ही समस्या थी। मैंने इसे परियोजना की बिल्ड सेटिंग्स संपादित करके हल किया था (जो एक रूपरेखा भी शामिल है)।

फ्रेमवर्क सर्च पाथ फ़ील्ड को $ (PROJECT_DIR) के रूप में सेट करके या .framework फ़ाइल में डाइरेक्टरी के पथ को यह मॉड्यूल को Xcode ढूँढने में मदद करनी चाहिए।





embedded-binary