إعداد التطوير باستخدام إطار عمل تطبيق Cast (CAF) لنظام التشغيل iOS

يتوافق "إطار عمل البث" مع نظام التشغيل iOS 13 والإصدارات الأحدث، ويتوفّر في إطارَي عمل ثابت وديناميكية.

يمكنك الاطّلاع على مرجع واجهة برمجة التطبيقات Google Cast على iOS للحصول على أوصاف حول جميع الفئات والطُرق.

إعداد Xcode

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

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

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

    بخلاف ذلك، اسحب حزمة 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. Add NSLocalNetworkUsageDescription to your Info.plist

    We strongly recommend that you customize the message shown in the Local Network prompt by adding an app-specific permission string in your app's Info.plist file for the NSLocalNetworkUsageDescription such as to describe Cast discovery and other discovery services, like DIAL.

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

    This message will appear as part of the iOS Local Network Access dialog as shown in the mock.

    Cast Local Network Access permissions dialog image
  4. Re-release your app to the Apple App Store

    We recommend you also re-release your app using 4.8.0 as soon as possible.

iOS 13

iOS 12

Ensure that the Access WiFi Information switch in the Capabilities section of the target is set to "On".

Additionally, your provisioning profile will need to support the Access WiFi Information capability. This can be added in the Apple Developer Portal.

CocoaPods setup

The recommended way of integrating Google Cast is using CocoaPods. CocoaPods is supported for both the Universal Framework and XCFramework.

For a Universal Framework integration, use the google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods.

For an XCFramework integration, use the google-cast-sdk-xcframework and google-cast-sdk-no-bluetooth-xcframework CocoaPods.

To get started, follow the getting started guide.

Once CocoaPods is set up, follow the using CocoaPods guide to get your Podfile created and your project ready to use with the Google Cast SDK.

Here's an example of how to add the google-cast-sdk CocoaPod to your Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

في ما يلي مثال على كيفية إضافة google-cast-sdk-no-bluetooth CocoaPod إلى Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk-no-bluetooth'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

بالنسبة إلى مشروعك، يجب تحديد نطاق مجموعات الإعلانات المتسلسلة لمنع حدوث تغييرات غير متوقعة، كما هو موضّح في دليل podfile.

في هذا المقتطف، يُسمح بالإصدار 4.8.0 والإصدارات إلى الإصدار الرئيسي التالي (major.minor.patch):

pod 'google-cast-sdk', '~> 4.8.0'

على سبيل المثال، سيشتمل العدد "~> 1.6.7" على جميع الإصدارات من 1.6.7 وحتى الإصدار 2.0.0، ولكن لا يشمل ذلك.

الإعداد اليدوي

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

المحتوى الذي تم تنزيله

بعد تنزيل المكتبة المناسبة أدناه، اتّبِع خطوات الإعداد لإضافة إطار العمل إلى مشروعك. متطلبات الإعداد هي نفسها متطلبات XCFrameworks مثل أُطر العمل العالمية القديمة.

الإطار العام

مكتبات الإصدار 4.8.0 من حزمة تطوير البرامج (SDK) لمرسل نظام التشغيل iOS:

ثابت بدون بلوتوث ثابت بدون بلوتوث

ديناميكي مع البلوتوث ديناميكي بدون بلوتوث

XCFramework

تتوافق حزمة Cast iOS SDK مع XCFrameworks، ما يسمح بالتطوير على أجهزة كمبيوتر Mac التي تعمل بأداة Apple silicon، إلى جانب تصحيح الأخطاء باستخدام أداة محاكاة iOS.

مكتبات الإصدار 4.8.0 من Cast على iOS Sender:

XCFramework ثابت مع بلوتوث Static XCFramework بدون بلوتوث

XCFramework الديناميكي مع بلوتوث ديناميكي XCFramework بدون بلوتوث

خطوات الإعداد

لتثبيت إحدى المكتبات الثابتة:

  1. نزِّل حزمة SDK الثابتة المناسبة لمشروعك وفك ضغطها.
  2. عليك إعداد مكتبة Protobuf باستخدام الإصدار 3.13 بحدّ أدنى.
    1. إذا كان مشروعك يستخدم CocoaPods:
      1. افتح Podfile وأزِل google-cast-sdk إذا كان متاحًا:
        pod 'google-cast-sdk'
      2. أضِف مكتبة "Protobuf" إذا لم تكن متوفّرة:
        pod 'Protobuf', '3.13'
      3. شغِّل pod install في المجلد الجذر لمشروعك.
    2. إذا كان مشروعك لا يستخدم CocoaPods:
      1. أزِل الإصدار الحالي من GoogleCastSDK إذا كان متوفّرًا.
      2. أضِف الإصدار 3.13 من مكتبة Protobuf أو الإصدارات الأحدث، باتّباع التعليمات الواردة في مستودع Protobuf GitHub.
  3. اسحب ملف .framework أو .xcframework الذي تم فك ضغطه إلى مشروعك الرئيسي في أداة التنقّل الخاصة بمشروع Xcode (وليس إلى مشروع Pods إذا كان لديك مشروع). ضَع علامة في مربّع "نسخ كل العناصر إذا لزم الأمر" وأضِفها إلى كل الاستهدافات.
  4. في مشروع Xcode، أضِف العلامات -ObjC -lc++ إلى إعدادات الإنشاء > علامات رابط أخرى.
  5. انقر بزر الماوس الأيمن على GoogleCast.framework أو GoogleCast.xcframework في مشروعك، واختَر إظهار في Finder (الباحث).
  6. اسحب GoogleCastCoreResources.bundle وGoogleCastUIResources.bundle إلى مشروعك بجانب GoogleCast.framework أو GoogleCast.xcframework اللذين أضفتهما سابقًا وضَع علامة في مربّع "نسخ كل العناصر إذا لزم الأمر" وأضِفها إلى كل الأهداف.

لتثبيت إحدى المكتبات الديناميكية:

  1. نزِّل حزمة SDK الديناميكية المناسبة لمشروعك وفك ضغطها.
  2. إعداد مكتبة GoogleCastSDK الديناميكية:
    1. إذا كان مشروعك يستخدم CocoaPods:
      1. افتح Podfile وأزل:
        pod 'google-cast-sdk'
      2. شغِّل pod install في المجلد الجذر لمشروعك.
    2. إذا كان مشروعك لا يستخدم CocoaPods، عليك إزالة مكتبة Google Cast الحالية.
  3. اسحب ملف .framework أو .xcframework الذي تم فك ضغطه إلى مشروعك الرئيسي في أداة التنقّل الخاصة بمشروع Xcode (وليس إلى مشروع Pods إذا كان لديك مشروع). ضَع علامة في مربّع "نسخ كل العناصر إذا لزم الأمر" وأضِفها إلى كل الاستهدافات.
  4. في هدف Xcode، ضمن علامة التبويب General، اختَر Embed and Sign للسمة GoogleCast.framework أو GoogleCast.xcframework.

إعداد Mac Catalyst

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

نشر تطبيقك على App Store

قبل نشر تطبيقك في App Store، عليك تشغيل نص واجهة أوامر strip_unused_archs.sh لإزالة البُنى غير المستخدمة من حِزمة التطبيق. ويتوفر هذا النص البرمجي في Cast SDK لنظام التشغيل iOS.