2015-10-26 7 views
8

मैं अन्य डेवलपर्स (http://empiric.al) का उपयोग करने के लिए पुस्तकालयों का वितरण कर रहा हूं। मैंने देखा है कि स्विफ्ट संस्करणों के बीच, 2.0 से 2.1 तक, मुझे Module file was created by a (newer/older) version of the compiler.लाइब्रेरी के लिए संस्करणों के बीच स्विफ्ट संगतता

मुझे भविष्य के सबूत तरीके से वितरित करने की आवश्यकता है।

मैं कैसे सुनिश्चित कर सकता हूं कि मेरे संकलित ढांचे का भविष्य में स्विफ्ट के नए संस्करणों द्वारा उपयोग किया जा सके, इसलिए जैसे ही ऐप्पल एक नया बीटा बाहर रखता है, मुझे फिर से संकलन करने की आवश्यकता नहीं है?

उत्तर

11
Apple's website से

:

द्विआधारी संगतता और चौखटे

को अपने ऐप्लिकेशन के क्रम संगतता सुनिश्चित किया जाता है, वहीं स्विफ्ट भाषा ही द्विआधारी इंटरफेस भी परिवर्तन का विकास जारी रहेगा, और। सुरक्षित होने के लिए, आपके ऐप के सभी घटकों को के साथ एक्सकोड और स्विफ्ट कंपाइलर के समान संस्करण के साथ बनाया जाना चाहिए ताकि यह सुनिश्चित किया जा सके कि वे एक साथ काम करते हैं।

इसका मतलब है कि ढांचे को सावधानी से प्रबंधित करने की आवश्यकता है। उदाहरण के लिए, यदि आपकी प्रोजेक्ट एम्बेडेड एक्सटेंशन के साथ कोड साझा करने के लिए ढांचे का उपयोग करती है, तो आप फ्रेमवर्क, ऐप और एक्सटेंशन एक साथ बनाना चाहेंगे। बाइनरी ढांचे पर भरोसा करना खतरनाक होगा कि स्विफ्ट का उपयोग करें - खासकर तीसरे पक्ष से। स्विफ्ट परिवर्तन के रूप में, ढांचे आपके शेष ऐप के साथ असंगत होंगे। जब बाइनरी इंटरफेस एक या दो साल में स्थिर हो जाता है, तो स्विफ्ट रनटाइम होस्ट ओएस का हिस्सा बन जाएगा और यह सीमा अब मौजूद नहीं होगी।

2

तक स्विफ्ट ABI (आवेदन द्विआधारी इंटरफेस) स्थिर एक ही रास्ता पुस्तकालयों कि विभिन्न Xcode संस्करणों में काम करेंगे वितरित करने के लिए (मैं एक या दो साल के अनुमान लगा रहा हूँ) स्रोत कोड वितरित करने के लिए है। कोको फोड और कार्थेज पुस्तकालय वितरण को आसान बनाने के लिए दोनों अच्छे उपकरण हैं लेकिन स्विफ्ट कोड के लिए वे अभी भी स्रोत कोड पर निर्भर रहेंगे।

संभवतः एक कोकोपोड होना संभव है जो एक्सकोड के संस्करण का पता लगाता है और फिर डाउनलोड करता है और आपकी लाइब्रेरी का सही निर्माण प्रदान करता है लेकिन आपको अभी भी उन सभी एक्सकोड संस्करणों के लिए लाइब्रेरी बनाने की आवश्यकता होगी जिन्हें आप चाहते हैं जब भी ऐप्पल एक नया एक्सकोड जारी करता है तो समर्थन और पुन: संकलित करें, लेकिन कम से कम उपयोगकर्ता को मैन्युअल रूप से एक नया संस्करण डाउनलोड करने की आवश्यकता नहीं होगी।

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