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 के 4.4.8 या इससे पहले के वर्शन का इस्तेमाल करके बनाए गए ऐप्लिकेशन, तब तक काम करते रहेंगे, जब तक उन्हें Xcode 11.7 या इससे पहले के वर्शन का इस्तेमाल करके बनाया गया हो. अगर आपको Xcode 12 या इसके बाद के वर्शन का इस्तेमाल करके iOS 14 के लिए ऐप्लिकेशन बनाना है, तो हमारा सुझाव है कि आप 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 से, उपयोगकर्ता के वाई-फ़ाई से कनेक्ट होने पर, कास्ट बटन हमेशा दिखता है. कास्ट करने की सुविधा वाले डिवाइस उपलब्ध न होने पर, कास्ट बटन पर टैप करने से एक डायलॉग दिखता है. इसमें उपयोगकर्ता को यह जानकारी मिलती है कि कास्ट करने की सुविधा उपलब्ध न होने की वजह क्या हो सकती है. इसकी जानकारी नीचे दिए गए मॉकअप में दिखाई गई है:

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

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

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

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

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

  2. NSBonjourServices को अपनी Info.plist में जोड़ें

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

    डिवाइस डिस्कवरी की सुविधा को ठीक से काम करने के लिए, आपको _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. NSLocalNetworkUsageDescription को अपने Info.plist में जोड़ें

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

    <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.6 का इस्तेमाल करके जल्द से जल्द फिर से रिलीज़ करें.

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

कास्ट डिवाइस ढूंढने की प्रोसेस शुरू करना

डिफ़ॉल्ट रूप से, 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 से नेटवर्किंग मल्टीकास्ट का एनटाइटलमेंट नहीं मिल जाता, तब तक हो सकता है कि आपका ऐप्लिकेशन, लोकल नेटवर्क पर कास्ट करने की सुविधा वाले डिवाइसों का पता न लगा पाए. ध्यान दें कि 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 12 SDK या इससे पहले के वर्शन का इस्तेमाल करके बनाए गए ऐप्लिकेशन

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

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

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