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

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

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

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

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

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

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

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

التغييرات التي تم إجراؤها على حزمة تطوير البرامج (SDK) الخاصة بالبث

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

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

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

البث غير متاح.

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

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

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

  1. إضافة الإصدار 4.8.1 من Cast iOS SDK إلى مشروعك

    في حال استخدام 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 مثلاً لوصف اكتشاف البث، وخدمات الاكتشاف الأخرى، مثل DIAL.

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

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

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

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

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

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

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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