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

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

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

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

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

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

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

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

التغييرات في حزمة تطوير البرامج (SDK) الخاصة بـ Cast

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

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

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

البث غير متاح

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

ميزة "التواصل مع Cast" غير متاحة

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

  1. إضافة حزمة Cast iOS SDK 4.8.6 إلى مشروعك

    في حال استخدام CocoaPods، استخدِم pod update لإضافة حزمة SDK الإصدار 4.8.6 إلى مشروعك.

    بخلاف ذلك، يمكنك جلب حزمة SDK يدويًا.

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

    حدِّد NSBonjourServices في Info.plist للسماح بالبحث عن الأجهزة على الشبكة المحلية بنجاح على نظام التشغيل 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. إضافة NSLocalNetworkUsageDescription إلى Info.plist

    ننصحك بشدّة بتخصيص الرسالة المعروضة في طلب &quot;الشبكة المحلية&quot; من خلال إضافة سلسلة أذونات خاصة بالتطبيق في ملف Info.plist الخاص بتطبيقك من أجل NSLocalNetworkUsageDescription، مثل وصف عملية البحث عن الأجهزة المتوافقة مع Cast وخدمات البحث الأخرى، مثل DIAL.

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

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

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

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

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

بدء عملية البحث عن جهاز البث

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

iOS 13

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

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

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

في ما يلي تفاصيل حسب إصدار حزمة تطوير البرامج (SDK) لنظام التشغيل iOS الذي تستخدمه حاليًا:

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

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

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

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