Из вашего сообщения об ошибке следует проверить несколько вещей.
dyld: Library not loaded: @rpath/PodA.framework/PodA
Referenced from: .../Build/Products/Development-iphonesimulator/FrameworkA.framework/FrameworkA
Reason: image not found
Первое, что кажется странным, это то, что путь к загружаемой платформе(FrameworkA.framework) не встроен в приложение.Проверьте вкладку «Основные» MainAppTarget и убедитесь, что платформа отображается в разделах «Встроенные двоичные файлы» и «Связанные фреймворки и библиотеки».
Во-вторых, @rpath
- сокращение от runpath
список путей поиска, который указывает dyld
, где искать нужные библиотеки.
Вот пример проекта на Github с основным приложением, использующим один Cocoapod, и динамической средой, от которой зависит основное приложение, использующееразные Cocoapod: https://github.com/dtweston/FrameworkPodTest
Создайте настройки, которые вы должны проверить на всех задействованных целях (включая базовые цели, созданные в рамках проекта Pods):
- Пути поиска Runpath(
LD_RUNPATH_SEARCH_PATHS
) - В примере проекта они определяются cocoapod, но для каждого из них установлено значение
$(inherited) @executable_path/Frameworks @loader_path/Frameworks
- Имя установки динамической библиотеки (
LD_DYLIB_INSTALL_NAME
) - В примере проекта это значение не отличается от значения по умолчанию
$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)
- База имен установки динамической библиотеки (
DYLIB_INSTALL_NAME_BASE
) - Впример проекта, установленный на
@rpath
(снова определяется Cocoapod)
Вот скриншот встроенного пакета приложений, показывающий, как он выложен:
Вы можете использовать otool
для получения информации о том, как приложение собирается с помощью xcodebuild.
Вот основной двоичный файл приложения:
otool -L FrameworkPodTest
FrameworkPodTest:
@rpath/KeychainSwift.framework/KeychainSwift (compatibility version 1.0.0, current version 1.0.0)
@rpath/Lottie.framework/Lottie (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 61000.0.0)
@rpath/Framework.framework/Framework (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1560.10.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 1245.9.2)
...
Идвоичный фреймворк:
otool -L Frameworks/Framework.framework/Framework
Frameworks/Framework.framework/Framework:
@rpath/Framework.framework/Framework (compatibility version 1.0.0, current version 1.0.0)
@rpath/KeychainSwift.framework/KeychainSwift (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1560.10.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
@rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 1000.11.42)
@rpath/libswiftCoreFoundation.dylib (compatibility version 1.0.0, current version 1000.11.42)
...