ios - क्या स्विफ्ट-आधारित एप्लिकेशन ओएस एक्स 10.9 / आईओएस 7 और कम पर काम करते हैं?




9 Answers

मैंने अभी आपके लिए इसका परीक्षण किया है, स्विफ्ट एप्लिकेशन मानक बाइनरी में संकलित हैं और ओएस एक्स 10.9 और आईओएस 7 पर चलाया जा सकता है।

परीक्षण के लिए उपयोग किया जाने वाला सरल स्विफ्ट एप्लिकेशन:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

    var controller = UIViewController()
    var view = UIView(frame: CGRectMake(0, 0, 320, 568))
    view.backgroundColor = UIColor.redColor()
    controller.view = view

    var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
    label.center = CGPointMake(160, 284)
    label.textAlignment = NSTextAlignment.Center
    label.text = "I'am a test label"
    controller.view.addSubview(label)

    self.window!.rootViewController = controller
    self.window!.makeKeyAndVisible()
    return true
}

क्या स्विफ्ट-आधारित एप्लिकेशन ओएस एक्स 10.9 (मैवरिक्स) / आईओएस 7 और कम पर काम करेंगे?

उदाहरण के लिए, मेरे पास एक मशीन ओएस एक्स 10.8 (माउंटेन शेर) चल रही है, और मुझे आश्चर्य है कि स्विफ्ट में जो एप्लीकेशन मैं लिखता हूं वह उस पर चलता है।




ऐप्पल ने घोषणा की है कि स्विफ्ट एप्स आईओएस 7 और ओएस एक्स मैवरिक्स के साथ पिछड़े संगत होंगे। डब्ल्यूडब्ल्यूडीसी ऐप स्विफ्ट में लिखा गया है।




संक्षेप में:

स्विफ्ट आधारित एप्लिकेशन उसी ऐप के साथ ओएस एक्स मैवरिक्स या आईओएस 7 पर वापस लक्षित कर सकते हैं।

यह कैसे संभव है ?

एक्सकोड आपके ऐप के बंडल में एक छोटी स्विफ्ट रनटाइम लाइब्रेरी एम्बेड करता है। चूंकि लाइब्रेरी एम्बेडेड है, इसलिए आपका ऐप स्विफ्ट का एक सतत संस्करण उपयोग करता है जो पिछले, वर्तमान और भविष्य में ओएस रिलीज़ पर चलता है।

मुझे इस जवाब पर भरोसा क्यों करना चाहिए?

क्योंकि मैं यह जवाब नहीं कह रहा हूं क्योंकि एक सेब लड़के ने मुझे ट्विटर में बताया था या मैंने नमस्ते दुनिया लिखी और इसका परीक्षण किया।

मैंने इसे सेब डेवलपर ब्लॉग से लिया।

तो आप इस पर भरोसा कर सकते हैं।




मैंने उन सभी उत्तरों को पढ़ा जो कहा: नहीं, स्विफ्ट आईओएस 7 से कम काम नहीं करता है। लेकिन मैंने कहा हाँ , मैंने अभी एक स्विफ्ट प्रोजेक्ट बनाया है जो 6.0 परिनियोजन लक्ष्य के साथ एक्सकोड 5 में चलता है।

  • मैं सिर्फ स्विफ्ट प्रोग्रामिंग भाषा के साथ एक्सकोड 6 बीटा में एक डेमो प्रोजेक्ट बना रहा हूं।
  • एक्सकोड 6 बीटा बंद करें, और मैं इस डेमो प्रोजेक्ट को एक्सकोड 5 में तैनाती लक्ष्य 6.0 के साथ खोलता हूं
  • और सिम्युलेटर 6.1 का चयन करें।

फिर वह परियोजना सिम्युलेटर 6.1 में अच्छी तरह से चलती है। मेरा मैकोज़ एक्स 10.9.3 है , इसलिए मैंने हां कहा, जो आईओएस 7 से कम है । 10.9.3 मैक ओएस एक्स के साथ

यहां यह सिम्युलेटर का एक स्क्रीनशॉट है:

यहां एक डेमो भी है




बीटा 4 रिलीज नोट्स में बताए गए अनुसार आईओएस 7 और ऊपर के लिए स्विफ्ट एप्लिकेशन समर्थित हैं। एक्सकोड 6 बीटा में आईओएस 6.0, 6.1, 7.0, 7.1, 8.0

स्विफ्ट एप्लिकेशन प्लेटफार्म ओएस एक्स 10.9 और ऊपर प्लेटफार्मों पर समर्थित हैं। तैनाती लक्ष्य में ओएस एक्स 10.4 से 10.10। मैंने 10.5 से 10.10 को लक्षित करने और 10.9.3 पर चलने पर परीक्षण किया है




यह वह पोस्ट है जिसे मैंने सेब स्विफ्ट ब्लॉग से पढ़ा है, यह सहायक हो सकता है:

ऐप संगतता :

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

बाइनरी संगतता और ढांचे:

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

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




ऐसा लगता है कि यहां बहुत सारे पुराने उत्तर हैं इसलिए मैं स्विफ्ट टीम से आधिकारिक प्रतिक्रिया पोस्ट करना चाहता था। स्विफ्ट ओएस एक्स मैवरिक्स और आईओएस 7 के साथ पीछे संगत है

ऐप्पल डेवलपर स्विफ्ट ब्लॉग: उद्देश्य-सी आईडी स्विफ्ट के रूप में कोई भी

11 जुलाई, 2014

अनुकूलता

डब्ल्यूडब्ल्यूडीसी में हमने सुनाई जाने वाले सबसे आम प्रश्नों में से एक था, "स्विफ्ट के लिए संगतता कहानी क्या है?"। यह एक महान पहले विषय की तरह लगता है।

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




निम्नलिखित कोड आज़माएं:

यह स्टोरीबोर्ड के बिना काम कर रहा है:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window!.backgroundColor = UIColor.whiteColor()

    // Create a nav/vc pair using the custom ViewController class

    let nav = UINavigationController()
    let vc = ViewController(nibName: "ViewController", bundle: nil)

    // Push the vc onto the nav
    nav.pushViewController(vc, animated: false)

    // Set the window’s root view controller
    self.window!.rootViewController = nav

    // Present the window
    self.window!.makeKeyAndVisible()
    return true
}



जब स्विफ्ट फ्रेमवर्क की बात आती है। आज के लिए, एक्सकोड संस्करण 6.1.1 (6 ए 2008 ए) के साथ, अगर स्विफ्ट ढांचे को आईओएस 7.1 पर लक्षित किया गया है, तो लिंकर रिपोर्ट चेतावनी

ld: warning: embedded dylibs/frameworks only run on iOS 8 or later.

और ऐपस्टोर को आवेदन जमा नहीं किया जा सकता है। इस समस्या की जांच करें: आईओएस 7 के साथ गुजरने से गतिशील पुस्तकालयों और ढांचे को रोकने के लिए लिंट




Related