Подтвердить что ты не робот

Xcode 6.3: Не удалось загрузить NIB в комплекте

При компиляции с использованием Xcode 6.3 (iOS 8.3 SDK) некоторые имена файлов nib заканчиваются дополнительными ~ipad или ~iphone при определенных обстоятельствах. Например, ViewController~ipad.xib становится ViewController~ipad~ipad.nib. Это приводит к сбою, потому что приложение не ожидает, что скомпилированные файлы nib будут иметь двойной суффикс.

4b9b3361

Ответ 1

Чтобы исправить это, снимите флажок "Использовать классы размеров" в любых затронутых документах в Interface Builder.

Это, по-видимому, ошибка в версии ibtool, включенной в Xcode 6.3 (и iOS 8.3 SDK). Это происходит в следующих случаях:

  • У вас есть входной файл, специфичный для устройства *~(iphone|ipad).xib с включенными классами размера.
  • Цель вашего развертывания - это что-то большее, чем iOS 8.0.

Я смог воспроизвести проблему в командной строке:

xcrun --sdk iphonesimulator8.3 ibtool --minimum-deployment-target 7.0 --compile ViewController~ipad.nib ViewController~ipad.xib

Если вы видите такое же поведение, дублируйте этот радар. Это, по-видимому, исправлено в последняя версия Xcode 6.4.

Ответ 2

изменить ~ на _ в имени xib и указать явно суффикс при программной загрузке пакета.

Ответ 3

Это, по-видимому, ошибка Xcode 6.3 при компиляции файлов XIB. Чтобы обойти исключения, есть 4 варианта:

  • Настройте свой проект на iOS 8
  • Используйте раскадровки вместо XIB файлов.
  • Отключить классы классов
  • Обработка загрузки NIB в коде

Я подробно описал каждый из этих вариантов в своем сообщении в блоге: http://www.joobik.com/2015/04/fixing-xcode-63-ios-sdk-error-could-not.html

Ответ 4

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

Ничего не помогает, у меня есть цель сборки для iOS 7, и мне действительно нужно поддерживать iOS 7.

Я не знаю, какой дескриптор загрузки NIB в коде означает...

Еще раз проблема заключается в том, что мое приложение в AppStore начало сбой на iOS 8.3, и если попытаться создать приложение в XCode 6.3, используя мой iPad Air, работающий под управлением iOS 8.3, он сразу же сработает с этим сообщением:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: ....

Спасибо за помощь.