Настройка для разработки с использованием Cast Application Framework (CAF) для iOS

Платформа Cast поддерживает iOS 13 и более поздние версии и поставляется как в статических, так и в динамических средах.

Описания всех классов и методов см. в справочнике по API Google Cast для iOS .

Настройка Xcode

iOS 14

  1. Добавьте Cast iOS SDK 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 в качестве служб для правильной работы обнаружения устройств.

    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

Вот пример того, как добавить CocoaPod google-cast-sdk-no-bluetooth в ваш 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

Для вашего проекта вам следует указать диапазон для ваших модулей, чтобы предотвратить неожиданные критические изменения, как подробно описано в руководстве по подфайлам .

В этом фрагменте разрешены версия 4.8.0 и версии до следующей основной версии (major.minor.patch):

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

Например, «~> 1.6.7» будет включать все версии от 1.6.7 и до версии 2.0.0, но не включая ее.

Ручная настройка

Следующие инструкции предназначены для добавления Cast iOS SDK в ваш проект без использования CocoaPods:

Загрузки

После загрузки соответствующей библиотеки, указанной ниже, следуйте инструкциям по установке , чтобы добавить платформу в свой проект. Требования к установке для XCFrameworks такие же, как и для устаревших универсальных платформ.

Универсальная структура

Примените библиотеки iOS Sender SDK 4.8.0:

Статический с Bluetooth Статический без Bluetooth

Динамический с Bluetooth Динамический без Bluetooth

XCFramework

Cast iOS SDK поддерживает XCFrameworks, что позволяет вести разработку на компьютерах Mac с процессором Apple, а также выполнять отладку с помощью симулятора iOS.

Примените библиотеки iOS Sender SDK XCFramework 4.8.0:

Статический XCFramework с Bluetooth Статический XCFramework без Bluetooth

Динамический XCFramework с Bluetooth Динамический XCFramework без Bluetooth

Шаги настройки

Чтобы установить одну из статических библиотек:

  1. Загрузите и разархивируйте соответствующий статический SDK для вашего проекта.
  2. Настройте библиотеку Protobuf минимальной версии v3.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. Добавьте библиотеку Protobuf версии 3.13 или новее, следуя инструкциям, найденным в репозитории 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, используйте динамическую библиотеку Cast SDK. Следуйте инструкциям по ручной настройке , чтобы добавить платформу в свой проект. Затем условно исключите Cast SDK из целевого Mac, как указано в документации Apple . Статические библиотеки предварительно скомпилированы для архитектуры iOS, что приводит к ошибке компоновщика при сборке для целевого Mac.

Публикация вашего приложения в App Store

Прежде чем публиковать приложение в App Store, вам необходимо запустить сценарий оболочки strip_unused_archs.sh чтобы удалить неиспользуемые архитектуры из пакета приложения. Этот сценарий находится в Cast SDK для iOS.