Я пытаюсь интегрировать Janrain Engage в качестве настраиваемого модуля с Appcelerator Titanium. Я создал образец модуля и перетащил папку JREngage в образец модуля xcodeproj, как указано в документации Jainrain.
Теперь я даю этому проекту команду сборки, затем выполняю ./build.py
и, наконец, выполняю titanium run
команду. Он запускает приложение в симуляторе с пустым экраном и сразу выдает сбой, вызывая следующую ошибку.
Завершение работы приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Не удалось загрузить NIB в комплекте:» NSBundle </ Users / abhilash / Library / Application Support / iPhone Simulator / 4.2 / Applications / CA167346-4091-4E16-B841-955D1D391713 / test.app> (загружено) 'с именем' JRProvidersController ''
Почему могла возникнуть эта ошибка?
В
Targets -> Build Phases
Убедитесь, что файл .xib добавлен
Copy Bundle Resources
, если его нет, добавьте файл .xib.источник
попробуй узнать все
в вашем коде и убедитесь, что
XXXController
они написаны правильноисточник
initWithNibName:bundle:
методаУ меня была такая же проблема (исключение «Не удалось загрузить NIB в комплекте: ..») после обновления моего xcode с 3.2 до 4.02. В то время как развертывание моего приложения с Xcode 3.2 работало нормально, оно вылетает из-за того, что xcode 4 вызывает исключение, упомянутое выше, но только тогда, когда я пытался развернуть в симуляторе IOS (v.4.2). Ориентация на устройство IOS (v.4.1) действовала также и с Xcode 4.
Оказалось (после нескольких часов отчаянного рыскания), что причина была в почти «скрытой» настройке в .xib-файле:
Посетите свойства файлов .xib в инспекторе файлов: для свойства «Местоположение» было установлено значение «Относительно группы» для всех файлов .xib. Я изменил его на «Относительно проекта» и вуаля: теперь все файлы .xib правильно загружаются в симуляторе IOS!
Я понятия не имею, в чем причина этого странного поведения Xcode4, но, может быть, стоит попробовать?
источник
В моем случае это было очень странно (используйте раскадровку): по какой-то причине оно изменилось с «Основное имя файла раскадровки» на «Основное имя файла пера» в списке.
Возврат к «Основному имени файла раскадровки» (UIMainStoryboardFile) решил проблему.
источник
ошибка означает, что нет файла .xib с
"JRProvidersController"
именем. перепроверьте,JRProvidersController.xib
существует ли .вы загрузите
.xib file
систочник
Используя настраиваемое представление Swift в контроллере представления Objective-C (да, даже после импорта
<<PROJECT NAME>>-Swift.h
файла), я попытался загрузить перо, используя:... но
NSStringFromClass([MyCustomView class])
возвращается,<<PROJECT NAME>>.MyCustomView
и загрузка не выполняется. TL; DR Все сработало, загрузка пера с использованием строкового литерала:источник
Поскольку целью сборки является одно из моих устройств iOS, я щелкнул правой кнопкой мыши файл продукта (xyzw.app) и выбрал всплывающий элемент «Показать в Finder». Он открыл окно с xyzw.app внутри; Я открыл пакет с помощью Show Package Contents и увидел все файлы, которые я ожидал, кроме одного файла, на который он жаловался, с заглавной I вместо строчной i в имени (zoomieVIew.nib вместо zoomieView.nib ). Я заметил прописную букву I в имени файла xib, изменил его и перестроил; очевидно, Xcode оставил сгенерированное имя .nib таким, каким оно было. Я удалил zoomieVIew.nib в комплекте, перестроил, и Xcode должным образом воссоздал файл как zoomieView.nib. Приложение начало работать на устройстве.
источник
У меня была эта проблема с раскадровкой, и перо называлось что-то вроде 'bKD-J3-fhr-view-ZSR-8m-2da'.
Это произошло потому, что я пытался добавить подпредставление в self.view в init (withCoder) контроллера представления. Self.view еще не существует.
Переместил в viewDidLoad и все стало лучше!
источник
Посмотреть на проект
Target -> Buid Phases -> Copy Bundle Resources
Вы найдете свой xib / storyborad красным цветом.
Просто удалите его, а также удалите все ссылки на отсутствующий файл из проекта.
Теперь снова перетащите этот файл раскадровки / xib на это.
Copy Bundle Resources
Он все равно покажет вам файл красного цвета, но не беспокойтесь об этом.Просто очистите и соберите проект.
Теперь ваш проект снова будет успешно запущен !!
источник
Для раскадровки
Я пробовал каждое решение, опубликованное здесь, но у меня ничего не работало, так как я использую Storyboard с Swift 5.
Только что начал создавать новые контроллеры и представления в тестовом приложении раскадровки, я обнаружил, что мне не хватает идентификатора раскадровки моего контроллера представления.
Итак, вот мое решение, если вы хотите перейти от ViewController A -> View Controller B
Шаг 1. В раскадровке: просто убедитесь, что ваш ViewControllerA встроен в контроллер навигации.
Шаг 2. В раскадровке: теперь проверьте , упомянули ли вы идентификатор раскадровки для своего ViewControllerB, который вы будете использовать в коде в качестве идентификатора.
Шаг 3. и, наконец, убедитесь, что вы нажимаете контроллер таким образом в ViewControllerA нажатием кнопки.
источник
НЕ ПОСТАВЛЯЙТЕ .xib, КОГДА ВЫ ВСТАВЛЯЕТЕ В ИМЯ XIB! ЭТО УЖЕ ПОДРАЗУМЕВАЕТСЯ!
Не делай этого:
Сделай это:
источник
Пример Swift4, если ваши MyCustomView.swift и MyCustomView.xib находятся во фреймворке. Поместите это в файл инициализации MyCustomView :
источник
Я также обнаружил, что это не удалось, когда я попытался загрузить XIB с именем вроде @ "MyFile.xib". Когда я просто использовал @ "MyFile", он работал - очевидно, он всегда добавляет расширение. Но в сообщении об ошибке просто говорилось, что он не может найти MyFIle.xib в пакете - если бы он сказал MyFile.xib.xib, это было бы большой подсказкой.
источник
Вероятно, ваш файл XIB находится вне папки вашего проекта. Это приводит к тому, что Target Inspector не отображается. Однако перемещение файла XIB в папку проекта должно исправить это.
источник
Работая над Xcode 4.6.3 и локализуя файлы NIB, я также столкнулся с этой проблемой.
Для меня ничего не помогло, кроме изменения "Document Versioning" в File Inspector на Deployment 5.0 вместо 6.1.
источник
Это происходит, когда вы переименовываете файл пера. Если вы уже это сделали, создайте новый наконечник (то есть скопируйте содержимое текущего файла наконечника в новый наконечник), удалите старый файл наконечника, и это решит вашу проблему.
Изменить: с новой стартовой версией Xcode 4.6.3, если вы переименуете (с функцией рефакторинга) класс контроллера, он также переименует файл пера, и вам не нужно беспокоиться о проблеме загрузки пера.
источник
У меня только что был интересный опыт использования Xcode 6.3.
Я продолжал получать эту ошибку, несмотря на то, что пробовал все, что вы обычно думаете, с орфографией, целевой принадлежностью и т. Д., Как было предложено выше. Я также пробовал очистить, удалить производные данные, а также несколько раз удалить приложение из симулятора, чтобы убедиться, что пакет был собран правильно, но безрезультатно.
Наконец, после ответа Брайана Майкла Бентли я наконец решил проверить свой файл .app в папке моего симулятора на моем HD. Я обнаружил, что все мои перья были там, но с abc ~ ipad.nib вместо ожидаемого abc.nib. Я вручную переименовал все эти файлы, чтобы удалить часть ~ ipad, собрал, и все заработало!
Пытаясь понять, почему к ним добавлено ключевое слово ~ ipad, я посмотрел на настройки своего проекта и на самом деле на вкладке «Общие»> «Информация о развертывании» я выбрал только iPad. Я пытался запустить симулятор iPhone. Я считаю, что в прошлом Xcode выдавал ошибку, указывающую, что двоичный файл не поддерживает iPhone, и вам не удастся запустить приложение.
Я удалил приложение из симулятора и сделал то же самое снова - снова с поддержкой только iPad. На этот раз .app содержал abc ~ iphone.nib И abc ~ ipad.nib для каждой ожидаемой раскадровки, и он отлично работал на симуляторе iPhone. Опять же - если мы выберем iPad только в настройках «Информация о развертывании», он не должен работать на iPhone Simulator. Это ошибка Xcode.
Итак, здесь есть некоторая непоследовательность поведения со стороны Xcode, и, к сожалению, это временная ошибка, и ее может быть трудно воспроизвести, но я поместил это здесь, чтобы в будущем это могло помочь другим.
источник
Если бы эта же проблема ничего не работала, я подумал о чем-то странном с производными данными.
В xcode 6.3.2 мне пришлось:
В меню XCode -> Настройки -> Вкладка местоположений -> В местоположениях измените производные данные на относительные, а затем переключитесь обратно на значение по умолчанию
Потом перо загрузилось нормально.
источник
Будьте осторожны: Xcode чувствителен к регистру в именах файлов. Это не то же самое «Веселье», что «Веселье».
источник
Если вы используете в своем проекте фреймворки, вам необходимо убедиться, что вы загружаетесь из правильного пакета:
источник
для меня это было решено простым изменением имени файла моей ячейки на то же, что и у его класса.
В инспекторе атрибутов (третья вкладка на правой боковой панели в раскадровке):
Зарегистрируйте ячейку в контроллере представления следующим образом:
tableView.register (UINib (nibName: "MyCellClass", bundle: nil), forCellReuseIdentifier: "MyCellId")
источник
Получил эту проблему при преобразовании моего старого кода с XCode 3x в XCode 4 и решил ее, просто переименовав wwwwwwww.xib в RootViewController.xib
источник
Я столкнулся с той же проблемой. В моем случае имя пера было «MyViewController.xib», и я переименовал его в «MyView.xib». Это избавило от ошибки.
Я также перемещал проект с XCode 3 на 4.2. Изменение типа пути не имело значения.
источник
Также причина может заключаться в том, что файл ищется не в той папке для конкретного языка, когда вы испортили локализацию.
источник
Каждый раз, когда я реорганизую имя контроллера представления в моем appDelegate, я трачу на это время. Рефакторинг не изменяет имя пера в initWithNibName: @ "MYOldViewControllerName".
источник
У меня была такая же проблема, у меня работало переименование идентификатора контроллера представления в раскадровке.
источник
Я заметил, что это может случиться, если вы переключаетесь между ветвями в git и забываете сделать чистую. Итак, xib есть, и все найдено, но при точной сборке могут быть проблемы. Так что на всякий случай не забудьте сделать чистую
источник
В приведенном выше коде, если вы также укажете расширение файла, например «SecondView.xib», то это неверно и приведет к ошибке выше. Вместо этого используйте "SecondView". Я совершил ту ошибку.
источник
У меня это сработало .. Убедитесь, что вы правильно ввели имя пера.
[[NSBundle mainBundle] loadNibNamed: @ Владелец "Graphview": собственные параметры: nil];
Graphview (имя пера)
источник