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

Раскадровка не будет обновляться в симуляторе

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

У кого-нибудь есть какие-либо идеи?

4b9b3361

Ответ 1

  1. Удалить приложение на симуляторе.

  2. чистый

  3. Элемент списка

  4. Построить и запустить

Используйте NSLog(@"") в вашем контроллере для проверки выполнения кода.

Ответ 2

Я просто потратил как минимум 6 часов на это. У меня есть решение, но я также отправил в службу технической поддержки Apple, чтобы попытаться получить больше информации о причине и правильном решении.

Просто удалите ссылки на файлы раскадровки и добавьте их обратно в ту же группу файлов.

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

DerivedData/APPNAME/Build/Products/Debug-iphonesimultator/APPNAME.app 

Отсюда я вижу, как мои изменения отражены в раскадровках, как и ожидалось.

PS - Вы используете локализацию вообще? Я был.

Ответ 3

Я потерял 2 часа.

Решение было простым: удалить приложение, отключить iPhone 5S (iOS 7.1.1) и включить его в bavk.

Ответ 4

Когда вы включаете локализацию, xcode перемещает файл раскадровки в папку локализации (например, Base.lproj/name.storyboard). Когда вы создаете и запускаете проект на симуляторе, xcode copy name.storyboard в "производныйData" /Base.lproj/name.storyboard, но предыдущий, созданный до локализации "производныйData" /name.storyboard все еще существует. В этом случае симулятор использует файл, который можно найти легче, например, для работы симулятора используется старый файл "производнаяData" /name.storyboard.

Решение: Просто переименуйте файл раскадровки, в навигатор и цели/общие.

Ответ 5

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

Удалите несколько копий с использованием одного и того же имени, перезапустите XCode и откройте самую последнюю копию. Чрезвычайно странно, но теперь я, вероятно, буду использовать BitBucket или GitHub вместо того, чтобы бросать его на флешку.

Ответ 6

Раскадровка на симуляторе была тем, чем она должна была быть. Раскадровка на устройстве не будет обновляться. Мне пришлось удалить приложение с iPhone, а затем повторно запустить его на устройстве, чтобы обновить раскадровку на устройстве. К счастью для меня это были только тестовые данные, но я использовал Auto-Layout на одном представлении и вернулся к руководству. Я думаю, что это послужило причиной для меня.

Ответ 7

Я нахожу, что удаление и добавление файла раскадровки обратно не работает в моем случае, также имеет побочные эффекты, так как он автоматически добавит основную запись nib в файл plist приложения (что впоследствии заставляет приложение не запускаться в симуляторе iPhone).

Я не хочу пытаться удалить приложение с симулятора, так как у меня много файлов в каталоге Document приложения.

Наконец, я нахожу другой способ, который хорошо работает: просто удалите файл "/Users/$username/Library/Application Support/iPhone Simulator/7.1/Applications/$app/$yourapp.app". Файлы в папке "Документы" не затронуты.

(Я также локализовал свою раскадровку.)

Ответ 8

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

В моем случае проблема заключалась в том, как была настроена область по умолчанию для производных данных (по существу, место, где бинарные файлы идут для сборки). Шахта была установлена ​​на устаревание, и симулятор использовал неправильный проект даже после чистого. Решение состояло в том, чтобы перейти в Preferences- > Locations, нажать Advanced и изменить местоположение от Legacy до Unique.

Ответ 9

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

Самый быстрый способ преодолеть этот без удаления приложения и потери данных:

  • Создать Архив в Xcode
  • Экспортировать это для развертывания Adhoc
  • Дважды щелкните по созданному IPA, чтобы добавить его в iTunes
  • На странице устройства в iTunes добавьте обновление к этому приложению

Чтобы iTunes увидела, что у вас есть новая версия, ваше приложение номер сборки нужно будет увеличивать (если вы этого не сделаете) перед созданием архива.

Я нахожу, что этот метод означает, что вам не нужно удалять приложение с устройства, вы просто вынуждаете его устанавливать весь пакет установки, а не diff, что я считаю Запуск делает.

Я не уверен, что вызывает это, если это локализованная ошибка ресурсов или что, но это все еще проблема в Xcode 7 для меня.

Ответ 10

Удаление

~/Library/Developer/Xcode/derivedData/

работал на меня!