Использование Carthage во фреймворках

Я создал два фреймворка в Xcode.
Внутри каждого фреймворка я использую Carthage для получения внешних фреймворков.

У меня есть следующая настройка (надеюсь, это имеет смысл):

- MyNetworksFramework
-- Framework reference(via Carthage): Alamofire

- MyUIFramework
-- Framework reference(via Xcode): NetworksFramework
-- Framework reference(via Carthage): RxSwift

- MyApp
-- Framework reference(via Xcode): UIFramework

У меня не было проблем в эмуляторе, но при запуске на устройстве я получаю ошибки типа: dyld: Library not loaded... RxSwift.

Я добавил каждую из своих пользовательских фреймворков во встроенные фреймворки в разделе «Общие».

Мне не хватает какой-то внешней настройки фреймворка?


person Chris G.    schedule 02.05.2017    source источник


Ответы (1)


У меня была такая же проблема в прошлом. Чтобы это исправить, нужно было запустить команду carthage copy-frameworks, которую они упоминают на Github. Но вместо того, чтобы помещать фазу сборки фреймворков копирования в каждую из фреймворков, вам нужно поместить фреймворки копирования в фазу сборки вашего MyApp. В вашем случае в MyApp вы бы добавили Alamofire и RXSwift. Также удалите фреймворки копирования из MyNetworksFramework и MyUIFramework.

Вот как выглядит мой сценарий на этапах сборки: Этап сборки для фреймворков копирования Carthage

person totiDev    schedule 02.05.2017
comment
Право на! Спасибо! - person Chris G.; 02.05.2017