Ошибка раскадровки iOS5: раскадровки недоступны в iOS 4.3 и более ранних версиях


98

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

Не удалось создать приложение из-за следующего сообщения об ошибке:

Раскадровка недоступна в iOS 4.3 и более ранних версиях.

Об этом мне говорят раскадровки для iPhone и iPad.

Проблема в том, что когда я снова переключился на цель iOS5, я все еще продолжаю получать эти ошибки из обеих раскадровок, и продукт не создается! Я проверил: цель развертывания iOS в настройках проектов - 5.0. Целевая цель развертывания приложения - 5.0. В настройках сборки используется iOS 5.0 SDK.

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

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


Для справки, я пробовал каждое предложенное решение (по состоянию на 9 февраля 2012 г.). Ни одной работы. Хм ...
Джо Д'Андреа

1
У меня такая же проблема даже с новыми проектами (это безумие)! Я перепробовал здесь все методы, ни один из них не работал. Обновление Xcode до последней версии (4.3.1) тоже не помогает. грррррр .....
Люцифер42

1
Ни один из приведенных ниже ответов не помог мне. Пробовал 22 марта ..! :(
jeevangs

2
Я ProfileRun
редактировал

не могу представить, какое тупое яблоко
neobie

Ответы:


111

У меня тоже возникла эта проблема, и я решил ее, выполнив следующую процедуру:

  1. Откройте XXXXXX.storyboard.
  2. Откройте вкладку «Идентификация и тип» в правом окне Xcode.
  3. Установите для параметра «Разработка» в управлении версиями документа значение «Xcode 4.2» (мое значение по умолчанию - «Версия по умолчанию (Xcode 4.1)».
  4. Измените значение Deployment с версии Project SDK (iOS 5.0) на iOS 5.0, затем вернитесь к Project SDK Version (iOS 5.0).

Перестройте проект, и ошибка должна быть устранена.


У меня это тоже сработало, переход с GDB на LLVM, похоже, не помог. Кажется, что изменение цели развертывания на значение ниже 5.0 на экране Target-> Summary устанавливает для параметра Storyboard Document Versioning Development (Xcode) значение 4.1, но возврат к 5.0 не изменяет версию Xcode обратно на 4.2.
FractalDoctor

1
я также должен был очистить перед восстановлением
Бушра Шахид

7
У меня была такая же проблема, но я не смог ее исправить. Наконец-то я смог исправить это, удалив ссылку на раскадровку, построив, добавив обратно и снова построив.
smcmahon

1
Я бы хотел, чтобы это сработало для меня! Судя по отзывам, я чувствую, что так и должно быть, но без кубиков, извините. :(
Джо Д'Андреа

1
Немного странно, но у меня сработало перетаскивание файла раскадровки из xcode на рабочий стол, очистка, а затем сборка - я не знаю, что толку.
JARC

20

Решение, которое сработало для меня, заключалось в том, чтобы просто удалить ~/Library/Developer/Xcode/DerivedDataкаталог для моего проекта.


Вроде бы самый надежный. Это сработало для меня, когда здесь не было других ответов.
Николас Ренольд

Это единственный вариант, который у меня сработал, и я беззастенчиво отвергаю ответы, которые не сработали. Извините, ребята ... это слишком расстраивает.
Дэвид Мортон

Это сработало для меня. Как ни странно, удаление производных данных проекта из Организатора не помогло, а вот удаление всей папки из средства поиска помогло.
rob

1
Удаление папки DerivedData - это всегда первое, что я пытаюсь сделать. Однако здесь не помогло
brainray 06

17

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

Выберите раскадровку в левом столбце и «Показать в Finder» и перетащите раскадровку на рабочий стол. Xcode теперь изменит свой цвет на красный и не сможет скомпилировать.

Очистите проект, перетащите раскадровку обратно с рабочего стола в каталог в Finder.

Затем он строится, и ошибка снова исчезает.

Я не знаю, что изначально вызвало ошибку, поскольку я разрабатываю под iOS5 и создаю для 4.3, но, похоже, время от времени она возникает и.


Это сработало для меня, в то время как изменение версии документа и перезапуск / очистка не помогли.
Берик

эээ, я просто не могу отблагодарить вас достаточно (+1), это спасло мне день :-)
PeterK

14

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

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

Мое решение заключалось в том, чтобы закрыть XCode, открыть его снова и очистить. Затем я скомпилировал, и все заработало.

Надеюсь, это поможет другим.


2
Cmd + Q - закрыть xCode. Обычное «закрытие» бесполезно.
бериллий

Мой опыт аналогичен ответу FiddleMeRagged: какое-то время это работало, а в настоящий момент не работает (хотя и решение от cotton5415). Так что, к сожалению, нельзя ожидать, что это сработает в 100% случаев, даже если иногда это срабатывает.
Тайлер Кольер

Да! Простое решение: повторно откройте xCode и просто " CleanГотово!" =)
Emadpres 06

11

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

В левой части Xcode откройте навигатор проекта. Щелкните верхний элемент, который является вашим проектом. На панели справа вы увидите выбор между вашим проектом и его целями. Щелкните проект, а затем на панели справа на вкладке «Информация» установите для параметра «Использование сборок из командной строки» значение «Отладка» (в двух моих проектах, где у меня возникала ошибка, оба были установлены на «Выпуск»).

Картинка, наверное, самая простая:

Изображение из Xcode

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


Ой, да! Эта «Другая идея» работает! Пробовал все остальное, но ни один из них не работает!
Hlung

Да, другой проект успешно построен, теперь старый тоже строится без ошибок. Спасибо.
Adeel Pervaiz

7

После попытки всех ответов здесь (удаление ссылки на раскадровку, выход из Xcode, очистка, изменение отладчика и т. Д.) Ни один из них не работал (с Xcode 4.5).

Единственный способ восстановить его (и это было предположение) - открыть файл раскадровки в текстовом редакторе и удалить следующую строку:

<deployment version="1280" identifier="iOS"/>

Он должен быть в верхней части файла в <dependencies>разделе. После этого проект был успешно построен, и Xcode даже повторно добавил эту строку в файл, но он все еще строит ...

Иди разбери ...! Надеюсь, это кому-то поможет!


Удаление записей <развертывание ..> и <разработка ..> работало как минимум для одного файла раскадровки. Как ни странно, это исправило ту же ошибку «недоступно в iOS 4.3» в другом, не связанном с раскадровками проекте.
LearnCocos2D

6

Наконец, элегантный обходной путь, который, кажется, помогает мне! (Я очень надеюсь, что это сработает для всех остальных. Этот упрямый.)

Как только ваши настройки вернутся обратно в iOS 5, попробуйте Cmd-Option-Shift K (также известный как «Очистить папку сборки ...» в меню - удерживайте Option, чтобы увидеть это), затем выполните сборку.


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

5

решение простое, щелкните правой кнопкой мыши файл раскадровки и отобразите его в поисковике, затем выберите папку, в которой находится файл (это, вероятно, будет в папке en.lproj), щелкните правой кнопкой мыши файл MainStoryboard.storyboard, вызывающий проблему, и откройте его с текстом edit найдите строку, которая читает или что-то вроде этого:

<development version="4300" defaultVersion="4200" identifier="xcode"/>

и измените его примерно так:

<development defaultVersion="4300" identifier="xcode"/>

сохраните файл и соберите. И вуаля...


Простое удаление обоих <deployment ..> и <development ..> (если они есть) из файла раскадровки исправило это для меня.
LearnCocos2D

4

Хорошо, я попробовал все, что описано выше, но проблема не исчезла. Поэтому я просто удаляю раскадровки (как ссылку, а не перемещаю в корзину). затем успешно построить; после этого я добавил их снова; Сборка, и наконец заработало.


Я даже не могу удалить ссылки, так как Xcode 4.6 вылетает, как только я касаюсь раскадровки
brainray

3

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

Просто зайдите в настройки сборки и вместо выбора файла проекта xcode выберите файл продукта и измените цель развертывания на 5.0 или 5.1. Ошибка должна исчезнуть.! Я сделал это в Xcode 4.3 в Lion OSX. У меня все заработало !!


3

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

То, что я сделал и что для меня, собирался спроецировать -> информация и в разделе «Цель развертывания» изменить цель развертывания iOS на что угодно, построить, а затем вернуться к тому, что было, и построить снова.


2

Вот еще один случайный вуду-цеп, который, похоже, только что решил проблему. (после того, как другие методы здесь не помогли) я переименовал файл раскадровки (и запись для него в файле info.plist). Еще не пробовал ритуал перетаскивания на / с рабочего стола.

Сегодня я потерял 45 минут на этот вопрос. гррррр. Хорошо, теперь мне лучше.


У меня это сработало, и я отредактировал ответ, добавив подробные шаги. Интересно, кто был настолько умен, что проголосовал против этого предложения ...
brainray 06

исправление: это работало для меня, пока Xcode не повредил проект повторно. Мне также пришлось переустановить Xcode ...
brainray 06

1

После безуспешной попытки всех приведенных выше предложений я получил код для компиляции, выполнив следующие действия.

Edit -> Refactor -> Convert to Objective-C ARC

1
rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode

похоже, помогает с Xcode 4.3.2


1

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

  1. Удалите XCode.

  2. Удалите папку пользователя / библиотеки / разработчика / XCode.

  3. Переустановите XCode (возможно, вам стоит запустить это перед поиском папки, загрузка заняла у меня 20 минут).

  4. Запускаем, чистим и строим.

Работал у меня. Сэкономил мне время. Иногда, когда скальпель не работает, самое время заняться топором. Теперь я могу выбрать новый шрифт для кода (это очистит ваши предпочтения)!


Спасибо, что наконец исправили это здесь. Только для других: вы можете определить эту проблему, если появится сообщение об ошибке «ibtool failed with exit code 255».
brainray 06

-1

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



-2

Я просто изменил цель развертывания на 4.0 и разработку на 4.3 с MainStroyboard. Чищу проект; и перезапустил Mac :) Я знаю, это звучит забавно, но перезапуск xcode не помог. может в памяти есть кеш ...

Затем я построил проект; это было хорошо!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.