ios - स्विफ्ट 5.1 के साथ संकलित मॉड्यूल को स्विफ्ट 5.1.2 कंपाइलर द्वारा आयात नहीं किया जा सकता है




swift xcode (2)

ठीक है, अगर आप WWDC वीडियो देखते हैं, तो वे बताते हैं: वे इसे समझाते हैं: https://developer.apple.com/videos/play/wwdc2019/416/

आपको अपने फ्रेमवर्क की बिल्ड सेटिंग में हां में हां , इसके लिए डिस्ट्रीब्यूशन ऑप्शन के लिए बिल्ड लाइब्रेरी सेट करने की जरूरत है, अन्यथा स्विफ्ट कंपाइलर .swiftinterface फाइल नहीं बनाता है जो कि भविष्य के कंपाइलर्स की चाबी आपके पुराने लाइब्रेरी को लोड करने में सक्षम है।

यह आपकी परियोजना में समाप्त होता है।

BUILD_LIBRARY_FOR_DISTRIBUTION = YES;

इस ध्वज को स्थापित करने के बाद, मैंने Xcode 11.0 (स्विफ्ट 5.1) का उपयोग करके संकलित किया गया एक फ्रेम Xcode 11.2 (स्विफ्ट 5.1.2) के साथ संकलित करने में सक्षम था और सब कुछ सही ढंग से काम करता प्रतीत होता है।

उम्मीद है कि यह प्रश्न / उत्तर उन सभी के लिए एक उपयोगी संदर्भ के रूप में काम करेगा, जिन्होंने सभी WWDC वीडियो नहीं देखे हैं

मेरे पास एक फ्रेमवर्क है (इस उदाहरण में यह RxSwift है) जिसे मैंने Xcode 11.0 का उपयोग पारंपरिक RxSwift.framework स्टाइल पैकेज में किया है

इसने Xcode 11.0 में ठीक आयात किया और 11.1 को भी इसके साथ कभी कोई समस्या नहीं हुई

आज, Apple की Xcode 11.2 की रिलीज पर, मैंने अपग्रेड किया, और मुझे त्रुटि के साथ प्रस्तुत किया गया है:

स्विफ्ट 5.1 के साथ संकलित मॉड्यूल को स्विफ्ट 5.1.2 कंपाइलर द्वारा आयात नहीं किया जा सकता है

मैं संकलक मिसमैच को स्विफ्ट करने के लिए उपयोग किया जाता हूं, और मुझे पता है कि मैं Xcode 11.2 का उपयोग करके RxSwift को फिर से शुरू कर सकता हूं और आगे बढ़ सकता हूं, लेकिन स्विफ्ट 5.1 की हेडलाइन सुविधा मॉड्यूल स्थिरता थी

मैं इस धारणा के तहत था कि अब हमारे पास मॉड्यूल स्थिरता है, फ्रेमवर्क को हर नए Xcode रिलीज के साथ फिर से जोड़कर रखने की आवश्यकता नहीं होगी, फिर भी यह स्पष्ट रूप से ऐसा नहीं है।

अगर कोई समझा सकता है कि यहां क्या चल रहा है तो मैं इसकी सराहना करूंगा। क्या Xcode 11.2 बग का प्रदर्शन कर रहा है? या मुझे किसी तरह यह बताने की ज़रूरत थी कि मैं मॉड्यूल स्थिरता चाहता था जब मैं मूल रूप से Xcode 11.0 के साथ संकलित किया गया था?


मेरे पास 3 पार्टी लाइब्रेरी आयात करने में समान त्रुटि थी। मैंने इसे Xcode में टूलचिन्स का उपयोग करके और सितंबर 19 2019 को https://swift.org/download/#releases से जारी करने का निर्णय लिया। उसके बाद मुझे अपने पुस्तकालयों को फिर से आयात करना पड़ा और इसने काम किया।





swift5.1