#ios #xcode
#iOS #xcode
Вопрос:
Хорошо, я просмотрел все форумы и веб-сайты, но мне еще предстоит найти решение или даже причину проблемы, с которой мы сталкиваемся в отношении использования IBDesignables
в большом проекте, который использует множество фреймворков (около 30 через Cocoapods или internal). Xcode 8.0, хотя он был запущен еще в Xcode 7.x. Фреймворки представляют собой смесь Swift и Objective-C.
Фактические сообщения об ошибках в Xcode являются:
"Failed to render and update auto layout status for XXXX: dlopen(xxxx, 1): Library not loaded: @rpath/YYYY/YYYY.framework" and
"Failed to update auto layout status: dlopen(xxxx, 1): Library not loaded: @rpath/YYYY/YYYY.framework"
Похоже, у нас нет проблемы в небольших проектах, которые используют различные комбинации одних и тех же фреймворков.
Я смог получить сообщения об ошибках с жалобами на то, что разные библиотеки не загружаются, удалив некоторые из проекта, поэтому, похоже, это не имеет прямого отношения к фактической библиотеке, на которую жалуются. Я устранил -ObjC
и all_load
как возможных виновников, убедившись, что они не находятся там, где находится проект или xxconfig
файлы.
Многие фреймворки используют одни и те же зависимости. Такие вещи, как AFNetworking
, ActionSheetPicker
ReactiveCocoa
и т.д., Но их удаление только перемещает ошибки.
Кто-нибудь еще видел проблему с IBDesignables
тем, что она не работает над более крупными проектами?
Ответ №1:
Это обходной путь, но, похоже, работает (на данный момент). Мы выяснили, что если мы добавим $(FRAMEWORK_SEARCH_PATHS)
и "/Applications/Xcode.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/swift/iphonesimulator"
на уровень проекта каждого модуля. LD_RUNPATH_SEARCH_PATHS
мы можем избежать ошибок без видимых побочных эффектов.
Вот фрагмент из нашего Podfile:
installer.pods_project.build_configurations.each do |config|
config.build_settings['LD_RUNPATH_SEARCH_PATHS'] = [
'$(FRAMEWORK_SEARCH_PATHS)',
'"/Applications/Xcode.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/swift/iphonesimulator"'
]
end