أذونات واستكشاف المحتوى في نظام التشغيل iOS

بدءًا من iOS 14، سيفرض نظام التشغيل قيودًا وأذونات جديدة تؤثر في تجربة مستخدم Google Cast. سيؤثر ذلك أيضًا في طريقة إنشاء حزمة تطوير البرامج (SDK) لإرسال المحتوى في تطبيقك. ولكي يحافظ تطبيقك على وظيفة البث مع أحدث إصدارات iOS، عليك إجراء تحديثات للتعامل مع هذه التغييرات في الأذونات.

الإصدار 14 من نظام التشغيل iOS

على مطوّري التطبيقات تحديث تطبيقات المُرسِل التي تعمل بنظام التشغيل iOS Cast إلى الإصدار 4.6.0 أو الإصدارات الأحدث من حزمة تطوير البرامج (SDK) لتكنولوجيا Google Cast. تتوافق هذه الإصدارات مع نظام التشغيل iOS 14 ومتطلباته.

بدءًا من نظام التشغيل iOS 14، ستطلب الآن التطبيقات التي تبحث عن أجهزة على الشبكة المحلية من المستخدمين الذين يظهر لهم مربّع حوار الأذونات لمرة واحدة العثور على أجهزة الشبكة المحلية والاتصال بها. يستخدم النظام الأساسي للبث الشبكة المحلية لاكتشاف أجهزة البث والتحكم فيها، وبالتالي إذا رفض المستخدم منح إذن الوصول، لن يتمكن من البث.

لتحسين تجربة المستخدم، نُجري بعض التعديلات على تجربة المستخدم في حزمة تطوير البرامج (SDK) لتلك التطبيقات التي تستخدم أداة الاختيار العادية للأجهزة. وتوضّح تعديلات تجربة المستخدم هذه للمستخدمين سبب الحاجة إلى أذونات الوصول إلى الشبكة المحلية، بالإضافة إلى كيفية تفعيل البث في حال إيقاف الوصول إلى أجهزة الشبكة المحلية.

سيستمر عمل التطبيقات التي تم إنشاؤها باستخدام إصدارات من حزمة تطوير البرامج (SDK) بتكنولوجيا Google Cast باستخدام الإصدار 4.4.8 أو الإصدارات الأقدم، ما دامت متوافقة مع Xcode 11.7 أو إصدار أقدم. إذا كنت تستخدم الإصدار 14 من نظام التشغيل iOS باستخدام Xcode 12 أو إصدارًا أحدث، ننصحك بالتحديث إلى الإصدار 4.6.0 من حزمة Google Cast أو إصدار أحدث لضمان استمرار عمل تطبيق Cast بشكل سليم.

يمكن تنزيل الإصدار 4.6.0 من حزمة تطوير البرامج (SDK) لنظام التشغيل iOS أو الإصدارات الأحدث باستخدام CocoaPods من خلال اتّباع إعداد CocoaPods أو يدويًا من خلال اتّباع الإعداد اليدوي. يشمل هذا الإصدار تغييرات على آلية الاكتشاف الأساسية للسماح للتطبيقات المصممة باستخدام Xcode 12 بالعثور على أجهزة البث على الشبكة. من المفترض أن يظهر زر "البث" دائمًا الآن. إذا لم تتوفّر أي أجهزة عندما ينقر المستخدم على زر "البث"، سيظهر مربّع حوار يقدّم إرشادات عن سبب عدم توفُّر الأجهزة، بما في ذلك معلومات حول طريقة إعادة تفعيل إذن الوصول إلى الشبكة المحلية.

التغييرات التي طرأت على حزمة تطوير البرامج (SDK) للإرسال

البثّ لأول مرة

في المرة الأولى التي يحاول فيها أحد المستخدمين البث، سيظهر مربّع حوار بيني يتعلق بإمكانية الوصول إلى الشبكة المحلية (LNA) لتوضيح سبب الحاجة إلى الوصول إلى الشبكات المحلية، يليه طلب أذونات الوصول إلى الشبكة المحلية في نظام التشغيل iOS الذي توفّره Apple. توضح النماذج التجريبية أدناه التدفق:

مسار أذونات الوصول إلى الشبكة المحلية

البث غير متاح

بدءًا من الإصدار 4.6.0 من حزمة تطوير البرامج (SDK) لمرسل نظام التشغيل iOS، سيظهر زر البث دائمًا عند اتصال المستخدم بشبكة Wi-Fi. في حال عدم توفّر أجهزة البث، يؤدي النقر على زر البث إلى ظهور مربّع حوار يقدّم للمستخدم تلميحات عن الأسباب المحتملة لعدم توفّر تكنولوجيا البث، كما هو موضّح في النماذج التجريبية أدناه:

التدفق مع البثّ غير متاح

تحديث تطبيقك على الإصدار 14 من نظام التشغيل iOS

  1. إضافة الإصدار 4.8.1 من حزمة تطوير البرامج (SDK) لنظام التشغيل iOS لخدمة Cast إلى مشروعك

    في حال استخدام CocoaPods، استخدِم pod update لإضافة حزمة تطوير البرامج (SDK) 4.8.1 إلى مشروعك.

    ويمكنك بدلاً من ذلك سحب حزمة SDK يدويًا.

  2. إضافة "NSBonjourServices" إلى "Info.plist"

    حدِّد NSBonjourServices في Info.plist للسماح باكتشاف الشبكة المحلية بنجاح على نظام التشغيل iOS 14.

    يجب إضافة كل من _googlecast._tcp و_<your-app-id>._googlecast._tcp كخدمتَين حتى تعمل ميزة اكتشاف الأجهزة بشكل صحيح.

    إنّ appID هو معرِّف المستلِم الخاص بك، وهو المعرّف نفسه الذي تم تحديده في GCKDiscoveryCriteria.

    عدِّل تعريف NSBonjourServices في المثال التالي واستبدِل "ABCD1234" بمعرّف التطبيق.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. إضافة NSLocalNetworkUsageDescription إلى Info.plist

    ننصحك بشدة بتخصيص الرسالة التي تظهر في طلب الشبكة المحلية عن طريق إضافة سلسلة أذونات خاصة بالتطبيق في ملف Info.plist الخاص بتطبيقك لـ NSLocalNetworkUsageDescription، مثل وصف رسالة "اكتشاف Cast" وخدمات الاكتشاف الأخرى، مثل DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} يستخدم الشبكة المحلية لاكتشاف الأجهزة التي تعمل بتكنولوجيا Google Cast على شبكة Wi-Fi الخاصة بك.</string>

    ستظهر هذه الرسالة كجزء من مربع حوار iOS Local Network Access (الوصول إلى الشبكة المحلية) لنظام التشغيل iOS كما هو موضح في النموذج التجريبي.

    صورة مربّع حوار أذونات الوصول إلى الشبكة المحلية
  4. إعادة إصدار تطبيقك في Apple App Store

    نقترح عليك أيضًا إعادة إصدار تطبيقك باستخدام الإصدار 4.8.1 في أقرب وقت ممكن.

عمليات التخصيص

بدء اكتشاف جهاز البث

يتم تلقائيًا بدء اكتشاف أجهزة البث في المرة الأولى التي ينقر فيها المستخدم على زر الإرسال (GCKUICastButton). وإذا كانت هذه هي المرة الأولى التي يحاول فيها المستخدم استخدام تطبيق البث على الشبكة المحلية بعد الترقية إلى نظام التشغيل iOS 14، سيظهر إعلان LNA البيني الجديد، متبوعًا بمربع حوار "أذونات الوصول إلى الشبكة المحلية" في نظام iOS.

تتوفّر علامة جديدة تتيح لك التحكّم في وقت بدء اكتشاف الجهاز وسلوك عناصر معيّنة في تجربة المستخدم:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

تكون القيمة التلقائية true. لا تنطبق هذه العلامة إلا عند ضبط العلامة GCKCastOptions::disableDiscoveryAutostart على false.

في حال ضبط هذه السياسة على "true"، تبدأ ميزة "اكتشاف أجهزة البث" عندما ينقر المستخدم على GCKUICastButton للمرة الأولى. سيتم عرض رسالة إعلامية للمستخدم لإعلامه بسبب الحاجة إلى إذن الشبكة المحلية. بعد هذه الرسالة، سيتم عرض رسالة LNA لنظام التشغيل iOS 14. يبدأ اكتشاف جهاز البث بعد الإقرار بالرسالة.

في عمليات تشغيل التطبيق اللاحقة، يتم عرض GCKUICastButton دائمًا.

في حال ضبط هذه السياسة على false، ستبدأ ميزة "اكتشاف الأجهزة" استنادًا إلى قيمة علامة GCKCastOptions::disableDiscoveryAutostart.

الأسئلة الشائعة

ماذا يحدث في حال أعدت إصدار تطبيق المرسِل الذي يخصّ Google Cast باستخدام الإصدار 4.4.8 وXcode 12 من حزمة تطوير البرامج (SDK) لـ Cast؟

قد لا يتمكّن تطبيقك من اكتشاف أجهزة البث على الشبكة المحلية ما لم تحصل على إذن استخدام البث المتعدد للشبكات من Apple. يُرجى العلم أنّ شركة Apple لن تمنح الأذونات المرتبطة بالبث المتعدد إلا لغرض إتاحة استخدام البثّ. إذا كنت تخطّط لإنشاء تطبيقك باستخدام Xcode 12، يجب طرح التطبيق باستخدام Cast 4.6.0.

إذا أعدتُ إصدار تطبيقي باستخدام حزمة تطوير البرامج (SDK) الجديدة لتكنولوجيا Cast، ما هي التجربة التي سيعتمدها المستخدمون على الإصدار 13 من نظام التشغيل iOS أو الإصدارات الأقدم؟

وسيظل بإمكانهم الاطّلاع على تجربة المستخدم نفسها التي كانت لديهم قبل إعادة إصدار تطبيقك. وتقتصر التغييرات المرئية للمستخدم على مستخدمي الإصدار 14 من نظام التشغيل iOS.

ما الذي يجب فعله لتحديث تطبيقي بعد طرح الإصدار الجديد من حزمة تطوير البرامج (SDK) لتكنولوجيا Cast؟

  • عليك تحديث Info.plist في تطبيقك لتضمين وصف استخدام الشبكة المحلية.
  • أضِف NSBonjourServices إلى Info.plist لتطبيقك وأدخِل أسماء خدمة Bonjour الخاصة بـ Cast ومعرّف التطبيق.
  • عليك ترقية تطبيق المرسِل لاستخدام الإصدار 4.6.0 من حزمة تطوير البرامج (SDK) لتكنولوجيا الإرسال.
  • إعادة إصدار تطبيقك في Apple App Store.

لماذا توقّف ظهور الأجهزة في أداة اختيار الأجهزة المخصّصة بعد الترقية إلى الإصدار 4.6.0؟

هذه مشكلة معروفة قد تحدث إذا كنت تستخدم أداة اختيار مخصّصة للأجهزة بدلاً من أداة الاختيار العادية للأجهزة. في الإصدار 4.4.8 من حزمة تطوير البرامج (SDK) الخاصة بتكنولوجيا Google Cast والإصدارات الأقدم، تم فحص الأجهزة تلقائيًا. بدايةً من الإصدار 4.6.0، يجب استدعاء الطريقة startDiscovery بشكل واضح في الفئة GCKDiscoveryManager لبدء اكتشاف الأجهزة.

يرجع سبب هذا التغيير إلى أنّ طلب أذونات الوصول إلى الشبكة المحلية (LNA) سيظهر بعد أن يفحصه التطبيق للمرة الأولى. وقد يؤدي ذلك إلى ظهور مربّعات حوار الأذونات في أماكن عشوائية في تطبيقك.

من المتوقّع أن يعرض المطوّرون الذين ينشئون أداة اختيار مخصّصة للأجهزة في تطبيقاتهم صفحة بينية لمرة واحدة قبل بدء فحص الجهاز للمرة الأولى في نظام التشغيل iOS 14.

الإصدار 13 من نظام التشغيل iOS

في نظام التشغيل iOS 13، تم تقديم متطلبات جديدة للأذونات والتي تؤثر في التطبيقات التي تستخدم حزمة تطوير البرامج لتكنولوجيا Google Cast.

بدءًا من الإصدار 4.4.3 من حزمة تطوير البرامج (SDK) لتكنولوجيا Google Cast، تتوفّر حزمة SDK إضافية لا تتطلّب إذن Bluetooth®. تتوفّر هذه الميزة على الموقع الإلكتروني للمطوّرين وgoogle-cast-sdk-no-bluetooth Cocoapods الجديدة.

تفاصيل التطبيق

في ما يلي تفاصيل بناءً على إصدار حزمة SDK لنظام التشغيل iOS الذي تستخدمه حاليًا:

التطبيقات التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) لنظام التشغيل iOS 12 أو الإصدارات الأقدم

  • يُنصح باتخاذ إجراء. قد ينخفض أداء استكشاف الأجهزة عند تشغيله على نظام التشغيل iOS 13، ولكنه سيظل يعمل. ننصح المطوِّرين بشدة بالترقية إلى الإصدار 4.4.4 من حزمة تطوير البرامج (SDK) لتكنولوجيا Google Cast عند توفّرها.
  • سيطلب iOS 13 من المستخدمين منح أذونات Bluetooth® للتطبيق.

التطبيقات التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) لنظام التشغيل iOS 13

  • مطلوب اتخاذ إجراء: يجب التحديث إلى الإصدار 4.4.4 من حزمة تطوير البرامج (SDK) بتكنولوجيا Google Cast وإلا قد لا يظهر زر البث إذا لم يمنح المستخدم إذن تحديد الموقع الجغرافي. تُعد الترقية إلى حزمة تطوير البرامج (SDK) بتكنولوجيا Cast 4.4.4 ضرورية لضمان تجربة بث موثوقة على نظام التشغيل iOS 13.