Не удалось найти раскадровку с именем 'MainStoryBoard' в комплекте NSBundle - PullRequest
44 голосов
/ 01 января 2012

Я запустил новое приложение несколько дней назад и начал работать с симулятором для его тестирования. Я начал как пустой проект и вручную добавил раскадровку. Симулятор собирает и запускает мое приложение просто отлично, но когда я пытаюсь собрать его на своем iPhone, я получаю сообщение ' Не удалось найти раскадровку с именем' MainStoryBoard 'в комплекте NSBundle '.

Google ничего не нашел и этот вопрос предложил, чтобы я проверил свою цель для раскадровки, но все на месте. Тем не менее, если что-то не будет на месте, симулятор тоже не запустится.

Кто-нибудь может указать мне правильное направление?

Ответы [ 26 ]

3 голосов
/ 14 июня 2016

Ответ Нитина Алабура мне помог, но косвенно.Выкладываю еще один ответ для уточнения:

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

Мой код выглядел так:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];

Я игнорировал материал NSBundle, потому что, эй, я не знаю, какого черта пакет.Оказывается, это важно для этого варианта использования, где раскадровка будет существовать вне «пакета» приложения (вместо этого он находится в пакете моей платформы).Этот код скажет iOS найти раскадровку в пакете, в котором существует текущий класс (который для меня является пакетом, который содержит мою платформу):

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:[NSBundle bundleForClass:[self class]]];
2 голосов
/ 20 ноября 2015

Вам просто нужно проверить файл конфигурации (.plist) в папке Supporting files

Проверить название раскадровки по умолчанию.

2 голосов
/ 01 ноября 2012

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

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

1 голос
/ 01 марта 2013

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

1 голос
/ 13 января 2014

Эта проблема возникла у меня, когда я вызывал раскадровку в коде. Причина в том, что я использовал другое слово для раскадровки. Я решил это следующим образом:

Перейти к целям -> информация, выбрать информацию, скопироватьназвание раскадровки и вставьте его туда, куда вы звоните.

По крайней мере, попробуйте ...

1 голос
/ 07 марта 2013

У меня была эта проблема, когда я случайно открыл проект со второй установкой Xcode. Он сломал мои файлы проекта навсегда (что понятно).

1 голос
/ 16 августа 2014

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

Я удалил предыдущее приложение, повторно выбрал раскадровку в «Информации о развертывании», перезапуститеприложение, и все работало нормально.

0 голосов
/ 20 марта 2012

У меня была похожая проблема, и я получал следующую ошибку.

exception 'NSInvalidArgumentException', reason: 'Could not find a storyboard named 'MainStoryboard_iPhone' in bundle NSBundle

Я исправил ее, обновив файл plist.Просто зайдите в Edit-> Find-> Find в Workspace и найдите «story».Теперь обновите соответствующее имя для раскадровки.

0 голосов
/ 15 октября 2015

Перейдите в список info.plist на этапах сборки> Копировать ресурсы комплекта и добавьте раскадровку, используя значок "+"

0 голосов
/ 29 сентября 2015

Решением для меня было то, что мне просто нужно было добавить MainStoryboard в Bundle Resources . После этого все работает нормально.

Проект -> Этапы сборки -> Копировать ресурсы комплекта -> нажмите кнопку + и добавьте свой файл.

...