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

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

iOS 14

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

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

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

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

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

Cast SDK टूल में किए गए बदलाव

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

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

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

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

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

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

iOS 14 पर आपका ऐप्लिकेशन अपडेट किया जा रहा है

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

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

    अगर ऐसा नहीं है, तो SDK टूल को मैन्युअल तरीके से इंस्टॉल करें.

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

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

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

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

    नीचे दिए गए उदाहरण NSBonjourServices की परिभाषा को अपडेट करें और "ABCD1234" को अपने appID से बदलें.

    <key>NSBojourServices</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} आपके वाई-फ़ाई नेटवर्क पर, Cast की सुविधा वाले डिवाइसों को खोजने के लिए लोकल नेटवर्क का इस्तेमाल करता है.</string>

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

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

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

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

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

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

एक नया फ़्लैग उपलब्ध है, ताकि आप यह कंट्रोल कर सकें कि डिवाइस को खोजने की सुविधा कब शुरू हो और UX के कुछ एलिमेंट कैसे काम करें:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

बाद में लॉन्च होने वाले ऐप्लिकेशन में, GCKUICastButton हमेशा दिखता है.

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

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

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

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

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

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

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

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

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 में अपडेट या 'कास्ट करें' बटन न दिखे. कास्ट SDK टूल 4.4.4 पर अपग्रेड करना ज़रूरी है, ताकि iOS 13 पर कास्ट करने का भरोसेमंद अनुभव मिल सके.