Интерфейсный разработчик - Не удалось загрузить объекты для проектирования по пути (ноль)

У меня есть несколько пользовательских элементов управления, которые я создал, и я использую их в новом проекте. Однако я продолжаю получать ошибки в построителе интерфейсов:

Failed to update auto layout status: Failed to load designables from path (null)

or

Failed to render instance of <control>: Failed to load designables from path (null)

Я протестировал элементы управления в другом проекте, и мне кажется, что они правильно отображаются в построителе интерфейса, но я не могу заставить их работать в текущем проекте. Что вызывает эту ошибку и как ее исправить?

Заранее спасибо...


person Jake    schedule 08.02.2015    source источник
comment
@ N1ghtshade3 У меня такая же проблема, и элемент управления, с которым у меня проблема, не связан с зависимостью CocoaPods.   -  person Josh Brown    schedule 09.03.2015
comment
Я тоже не использую CocoaPods, но я видел сообщение, связанное с CocoaPods. Я думаю, что CocoaPods нашел решение этой проблемы, но, к сожалению, я нигде не могу его найти!   -  person Jake    schedule 10.03.2015
comment
вы загружаете какие-либо изображения с помощью imageNamed (:)   -  person Daniel Galasko    schedule 11.03.2015
comment
взгляните на github.com/CocoaPods/CocoaPods/issues/2792 и stackoverflow.com/questions/28204108/   -  person Mehul Thakkar    schedule 15.03.2015
comment
другое решение: stackoverflow.com/a/38368740/2245240   -  person Yaro    schedule 14.07.2016


Ответы (16)


Я была такая же проблема. Я использую cocoapods, и есть стручок, который использует конструктивные элементы. Итак, уловка заключалась в том, чтобы добавить use_frameworks! в подфайл. выполните «обновление модуля», повторно откройте проект xcode, и сообщение об ошибке не должно отображаться.

person i89    schedule 30.07.2015
comment
Это не актуально для ios 7+, так как ломает многие библиотеки, такие как Realm. - person Dvole; 19.11.2015
comment
Я тестировал iOS 8 и iOS 9, и у меня это работает. - person i89; 20.11.2015
comment
это помогло решить проблему, но добавило use_frameworks! нарушил некоторые операторы импорта для загруженных мной модулей. - person sosale151; 26.03.2016
comment
! use_frameworks резко увеличит размер вашей сборки FYI - person Tyler Thomas; 29.11.2016
comment
Недавно протестирован с Xcode 13.0, и у меня он тоже работает. Он удалил IBDesignables. - person Kehlin Swain; 26.11.2019
comment
@KehlinSwain, Вы имели ввиду Xcode 11.0? к тому времени, когда вы сделали свой комментарий, самого Xcode 12 там не было - person Vignesh; 20.07.2021

Редактировать**

Откройте Xcode (но не открывайте свой проект) и щелкните Окно (второе справа)

Щелкните Организатор и убедитесь, что вы находитесь в Проектах, затем удалите все производные данные. Закройте Xcode, а затем снова откройте свой проект и позвольте Xcode переиндексировать ваши файлы и посмотреть, решит ли это проблему.

person Anthony Taylor    schedule 10.03.2015
comment
Я пробовал все это и все еще получаю ту же ошибку, когда добавляю IB_Designable и IBInspectable обратно в классы. - person Jake; 11.03.2015
comment
Не работает. Пробовали несколько вариантов на нем. Это не проблема производных данных. - person drekka; 13.05.2015

Я запускаю Xcode 7.3 и получил ошибку, которая волшебным образом исчезла, выполнив следующие шаги, которые, в конце концов, оставили мой проект в том же состоянии, в котором он был до выполнения этих шагов (т.е. чистое нулевое изменение чего-либо):

  1. Добавьте use_frameworks! (без апострофов, конечно) в ваш подфайл
  2. Откройте окно терминала
  3. cd в корневой каталог вашего проекта
  4. Запустите pod install из командной строки
  5. Удалите "use_frameworks!" из вашего подфайла
  6. Снова запустите команду pod install.
  7. Попробуйте построить снова и посмотрите, исправит ли это ошибку; это сделало для меня

Похоже на одну из тех случайных ошибок Xcode, которые мы все видели раньше, особенно когда вы спешите сделать что-то еще.

person John Jacecko    schedule 11.04.2016
comment
Сработало отлично! Спасибо за очень четкие и подробные инструкции (другие упоминали use_frameworks!, но никто не упомянул об удалении его после этого и оставлении его вызвало проблемы с другими моими модулями). - person Fateh Khalsa; 17.05.2016

Если предыдущие решения не помогли вам, попробуйте добавить к своей цели pod inherit! :search_paths

Образец

  target 'my-app-target' do
    use_frameworks!
    inherit! :search_paths
  end

После этого выполните обновление модуля, как было предложено ранее.

person JBarros35    schedule 04.12.2019
comment
Работал у меня +1 - person Tripti Kumar; 07.01.2020

Я не уверен, что это решит вашу проблему, так как я не могу ее воспроизвести. Но я подумал, что ты все равно можешь попробовать.

Во-первых, как уже упоминалось, похоже, что у CocoaPods была такая же проблема. Я просмотрел коммиты, в которые были внесены исправления, но без результата, связанного с вашими настройками.

Однако в этом вопросе StackOverflow я обнаружил другое связанное сообщение об ошибке, которое также было связано с тем, что IB не обнаружило на путь. Мне было интересно, может ли их решение помочь вам:

Решением было добавить $(CONFIGURATION_BUILD_DIR) в поле цели Build settings Runpath Search Paths.

person Dennis    schedule 16.03.2015
comment
Может ли человек, проголосовавший против всех ответов на этот вопрос, дать обоснование? - person Dennis; 15.05.2020
comment
вероятно, они понизят свой рейтинг. Не могу отблагодарить вас за этот ответ! Помогло даже в 2020 году :) - person Cemen; 18.08.2020
comment
Нагромождение. Это сработало для меня (Xcode 12), и ответ use_frameworks! с наивысшей оценкой должен был быть миром боли с модулями в моем проекте. - person Chris Pointon; 22.09.2020

У меня была такая же проблема с проектом, отличным от CocoaPods, с пользовательскими IBDesignable представлениями. Судя по всему, это ошибка Xcode. Действия, указанные в этом ответе, помогли мне решить проблему. Короче:

  1. Закройте Xcode.
  2. Завершите все процессы с именем Interface Builder Cocoa Touch Tool на вашем компьютере.
  3. Снова запустите Xcode.
person pjuzeliunas    schedule 01.04.2016

Я не использую CocoaPods, но использую внутреннюю структуру, содержащую элементы IBDesignable, и также столкнулся с этой проблемой. Я очистил, удалил производные данные из моего основного проекта и перезапустил Xcode, но, похоже, это не помогло. Чтобы решить эту проблему, мне пришлось перейти в «Окно»> «Проекты», выбрать проект фреймворка (не проект, который использовал фреймворк, а сам проект фреймворка) и удалить производные данные. Итак, полные шаги:

  1. Меню продукта> Очистить
  2. Удерживайте Option> Меню продукта> Очистить папку сборки ...> Очистить
  3. Меню "Окно"> "Проекты"> "Выбрать мой проект Framework"> "Удалить производные данные"
  4. Меню "Окно"> "Проекты"> "Выбрать мой основной проект"> "Удалить производные данные"
  5. Выйти из Xcode
  6. Перезапустить Xcode

Повторите шаг 3 для всех без исключения проектов фреймворка, которые имеют IBDesignables и могут вызывать ошибки.

person Will Clarke    schedule 01.09.2016

Эта проблема исправлена ​​в последней версии Cocoapods.

Для установки просто запустите:

[sudo] gem install cocoapods --pre

Чтобы исправить ошибку: «не удалось загрузить объекты с пути (null)»:

use_frameworks!

   pod '****'



end

Добавить use_frameworks! в свой подфайл

Дополнительная информация: Рендеринг пользовательского компонента в реальном времени с использованием IB_DESIGNABLE из зависимости модуля

person PeiweiChen    schedule 09.09.2015

Проблема заключалась в том, что IB_DESIGNABLE из cocoapods неправильно связывается, когда построитель интерфейса отображает ваши представления.

Трюк use_frameworks! должен сработать, но для меня перенести код было слишком сложно.

Моя уловка заключалась в том, чтобы создать подкласс каждого представления IB_DESIGNABLE, которое я использовал в раскадровке, прямо из модулей. Решил ошибки.

person Antzi    schedule 11.04.2017

Есть очень удобный трюк, который можно использовать для отладки рендеринга в реальном времени.

1) Добавьте это расширение в свой проект:

    extension UIView {
    public func liveDebugLog(message: String) {
        #if !(TARGET_OS_IPHONE)
            let logPath = "/tmp/XcodeLiveRendering.log"
            if !NSFileManager.defaultManager().fileExistsAtPath(logPath) {
                NSFileManager.defaultManager().createFileAtPath(logPath, contents: NSData(), attributes: nil)
            }

            var fileHandle = NSFileHandle(forWritingAtPath: logPath)
            fileHandle.seekToEndOfFile()

            let date = NSDate()
            let bundle = NSBundle(forClass: self.dynamicType)
            let application: AnyObject = bundle.objectForInfoDictionaryKey("CFBundleName")
            let data = "\(date) \(application) \(message)\n".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
            fileHandle.writeData(data)
        #endif
    }
  }

2) Добавьте liveDebugLog(message:) и укажите все, что хотите знать. 3) Откройте Terminal.app и запустите команду open /tmp/XcodeLiveRendering.log

Сделанный!

Кредиты для Morten Bøgh

person Rafael Machado    schedule 10.05.2015

Я решил эту проблему, обновив модуль "Обновление модуля", надеюсь, он сработает для вас.

person Yuvraj Kale    schedule 01.03.2017

Если вам уже надоело искать решение, или в пятницу днем ​​просто расслабьтесь и удалите папку с производными данными, очистите Xcode сборки, выключите Mac, сделайте 5-минутный перерыв (если вы не стреляете -Борьба в срок: P). Включите Mac, запустите Xcode, попробуйте построить снова.

Если это сработает, просто прокляните Xcode и двигайтесь дальше, как я :)

person SPS    schedule 05.07.2020

Эта ошибка появилась, когда я обновил модули, пока были открыты xcode и мой проект.

Я выключил xcode. снова запустил обновление модуля. перезапустил xcode.

ошибка больше не появлялась.

person KawaiKx    schedule 19.05.2017

Я не использовал какао-стручки, но получал эту ошибку на контроллере представления, расширяющем импортированные классы. Я получал эту ошибку только при изменении представления StoryBoard на IphoneX, он работал нормально на представлении iPhone 8.

Я изменил настройки проекта с New Build System (Preview) на Standard Build system, затем очистил проект, и ошибка исчезла.

Понятия не имею, почему, но это решило проблему для меня.

person mariosm    schedule 23.05.2018

Все исправления, связанные с Pods, у меня не сработали, но удаление Derived Data папок помогло. Xcode 11

person highrankin    schedule 18.12.2019

Очистить + перезапустить XCode сделал, если для меня. Если проблема связана с тем, что вы создаете представление IBDesignable, а затем удаляете проверяемый или разрабатываемый тег, я бы обязательно попробовал этот подход.

person PSchuette    schedule 30.04.2020