Вопрос изложен просто в заголовке. Вот мои настройки:
Создание динамического фреймворка, который необязательно связывает (слабая ссылка) с 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 об этом, поэтому я не уверен, что я что-то упустил или есть какие-то соответствующие настройки компилятора / компоновщика, которыеМне не хватает, чтобы заставить это работать.