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

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

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

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

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

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

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

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

البث غير متاح

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

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

تحديث تطبيقك

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

    في حال استخدام Swift Package Manager، عليك تعديل حزمة google-cast-ios-sdk إلى الإصدار 4.8.6.

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

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

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

    يجب إضافة كل من _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.

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

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

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

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

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

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

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

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