Не удалось загрузить нить в комплекте на устройстве iPhone

Я пытаюсь проверить приложение, которое я разрабатываю на своем iPhone. Для этого я сменил цель с Simulator на Device на Xcode. Приложение правильно загружено на устройство, и оно работает. Отобразится основное представление, но если я попытаюсь открыть вторичный вид, приложение выйдет из строя.

В журнале iPhone (я установил утилиту настройки iPhone, чтобы увидеть консоль [это единственный способ увидеть журнал с iPhone?]) Я вижу эту ошибку:

Could not load NIB in bundle 

Но на симуляторе все работает отлично. Что не так? Есть идеи?

Я обнаружил, что иногда устройство чувствительно к регистру, а симулятор – нет.

Что такое имя вашего xib?


или

Попробуйте удалить приложение из симулятора и снова установить его – у симулятора может быть старый файл, оставшийся после предыдущего запуска приложения – вы вообще переименовали / перенесли xib во время разработки?

У меня была такая же проблема, и я исправил ее так:

  1. Открыть цель XCode
  2. Перейдите на вкладку «Сроки выполнения»
  3. Перейдите в раздел «Копирование ресурсов пакета»
  4. Нажмите кнопку +
  5. Добавьте отсутствующий файл Nib

У меня была аналогичная проблема, и я получал ту же ошибку. Оказывается, я использовал полное имя xib-файла на панели атрибутов в разделе «NIB Name:»

Не используйте «SomeViewController.xib», просто используйте «SomeViewController» без расширения «.xib».

Вы можете попробовать следующее:

  1. Убедитесь, что дело верное
  2. Использовать имя файла xib без расширения .xib.
  3. Удалите любые (тире) или другие специальные символы, используйте _ (подчеркивание)
  4. Удалите xib-файл из проекта и добавьте обратно в проект Xcode
  5. Проверьте настройки сборки и убедитесь, что развертывание изменено на currect SDK

У меня была такая же проблема при вызове initWithNibName:@"MyViewController"

Изменение вызова в initWithNibName:NSStringFromClass([MyViewController class]) работал хорошо

В моем случае xib просто не копировался в связку. Как только я добавил xib в «Copy Bundle Resources» для целевой цели приложения, все прошло отлично.

Наконец, мне удалось решить эту проблему с помощью этих двух шагов:

  1. В диспетчере файлов controllerа просмотра удалите любую локализацию (только для тестирования)
  2. Убедитесь, что вы проверили правильное целевое членство

Я не знаю, почему он работает на симуляторе 🙁

Я столкнулся с той же проблемой. В моем случае имя nib было «MyViewController.xib», и я переименовал его в «MyView.xib». Это избавило от ошибки.

Я также перемещал проект с XCode 3 на 4.2. Изменение типа Path не имело значения.

У меня было такое же сообщение об ошибке. Моя проблема, однако, заключалась в том, что мои настройки языка на моем телефоне были установлены на «английском языке» и в регионе «Соединенное Королевство». Однако файл, который нельзя загрузить, был помещен в каталог de.lproj. Перемещение файла в корневую директорию решило его.

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

Чтобы устранить проблему, я сделал следующее:

  1. Выберите проект в Навигаторе проектов.
  2. В настройках проекта выберите « Сформировать фазы» .
  3. Разверните ресурсы копирования пакетов .
  4. Прокрутите вниз (при необходимости) и нажмите кнопку + .
  5. В появившемся диалоговом окне нажмите кнопку « Добавить другое …» .
  6. Найдите отсутствующий файл .XIB в файловой системе.
  7. Построить и запустить … отсутствующий значок должен появиться при его запуске.

Это то, что сработало для меня, когда я получил это сообщение. Ваш пробег может отличаться, поскольку обстоятельства не всегда одинаковы для всех, но я надеюсь, что это поможет кому-то, кто сталкивается с этой проблемой.

-Evan

Простой ошибкой, которая может вызвать эту ошибку, является попытка initWithNibName на импортированном viewController, когда вы используете раскадровку, а не отдельные файлы Nib. Если это так, тогда просто запустите controller вместо того, чтобы пытаться инициализировать нип, который не существует, или запустите эти поля с помощью nil.

Если Storyboard и no nib, измените initWithNibName: bundle: просто init или initWithNibName: nil bundle: nil

Для чего это стоит, я получил эту ошибку, когда одна из кнопок панели вкладок присвоила ей не тот class.

Мне нужно запустить его с удалением всей локализации из xib В правом окне. Возможно, файл находится в папке локализации.

У меня такая же проблема. И мое решение – удалить все локализации для представления.

У меня было точно такое поведение, которое вы описали: работает на симуляторе, но при запуске на устройстве получает «Невозможно загрузить NIB в комплекте», и приложение остается застреленным на снимке запуска.

В моем случае проблема была в файле MainWindow.xib, который Xcode автоматически создавался с английской локализацией. Я поддерживаю английский и итальянский языки в своем приложении и понял, что мне не хватает локализованной версии MainWindow.xib для итальянского языка.

Поскольку мне не нужно было локализовать этот файл (по умолчанию это Xcode для его локализации), я устранил проблему, просто удалив английскую локализацию, поэтому тот же файл используется независимо от локализации. Другой способ устранить проблему – добавить недостающую локализованную версию, если она вам понадобится.

Приложение сработало на устройстве, потому что мое устройство настроено на итальянский язык. Вместо этого симулятор был установлен на английский, и поэтому приложение работает правильно. Просто чтобы проверить, я установил симулятор на итальянский язык, и приложение потерпело крах, подтвердив проблему локализации.

У меня также была эта проблема, когда я загрузил controller дочернего представления из initWithCoder, что является хорошим местом для инициализации, но имейте в виду, что вы должны добавить его как фактический ребенок ПОСЛЕ загрузки представления.

Так что сдвиньте что-то вроде этого:

 [self addChildViewController: self.pageViewController]; [self.view addSubview: self.pageViewController.view]; [self.pageViewController didMoveToParentViewController:self]; 

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

  • Есть ли документальный способ настройки ориентации iPhone?
  • Есть ли какая-либо декомпрессия для iPhone?
  • iOS 4: распределение беспроводных приложений для собственных приложений
  • Округленный UIView с использованием CALayers - только некоторые углы - как?
  • Получите гиперссылки PDF на iOS с кварцем
  • Запуск функции shouldStartLoadWithRequest с несколькими вызовами window.location.href
  • iPhone - отклонение нескольких ViewControllers
  • Какая работа была выполнена для кросс-платформенной мобильной разработки?
  • Как замаскировать квадратное изображение в изображение с круглыми углами в iPhone SDK?
  • Как узнать размер изображения после применения аспектного соответствия для изображения в UIImageView
  • Прозрачный модальный вид на навигационном controllerе
  • Давайте будем гением компьютера.