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

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

iOS 14

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    उदाहरण के तौर पर, NSBonjourServices की परिभाषा को अपडेट करें और "ABCD1234" की जगह अपना appID डालें.

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

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

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME}, आपके वाई-फ़ाई नेटवर्क पर कास्ट की सुविधा वाले डिवाइसों को खोजने के लिए, लोकल नेटवर्क का इस्तेमाल करता है.</string>

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

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

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

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

कास्ट करने की सुविधा शुरू करने की प्रक्रिया

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

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

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 भेजने वाले ऐप्लिकेशन को फिर से रिलीज़ करूं, तो क्या होगा?

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

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

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

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

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

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

यह एक आम समस्या है जो तब होती है, जब स्टैंडर्ड डिवाइस पिकर के बजाय, कस्टम डिवाइस पिकर का इस्तेमाल किया जा रहा हो. कास्ट 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 पर चलने पर डिवाइस खोज प्रदर्शन कम हो सकता है, लेकिन यह अब भी काम करेगा. हमारा सुझाव है कि उपलब्ध होने पर, डेवलपर कास्ट SDK टूल के v4.4.4 वर्शन पर अपग्रेड करें.
  • iOS 13, उपयोगकर्ताओं को ऐप्लिकेशन के लिए Bluetooth® अनुमतियां देने का अनुरोध करेगा.

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

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