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

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

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

Настройка Xcode

  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 – это идентификатор приемника, который совпадает с идентификатором, указанным в 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 "Доступ к локальной сети", как показано на макете.

    Изображение диалогового окна с запросом разрешения на доступ к локальной сети для Cast
  4. Как повторно опубликовать приложение в Apple App Store

    Рекомендуем как можно скорее выпустить новую версию приложения с SDK 4.8.6.

Настройка Swift Package Manager

Рекомендуемый способ интеграции Google Cast – использование Swift Package Manager (SPM). Пакет Cast iOS SDK доступен в репозитории GitHub google-cast-ios-sdk.

Чтобы добавить Cast iOS SDK в проект в Xcode, выполните следующие действия:

  1. В Xcode выберите File (Файл) > Add Packages (Добавить пакеты).
  2. Введите URL хранилища: https://github.com/googlecast/google-cast-ios-sdk.
  3. Выберите правила управления версиями. Например, выберите До следующей основной версии с минимальной версией 4.8.6, чтобы получать совместимые обновления без неожиданных критических изменений.
  4. Нажмите Добавить пакет.
  5. Выберите продукт GoogleCastDynamic или GoogleCastStatic и добавьте его в целевое приложение.

Выберите вариант фреймворка

Пакет Cast iOS SDK содержит два продукта:

  • GoogleCastDynamic – динамический фреймворк. Он включает все ресурсы объектов, необходимые для компонентов Cast UI, и не требует дополнительных флагов компоновщика. В приложениях, поддерживающих Mac Catalyst, необходимо использовать динамический фреймворк. Подробную информацию вы найдете в статье Настройка Mac Catalyst.
  • GoogleCastStatic – статический фреймворк. Для этого требуются дополнительные действия, описанные в разделе Настройка статического фреймворка.

Настройка статического фреймворка

Статические фреймворки не могут включать пакеты ресурсов. В результате Swift Package Manager не может автоматически объединить ресурсы, необходимые для компонентов Cast UI (например, изображения, раскадровки и файлы локализации), с продуктом GoogleCastStatic. Если вы добавите в цель GoogleCastStatic, выполните следующие действия:

  1. В проекте Xcode добавьте флаги -ObjC -lc++ в раздел Build Settings (Настройки сборки) > Other Linker Flags (Другие флаги компоновщика).
  2. Если в вашем приложении используются компоненты Cast UI, вручную добавьте наборы объектов в проект:
    1. Скачайте статическую библиотеку из раздела Скачиваемые файлы. Убедитесь, что версия статической библиотеки совпадает с версией добавленного пакета.
    2. Найдите папку Resources в распакованном каталоге и перетащите все файлы .bundle в проект Xcode. Установите флажок "При необходимости копировать все элементы" и добавьте их во все целевые объекты.

Настройка CocoaPods

Настройка вручную

Ниже приведены инструкции по добавлению Cast iOS SDK в проект без использования Swift Package Manager.

Скачивания

Скачайте нужную библиотеку и выполните инструкции по настройке, чтобы добавить фреймворк в проект.

Библиотеки Cast iOS Sender SDK 4.8.6:

Статический Динамический

Этапы настройки

Чтобы установить библиотеку, выполните следующие действия:

  1. Скачайте и распакуйте SDK, подходящий для вашего проекта.
  2. Настройте динамическую библиотеку GoogleCastSDK:
  3. Перетащите распакованный файл .xcframework в основной проект в навигаторе проектов Xcode. Установите флажок "При необходимости скопировать все элементы" и добавьте их во все целевые объекты.
  4. В целевом объекте Xcode на вкладке General выберите Embed and Sign для GoogleCast.xcframework.

Если вы настраиваете динамическую библиотеку, выполните следующие действия в дополнение к предыдущим:

  1. Удалите текущую версию GoogleCastSDK, если она установлена.
  2. Добавьте библиотеку Protobuf версии 3.13 или более поздней, следуя инструкциям в хранилище Protobuf на GitHub.

Если вы настраиваете статическую библиотеку, выполните следующие действия в дополнение к предыдущим:

  1. В проекте Xcode добавьте флаги -ObjC -lc++ в разделе Build Settings (Настройки сборки) > Other Linker Flags (Другие флаги компоновщика).
  2. Найдите папку Resources в распакованном каталоге и перетащите все файлы .bundle в проект рядом с добавленным ранее файлом GoogleCast.xcframework. Установите флажок "При необходимости скопировать все элементы" и добавьте их во все целевые объекты.

Настройка Mac Catalyst

Для приложений, поддерживающих Mac Catalyst, используйте динамическую библиотеку Cast SDK. Чтобы добавить фреймворк в проект, следуйте инструкциям по настройке вручную. Затем условно исключите Cast SDK из целевого объекта Mac, как описано в документации Apple. Статические библиотеки предварительно скомпилированы для архитектуры iOS, что приводит к ошибке компоновщика при сборке для Mac.