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

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

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

إعداد Xcode

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

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

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

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

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

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

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

    معرِّف التطبيق هو معرِّف الاستلام، وهو رقم التعريف نفسه المحدَّد في 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

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

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

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

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

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

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

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

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

إطار عمل عام

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

ثابت مع البلوتوث ثابت بدون استخدام البلوتوث

مجموعة ديناميكية تتضمّن بلوتوث مجموعة ديناميكية بدون بلوتوث

إطار XCframework

تتوافق حزمة تطوير البرامج (SDK) لنظام التشغيل iOS مع البث XCframeworks، ما يسمح بالتطوير على أجهزة الكمبيوتر التي تعمل بنظام التشغيل Mac باستخدام Apple silicon، إلى جانب تصحيح الأخطاء باستخدام محاكي iOS.

مكتبات بث XCCworkwork 4.8.0 لنظام التشغيل iOS Cast:

XCframework الثابت مع البلوتوث XXCwork الثابت بدون بلوتوث

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 أو الإصدارات الأحدث من خلال اتّباع التعليمات الواردة على Retobuf GitHub repo.
  3. اسحب السمة .framework أو .xcframework التي تم فك ضغطها إلى مشروعك الرئيسي في برنامج التنقل ضمن مشروع Xcode (وليس في مشروع Pods إذا كان لديك مشروع). ضَع علامة في المربّع بجانب "نسخ كل العناصر إذا لزم الأمر"، وأضِفها إلى جميع الاستهدافات.
  4. في مشروع Xcode، أضِف العلامات -ObjC -lc++ إلى إعدادات الإصدار > علامات الرابط الأخرى.
  5. انقر بزر الماوس الأيمن على GoogleCast.framework أو GoogleCast.xcframework في مشروعك، واختَر "إظهار في الباحث".
  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، استخدِم المكتبة الديناميكية لحزمة Cast SDK. اتبع عملية الإعداد اليدوي لإضافة إطار العمل إلى مشروعك. بعد ذلك، استبعِد بشكل مشروط حزمة تطوير البرامج (SDK) للبث من Mac المستهدفة كما هو موضّح في مستندات Apple. يتم تجميع المكتبات الثابتة مسبقًا لبنية نظام التشغيل iOS، ما يؤدي إلى حدوث خطأ في الرابط عند الإنشاء وفقًا لهدف نظام التشغيل Mac.

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

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