Поддерживает ли битовый код слабые ссылки сторонних платформ? - PullRequest
0 голосов
/ 07 ноября 2019

Вопрос изложен просто в заголовке. Вот мои настройки:

Создание динамического фреймворка, который необязательно связывает (слабая ссылка) с GoogleInteractiveMediaAds.framework. Для приложений, использующих мой фреймворк, GoogleInteractiveMediaAds является необязательной зависимостью, и фреймворк будет работать без нее. В настоящее время это работает.

Однако проблема возникает при попытке перестроить из битового кода, как это обычно происходит при экспорте специальной сборки с выбранным «Перестроить из битового кода». Процесс компиляции битового кода завершается неудачно с:

ipatool failed with an exception: #<CmdSpec::NonZeroExitException: $/Applications/Xcode.app/Contents/Developer/usr/bin/bitcode-build-tool ...

И, заглянув глубже в файл журнала, я нахожу описание ошибки:

Failed to resolve linkage dependency MyFramework arm64 -> @rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds: Could not resolve @rpath in @rpath/GoogleInteractiveMediaAds.framework/GoogleInteractiveMediaAds from MyFramework
error: GoogleInteractiveMediaAds not found in dylib search path

Примечание: GoogleInteractiveMediaAds.framework действительно включает битовый код.

Очевидно, что эту ошибку можно избежать, если не выбрать «Перестроить из биткода». Если бы я ответил на свой вопрос, я бы сказал, нет, похоже, что при компиляции из битового кода вы не можете использовать слабо связанные фреймворки. Просто из-за того факта, что на этапе компиляции битового кода делается попытка связать с каркасом, который не включен в цель приложения. Однако я не смог найти никакой официальной документации, используя слабую связь с битовым кодом или какие-либо соответствующие ответы StackOverflow об этом, поэтому я не уверен, что я что-то упустил или есть какие-то соответствующие настройки компилятора / компоновщика, которыеМне не хватает, чтобы заставить это работать.

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