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

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

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

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

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

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

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

البث غير متاح

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

‫Flow with Cast غير متاح

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

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

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

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

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

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

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

    ‫appID هو receiverID، وهو المعرّف نفسه الذي تم تحديده في 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} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

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

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

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

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

بدء عملية استكشاف أجهزة البث

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

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

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

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

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

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

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

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

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

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

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

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

سبب هذا التغيير هو أنّ طلب الحصول على إذن الوصول إلى الشبكة المحلية (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 من حزمة تطوير البرامج (SDK) الخاصة بـ Cast لضمان تجربة بث موثوقة على نظام التشغيل iOS 13.