iOS अनुमतियां और खोज

iOS 14 से, ऑपरेटिंग सिस्टम नई पाबंदियां और अनुमतियां लागू करेगा. इससे Cast का इस्तेमाल करने वाले लोगों के अनुभव पर असर पड़ेगा. इससे, आपके ऐप्लिकेशन में Cast SDK को बनाने के तरीके पर भी असर पड़ेगा. iOS के नए वर्शन के साथ कास्ट करने की सुविधा को बनाए रखने के लिए, आपको इन अनुमतियों में हुए बदलावों को मैनेज करने के लिए अपडेट करने होंगे.

iOS 14

डेवलपर को अपने iOS Cast sender ऐप्लिकेशन को Google Cast SDK v4.6.0 या इसके बाद के वर्शन पर अपडेट करना चाहिए. इन वर्शन में, iOS 14 और इसकी ज़रूरी शर्तों के लिए सहायता मिलती है.

iOS 14 से, लोकल नेटवर्क पर डिवाइसों को स्कैन करने वाले ऐप्लिकेशन, उपयोगकर्ताओं को एक बार अनुमति देने के लिए डायलॉग बॉक्स दिखाएंगे. इससे वे लोकल नेटवर्क पर मौजूद डिवाइसों को ढूंढकर उनसे कनेक्ट कर पाएंगे. Cast प्लैटफ़ॉर्म, Cast की सुविधा वाले डिवाइसों को ढूंढने और उन्हें कंट्रोल करने के लिए लोकल नेटवर्क का इस्तेमाल करता है. इसलिए, अगर उपयोगकर्ता अनुमति नहीं देता है, तो वह कास्ट नहीं कर पाएगा.

उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, हम उन ऐप्लिकेशन के एसडीके में यूज़र एक्सपीरियंस से जुड़े कुछ बदलाव कर रहे हैं जो स्टैंडर्ड डिवाइस पिकर का इस्तेमाल कर रहे हैं. यूज़र एक्सपीरियंस (यूएक्स) में किए गए इन बदलावों से, लोगों को यह साफ़ तौर पर पता चलता है कि लोकल नेटवर्क को ऐक्सेस करने की अनुमतियां क्यों ज़रूरी हैं. साथ ही, अगर लोकल नेटवर्क डिवाइस के ऐक्सेस को बंद कर दिया गया है, तो कास्टिंग की सुविधा को चालू करने का तरीका भी पता चलता है.

Cast SDK के v4.4.8 या इससे पहले के वर्शन का इस्तेमाल करके बनाए गए ऐप्लिकेशन, तब तक काम करते रहेंगे, जब तक उन्हें Xcode 11.7 या इससे पहले के वर्शन का इस्तेमाल करके बनाया गया हो. अगर आपको iOS 14 के लिए Xcode 12 या इसके बाद के वर्शन का इस्तेमाल करके ऐप्लिकेशन बनाना है, तो हमारा सुझाव है कि आप Cast SDK v4.6.0 या इसके बाद के वर्शन पर अपडेट करें. इससे यह पक्का किया जा सकेगा कि आपका Cast ऐप्लिकेशन ठीक से काम करता रहे.

Cast iOS SDK के 4.6.0 या इसके बाद के वर्शन को CocoaPods से डाउनलोड किया जा सकता है. इसके लिए, CocoaPods सेटअप को फ़ॉलो करें. इसके अलावा, इसे मैन्युअल तरीके से भी डाउनलोड किया जा सकता है. इसके लिए, मैन्युअल सेटअप को फ़ॉलो करें. इस रिलीज़ में, डिवाइसों का पता लगाने के तरीके में बदलाव किए गए हैं. इससे Xcode 12 का इस्तेमाल करके बनाए गए ऐप्लिकेशन, नेटवर्क पर कास्ट करने की सुविधा वाले डिवाइसों का पता लगा सकते हैं. अब कास्ट बटन हमेशा दिखेगा. अगर उपयोगकर्ता के Cast बटन पर टैप करने पर कोई डिवाइस उपलब्ध नहीं है, तो एक डायलॉग दिखेगा. इसमें यह बताया जाएगा कि डिवाइस उपलब्ध क्यों नहीं हो सकते. इसमें यह भी बताया जाएगा कि लोकल नेटवर्क ऐक्सेस करने की अनुमति को फिर से कैसे चालू करें.

Cast SDK टूल में हुए बदलाव

पहली बार कास्ट करना

जब कोई उपयोगकर्ता पहली बार कास्ट करने की कोशिश करता है, तो उसे लोकल नेटवर्क ऐक्सेस (एलएनए) वाला इंटरस्टीशियल डायलॉग दिखेगा. इसमें बताया जाएगा कि लोकल नेटवर्क ऐक्सेस क्यों ज़रूरी है. इसके बाद, Apple की ओर से उपलब्ध कराया गया iOS लोकल नेटवर्क ऐक्सेस की अनुमतियों वाला प्रॉम्प्ट दिखेगा. नीचे दिए गए मॉकअप में फ़्लो दिखाया गया है:

लोकल नेटवर्क ऐक्सेस करने की अनुमतियों का फ़्लो

कास्ट करने की सुविधा उपलब्ध नहीं है

iOS Sender SDK 4.6.0 से, जब उपयोगकर्ता वाई-फ़ाई से कनेक्ट होता है, तब कास्ट बटन हमेशा दिखता है. जब कास्ट करने की सुविधा वाले डिवाइस उपलब्ध नहीं होते हैं, तो कास्ट बटन पर टैप करने से एक डायलॉग दिखता है. इसमें उपयोगकर्ता को यह जानकारी मिलती है कि कास्ट करने की सुविधा क्यों उपलब्ध नहीं है. इसकी जानकारी यहां दी गई है:

कास्ट करने की सुविधा के साथ Flow उपलब्ध नहीं है

iOS 14 पर ऐप्लिकेशन अपडेट करना

  1. अपने प्रोजेक्ट में Cast iOS SDK 4.8.3 जोड़ना

    अगर CocoaPods का इस्तेमाल किया जा रहा है, तो अपने प्रोजेक्ट में 4.8.3 एसडीके जोड़ने के लिए pod update का इस्तेमाल करें.

    इसके अलावा, SDK को मैन्युअल तरीके से पुल करें.

  2. Info.plist में NSBonjourServices जोड़ना

    अपने Info.plist में NSBonjourServices तय करें, ताकि iOS 14 पर लोकल नेटवर्क डिस्कवरी की सुविधा काम कर सके.

    डिवाइस ढूंढने की सुविधा ठीक से काम करे, इसके लिए आपको _googlecast._tcp और _<your-app-id>._googlecast._tcp, दोनों को सेवाओं के तौर पर जोड़ना होगा.

    appID, आपका receiverID होता है. यह वही आईडी होता है जो आपके GCKDiscoveryCriteria में तय किया गया है.

    यहां दिए गए उदाहरण NSBonjourServices की परिभाषा को अपडेट करें और "ABCD1234" की जगह अपना ऐप्लिकेशन आईडी डालें.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. अपने Info.plist में NSLocalNetworkUsageDescription जोड़ें

    हमारा सुझाव है कि आप लोकल नेटवर्क प्रॉम्प्ट में दिखने वाले मैसेज को अपनी पसंद के मुताबिक बनाएं. इसके लिए, अपने ऐप्लिकेशन की Info.plist फ़ाइल में, ऐप्लिकेशन के हिसाब से अनुमति वाली स्ट्रिंग जोड़ें. जैसे, Cast की सुविधा खोजने और DIAL जैसी अन्य सुविधाएं खोजने के बारे में बताने के लिए.NSLocalNetworkUsageDescription

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    यह मैसेज, iOS के लोकल नेटवर्क ऐक्सेस डायलॉग के हिस्से के तौर पर दिखेगा. यह मॉक में दिखाया गया है.

    कास्ट करने के लिए, लोकल नेटवर्क का ऐक्सेस देने की अनुमतियों के बारे में जानकारी देने वाली इमेज
  4. Apple App Store पर अपना ऐप्लिकेशन फिर से रिलीज़ करना

    हमारा सुझाव है कि आप जल्द से जल्द 4.8.3 का इस्तेमाल करके, अपने ऐप्लिकेशन को फिर से रिलीज़ करें.

कस्टमाइज़ेशन

कास्ट डिवाइस खोजने की सुविधा शुरू करना

डिफ़ॉल्ट रूप से, Cast डिवाइस की खोज तब शुरू होती है, जब उपयोगकर्ता पहली बार Cast बटन (GCKUICastButton) पर टैप करता है. अगर उपयोगकर्ता ने iOS 14 पर अपग्रेड करने के बाद, पहली बार लोकल नेटवर्क पर Cast ऐप्लिकेशन का इस्तेमाल करने की कोशिश की है, तो नया एलएनए इंटरस्टीशियल दिखेगा. इसके बाद, iOS लोकल नेटवर्क ऐक्सेस की अनुमतियों वाला डायलॉग दिखेगा.

डिवाइस ढूंढने की सुविधा कब शुरू होगी, इसे कंट्रोल करने के लिए एक नया फ़्लैग उपलब्ध है. साथ ही, यूज़र एक्सपीरियंस (यूएक्स) के कुछ एलिमेंट के व्यवहार को भी कंट्रोल किया जा सकता है:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

डिफ़ॉल्ट वैल्यूtrue है यह फ़्लैग सिर्फ़ तब लागू होता है, जब फ़्लैग GCKCastOptions::disableDiscoveryAutostart को false पर सेट किया गया हो.

अगर इसे true पर सेट किया जाता है, तो उपयोगकर्ता के पहली बार GCKUICastButton पर टैप करने पर, कास्ट डिवाइस खोजना शुरू हो जाता है. उपयोगकर्ता को एक सूचना वाला मैसेज दिखेगा. इसमें बताया जाएगा कि स्थानीय नेटवर्क की अनुमति क्यों ज़रूरी है. उस मैसेज के बाद, iOS 14 LNA मैसेज दिखेगा. मैसेज को स्वीकार करने के बाद, कास्ट डिवाइस खोजना शुरू हो जाता है.

इसके बाद, ऐप्लिकेशन लॉन्च करने पर GCKUICastButton हमेशा दिखता है.

अगर इसे false पर सेट किया जाता है, तो डिवाइस की खोज, फ़्लैग GCKCastOptions::disableDiscoveryAutostart की वैल्यू के आधार पर शुरू होगी.

अक्सर पूछे जाने वाले सवाल

अगर मैं Cast SDK v4.4.8 और Xcode 12 का इस्तेमाल करके, Cast sender ऐप्लिकेशन को फिर से रिलीज़ करूं, तो क्या होगा?

जब तक आपने Apple से नेटवर्किंग मल्टीकास्ट का एनटाइटलमेंट नहीं लिया है, तब तक हो सकता है कि आपका ऐप्लिकेशन, लोकल नेटवर्क पर Cast की सुविधा वाले डिवाइसों का पता न लगा पाए. ध्यान दें कि Apple, Cast की सुविधा को सपोर्ट करने के मकसद से ही मल्टीकास्ट के एनटाइटलमेंट नहीं देगा. अगर आपको Xcode 12 का इस्तेमाल करके ऐप्लिकेशन बनाना है, तो आपको Cast 4.6.0 की मदद से अपना ऐप्लिकेशन रिलीज़ करना होगा.

अगर मैं Cast SDK के नए वर्शन के साथ अपना ऐप्लिकेशन फिर से रिलीज़ करता हूं, तो iOS 13 या इससे पहले के वर्शन का इस्तेमाल करने वाले लोगों को कैसा अनुभव मिलेगा?

उन्हें पहले जैसा उपयोगकर्ता अनुभव मिलता रहेगा. उपयोगकर्ताओं को दिखने वाले बदलाव, सिर्फ़ iOS 14 पर काम करने वाले उपयोगकर्ताओं के लिए उपलब्ध हैं.

Cast SDK का नया वर्शन रिलीज़ होने के बाद, मुझे अपने ऐप्लिकेशन को अपडेट करने के लिए क्या करना होगा?

  • अपने ऐप्लिकेशन के Info.plist को अपडेट करें, ताकि उसमें लोकल नेटवर्क के इस्तेमाल के बारे में जानकारी शामिल की जा सके.
  • अपने ऐप्लिकेशन के NSBonjourServices में Info.plist जोड़ें. साथ ही, Cast और अपने ऐप्लिकेशन के आईडी के लिए, Bonjour सेवा के नाम दें.
  • Cast SDK 4.6.0 का इस्तेमाल करने के लिए, भेजने वाले ऐप्लिकेशन को अपग्रेड करें.
  • अपने ऐप्लिकेशन को Apple App Store पर फिर से रिलीज़ करें.

4.6.0 वर्शन पर अपग्रेड करने के बाद, मेरे कस्टम डिवाइस पिकर में डिवाइस क्यों नहीं दिख रहे हैं?

यह एक जानी-पहचानी समस्या है. ऐसा तब हो सकता है, जब स्टैंडर्ड डिवाइस पिकर के बजाय कस्टम डिवाइस पिकर का इस्तेमाल किया जा रहा हो. Cast SDK के 4.4.8 और इससे पहले के वर्शन में, डिवाइस अपने-आप स्कैन हो जाते थे. वर्शन 4.6.0 से, डिवाइस ढूंढने की सुविधा शुरू करने के लिए, आपको GCKDiscoveryManager क्लास पर startDiscovery मेथड को साफ़ तौर पर कॉल करना होगा.

इस बदलाव की वजह यह है कि लोकल नेटवर्क ऐक्सेस (एलएनए) की अनुमतियों का प्रॉम्प्ट, ऐप्लिकेशन के पहली बार स्कैन करने के बाद दिखेगा. इस वजह से, आपके ऐप्लिकेशन में अनुमति मांगने वाले डायलॉग, किसी भी जगह पर दिख सकते हैं.

जो डेवलपर अपने ऐप्लिकेशन के लिए कस्टम डिवाइस पिकर बनाते हैं उन्हें iOS 14 में पहली बार डिवाइस स्कैनिंग शुरू करने से पहले, एक बार इंटरस्टीशियल विज्ञापन दिखाना होगा.

iOS 13

iOS 13 के साथ, अनुमतियों से जुड़ी नई ज़रूरी शर्तों को लागू किया गया था. इनका असर, Google Cast SDK का इस्तेमाल करने वाले ऐप्लिकेशन पर पड़ता है.

Google Cast SDK v4.4.3 से, एक अतिरिक्त SDK टूल उपलब्ध है. इसके लिए, Bluetooth® की अनुमति की ज़रूरत नहीं होती. यह डेवलपर साइट और नए google-cast-sdk-no-bluetooth Cocoapods, दोनों पर उपलब्ध है.

ऐप्लिकेशन के हिसाब से ब्रेकडाउन

यहां iOS SDK के वर्शन के हिसाब से जानकारी दी गई है. यह जानकारी, iOS SDK के उस वर्शन के हिसाब से है जिसका इस्तेमाल फ़िलहाल किया जा रहा है:

iOS 12 SDK या इसके पहले के वर्शन का इस्तेमाल करके बनाए गए ऐप्लिकेशन

  • कार्रवाई करने का सुझाव दिया गया है. iOS 13 पर डिवाइस ढूंढने की सुविधा का इस्तेमाल करने पर, इसकी परफ़ॉर्मेंस कम हो सकती है. हालांकि, यह सुविधा काम करती रहेगी. हमारा सुझाव है कि डेवलपर, Cast SDK v4.4.4 पर अपग्रेड करें.
  • iOS 13, उपयोगकर्ताओं से ऐप्लिकेशन को ब्लूटूथ® की अनुमतियां देने के लिए कहेगा.

iOS 13 SDK की मदद से बनाए गए ऐप्लिकेशन

  • कार्रवाई ज़रूरी है: Cast SDK 4.4.4 पर अपडेट करें. ऐसा न करने पर, अगर उपयोगकर्ता जगह की जानकारी की अनुमति नहीं देता है, तो हो सकता है कि उसे कास्ट बटन न दिखे. iOS 13 पर कास्ट करने की सुविधा का भरोसेमंद अनुभव पाने के लिए, Cast SDK 4.4.4 पर अपग्रेड करना ज़रूरी है.