IB Designables: не удалось обновить статус автоматического макета: не удалось загрузить конструктивные элементы из пути (null)
Я вижу эту ошибку для XIB. Но все остальное компилируется и, похоже, не было никакого вреда, причиненного этой ошибкой. Это что-то, о чем я должен беспокоиться? Какая проблема здесь и как я могу это исправить?
![enter image description here]()
UPDATE:
Я обновил cocoapods до последней версии (0.36.3), и хотя это исправило проблему для нескольких компиляций, ошибка вернулась, и теперь я вижу дополнительную ошибку:
![enter image description here]()
Ответы
Ответ 1
Это известная проблема в CocoaPods. Это было исправлено в версии 0.36.1. Просто обновите ваши CocoaPods, а затем добавьте определенную строку кода в ваш файл pod: use_frameworks! после платформы: ios, '7.0'
Итак, ваш файл будет выглядеть так:
platform :ios, '7.0'
use_frameworks!
/// here will be dependencies etc. ///
обновлено:
Полный список шагов, чтобы избавиться от проблемы раз и навсегда:
- Закрыть проект;
- Приложение Open Terminal;
- Обновите CocoaPods до версии ver. 0.36.1 или позже;
- Перейдите в папку вашего проекта в Терминале;
- Тип:
pod update
; - Откройте свой проект в xCode;
- Чистый проект;
- Создайте проект снова.
Ответ 2
После некоторых исследований и копания я могу подтвердить, что нет способа решить эту проблему.
Это ошибка Xcode.
Это все. Мы должны ждать обновления.
Просто перезапустите Xcode на данный момент.
Ответ 3
Это сработало для меня:
- удалить производные данные (предпочтения > местоположения)
- перезапустить Xcode
- чистый проект (продукт > чистый)
Ответ 4
2016 - год, xCode 7.3.1:
Я получил эту ошибку. (Использование cocoa pods 1.0, но это не имеет значения)
ПРИЧИНА: в IB использовался специальный подкласс UILabel. звонит звонок?
ЭЛЕГАНТНОЕ РЕШЕНИЕ:
1: Подкласс TTTAttributedLabel или FXLabel или что у вас есть. Используйте это в IB.
2: Добавьте эти строки в файл подкласса .h:
#ifndef IB_DESIGNABLE
#define IB_DESIGNABLE
#endif
@class LabelFromPod;
IB_DESIGNABLE @interface YourLabel : LabelFromPod {
...
}
3: тогда я думаю, что вам нужно очистить проект, выйти из xCode, перестроить (обычный протокол паники xCode), и проблема исчезнет.
ОБНОВЛЕНИЕ 2017
xCode 8.2.1: все ухудшается:( Пустая проблема VC: IB даже не загружает элементы пользовательского интерфейса для контроллеров представлений, которые имеют эти IB_DESIGNABLE. Я не знаю:)
Ответ 5
Я столкнулся с той же проблемой, используя TTTAttributedLabel, и последовал за Андреем, чтобы попытаться ее исправить. Сборка была успешной, но после этого кажется, что файлы пакетов других модулей модуля (TSMessage, SVProgressHUD в моем случае) не могут быть загружены. Это также указано в сообщении Cocoapods, и я не хочу переместить ресурсы пакета в mainBundle (и я не проверял, работает ли это.)
Поэтому я выбираю удалить TTTAttributedLabel из подфайла и просто включать источник напрямую, чтобы избавиться от этой ошибки. Это работает для меня, и я надеюсь, что это еще один ответ на эту проблему.
Ответ 6
Может быть, поздно, но добавление этих кодов для инициализации сработало для меня, когда у меня возникла эта проблема.
required override init(frame: CGRect) {
super.init(frame: frame)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
Ответ 7
В Podfile
добавьте этот скрипт в конце и снова выполните pod install
.
post_install do |installer|
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete('CODE_SIGNING_ALLOWED')
config.build_settings.delete('CODE_SIGNING_REQUIRED')
end
end
Ответ 8
У меня была такая же проблема, как я использовал пользовательский вид из POD на раскадровке.
Выполнение следующих вещей исправило проблему для меня
- Добавьте следующую строку (Чтобы включить POD в динамической структуре) на pod
use_frameworks!
- Do
pod update
- Перезапустите Xcode
Ответ 9
Обновление cocoapods в Mac с помощью следующей команды разрешило эту проблему частично для меня:
sudo gem install cocoapods
Ответ 10
Проблема может заключаться в том, что вы использовали фреймворк или пользовательский класс UILabel.
как MarqueLabel или TTTAttributed Label.
Uncomment #use_frameworks
внутри файла подкачки.
Запустите pod update
.
Очистите и перестройте свой проект.
Это решит вашу проблему.
Ответ 11
После применения многих решений я понял, что это ошибка XCode. когда мы реализуем файл Objective C в проекте Swift или файл Swift в проекте Objective C, возникает эта проблема. так что попробуйте использовать сторонний язык или файлы на том же языке, чтобы решить эту проблему.
Ответ 12
У меня была похожая ошибка, когда я использовал Cocoapods
и не смог use_frameworks!
. Я закончил тем, что разветкил структуру, которая использует IBDesignable
и IBInspectable
, и удалил эти ключевые слова. Все настройки выполняются программно:
class CardFloatingLabelTextField: SkyFloatingLabelTextField {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.errorMessage = nil
self.titleFont = UIFont.systemFont(ofSize: 11)
self.titleFormatter = { (text: String) in return text }
self.titleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
self.selectedTitleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
self.lineColor = UIColor.channelsColorGrayContentAndLines()
self.selectedLineColor = UIColor.channelsColorDarkBlue()
self.lineHeight = 1
self.selectedLineHeight = 1
}
}
Он работает и больше не создает ошибок в Интерфейсном конструкторе. Однако жаль, что мне пришлось сделать этот обходной путь.
Ответ 13
Удалите то, что у вас есть в Podfile, и просто включите исходный код, чтобы решить эту проблему.
Меня устраивает!