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, и просто включите исходный код, чтобы решить эту проблему.

Меня устраивает!