Настройка
Я создаю видеоплеер, который я хочу распространять в виде файла .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, я получаю следующую ошибку:
Погуглив эту ошибку, я обнаружил три разных битасовета:
- Не встраивайте фреймворк, от которого вы зависите - это, очевидно, плохо, потому что это просто преобразует его из ошибки времени сборки / развертывания в ошибку времени выполнениякогда он не может найти фреймворк
- Обновите ваши настройки сборки - я проверил все мои настройки сборки на соответствие рекомендациям
- Статическисвязать ваши зависимости - это то, что я пытаюсь сделать сейчас
Что касается статического связывания SDK Google IMA, я попытался просто следовать совету, уже доступному в стекеПереполнение . А именно, файл .framework
- это просто каталог, содержащий двоичный файл и несколько заголовков, поэтому я скопировал двоичный файл и заголовки в другое место и связал их в своем проекте XCode. Это позволило мне собрать и даже развернуть приложение, но выдает ошибку во время выполнения. Что-то в Google IMA SDK связано динамически:
Что на самом деле он ищет? Почему что-нибудь динамически связано, когда я извлек двоичные файлы и заголовки из файла .framework
и связал их вручную на этапе сборки «Связать двоичные файлы с библиотеками»? Как это исправить?
Обновление
Я сказал, что, извлекая двоичный файл из .framework
и пытаясь статически связать его, я смог развернуть его, но, видимо, я смог толькозагрузить его. Через час я получил это от Apple в своем электронном письме:
Так что, по крайней мере, он не позволяет мне переправить запущенное приложение в TestFlight. Но я до сих пор не знаю, как я должен создать среду, которая зависит от SDK Google IMA.