Как статически связать Google IMA SDK в iOS? - PullRequest
0 голосов
/ 08 октября 2019

Настройка

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

Часть этогоВидеоплеер будет иметь возможность проигрывать рекламу, используя Google Interactive Media Ads SDK .

Плеер должен функционировать как на iOS (iPhone), так и на tvOS (Apple TV).

Для этого у меня есть три проекта:

  • PlayerSDK : Этот проект создает наш .framework файл
  • ExampleIOS : Этот проект использует наш .framework файл для питания приложения
  • ExampleTVOS : Этот проект также использует наш .framework файл

Проблема

Обычно При создании платформы для iOS и TVOS с зависимостями гораздо проще использовать что-то вроде CocoaPods. Это не будет работать для меня, потому что Google предоставляет отдельную версию IMA SDK для tvOS , которая недоступна на CocoaPods. Единственный способ для меня интегрировать IMA SDK в tvOS - это загрузить их файл .framework и вручную загрузить его в библиотеку.

Если я это сделаю, я могу протестировать приложение в симуляторе или нареальное устройство, но когда я пытаюсь отправить приложение в Test Flight, я получаю следующую ошибку:

Xcode error

Погуглив эту ошибку, я обнаружил три разных битасовета:

  1. Не встраивайте фреймворк, от которого вы зависите - это, очевидно, плохо, потому что это просто преобразует его из ошибки времени сборки / развертывания в ошибку времени выполнениякогда он не может найти фреймворк
  2. Обновите ваши настройки сборки - я проверил все мои настройки сборки на соответствие рекомендациям
  3. Статическисвязать ваши зависимости - это то, что я пытаюсь сделать сейчас

Что касается статического связывания SDK Google IMA, я попытался просто следовать совету, уже доступному в стекеПереполнение . А именно, файл .framework - это просто каталог, содержащий двоичный файл и несколько заголовков, поэтому я скопировал двоичный файл и заголовки в другое место и связал их в своем проекте XCode. Это позволило мне собрать и даже развернуть приложение, но выдает ошибку во время выполнения. Что-то в Google IMA SDK связано динамически:

Run-time error

Что на самом деле он ищет? Почему что-нибудь динамически связано, когда я извлек двоичные файлы и заголовки из файла .framework и связал их вручную на этапе сборки «Связать двоичные файлы с библиотеками»? Как это исправить?

Обновление

Я сказал, что, извлекая двоичный файл из .framework и пытаясь статически связать его, я смог развернуть его, но, видимо, я смог толькозагрузить его. Через час я получил это от Apple в своем электронном письме:

E-mail error

Так что, по крайней мере, он не позволяет мне переправить запущенное приложение в TestFlight. Но я до сих пор не знаю, как я должен создать среду, которая зависит от SDK Google IMA.

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