IBDesignables не удается отобразить в Xcode

#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