Ответ 1
-
Удалить приложение на симуляторе.
-
чистый
-
Элемент списка
-
Построить и запустить
Используйте NSLog(@"")
в вашем контроллере для проверки выполнения кода.
У меня есть рабочее приложение в Xcode
, однако, когда я пытаюсь его собрать и запустить, симулятор отображает старую версию раскадровки, над которой я работал. Я изменил часть дизайна раскадровки, но это не отражается на симуляторе, ничего не обновляется.
У кого-нибудь есть какие-либо идеи?
Удалить приложение на симуляторе.
чистый
Элемент списка
Построить и запустить
Используйте NSLog(@"")
в вашем контроллере для проверки выполнения кода.
Я просто потратил как минимум 6 часов на это. У меня есть решение, но я также отправил в службу технической поддержки Apple, чтобы попытаться получить больше информации о причине и правильном решении.
Просто удалите ссылки на файлы раскадровки и добавьте их обратно в ту же группу файлов.
Кажется, это включает файлы раскадровки обратно в комплект приложения, сгенерированный во время сборки (что можно увидеть в
DerivedData/APPNAME/Build/Products/Debug-iphonesimultator/APPNAME.app
Отсюда я вижу, как мои изменения отражены в раскадровках, как и ожидалось.
PS - Вы используете локализацию вообще? Я был.
Я потерял 2 часа.
Решение было простым: удалить приложение, отключить iPhone 5S (iOS 7.1.1) и включить его в bavk.
Когда вы включаете локализацию, xcode перемещает файл раскадровки в папку локализации (например, Base.lproj/name.storyboard). Когда вы создаете и запускаете проект на симуляторе, xcode copy name.storyboard в "производныйData" /Base.lproj/name.storyboard, но предыдущий, созданный до локализации "производныйData" /name.storyboard все еще существует. В этом случае симулятор использует файл, который можно найти легче, например, для работы симулятора используется старый файл "производнаяData" /name.storyboard.
Решение: Просто переименуйте файл раскадровки, в навигатор и цели/общие.
Эта ошибка произошла со мной в первый раз, когда у меня было несколько копий проекта на моем компьютере. По какой-то причине тот факт, что было несколько экземпляров, делало это так, как будто раскадровка не обновлялась между копиями, а в некоторых случаях код не обновлялся. Я думал, что забыл бросить правильную копию на флешку перед тем, как отправиться домой, но это оказалось ошибкой XCode.
Удалите несколько копий с использованием одного и того же имени, перезапустите XCode и откройте самую последнюю копию. Чрезвычайно странно, но теперь я, вероятно, буду использовать BitBucket или GitHub вместо того, чтобы бросать его на флешку.
Раскадровка на симуляторе была тем, чем она должна была быть. Раскадровка на устройстве не будет обновляться. Мне пришлось удалить приложение с iPhone, а затем повторно запустить его на устройстве, чтобы обновить раскадровку на устройстве. К счастью для меня это были только тестовые данные, но я использовал Auto-Layout на одном представлении и вернулся к руководству. Я думаю, что это послужило причиной для меня.
Я нахожу, что удаление и добавление файла раскадровки обратно не работает в моем случае, также имеет побочные эффекты, так как он автоматически добавит основную запись nib в файл plist приложения (что впоследствии заставляет приложение не запускаться в симуляторе iPhone).
Я не хочу пытаться удалить приложение с симулятора, так как у меня много файлов в каталоге Document приложения.
Наконец, я нахожу другой способ, который хорошо работает: просто удалите файл "/Users/$username/Library/Application Support/iPhone Simulator/7.1/Applications/$app/$yourapp.app". Файлы в папке "Документы" не затронуты.
(Я также локализовал свою раскадровку.)
Я обнаружил, что это произошло с Xcode 6.1.1, если мне удалось скопировать проект; новый проект, запущенный в симуляторе, на самом деле все еще отражает старый, оригинальный проект.
В моем случае проблема заключалась в том, как была настроена область по умолчанию для производных данных (по существу, место, где бинарные файлы идут для сборки). Шахта была установлена на устаревание, и симулятор использовал неправильный проект даже после чистого. Решение состояло в том, чтобы перейти в Preferences- > Locations, нажать Advanced и изменить местоположение от Legacy до Unique.
Я получаю это тоже при использовании локализованных раскадровки - Выполнить в Xcode просто отказывается устанавливать последнюю версию скомпилированной раскадровки. Я думаю, что это связано с тем, как Run копирует измененные ресурсы на устройство - это делает это иначе, чем другие формы установки устройства.
Самый быстрый способ преодолеть этот без удаления приложения и потери данных:
Чтобы iTunes увидела, что у вас есть новая версия, ваше приложение номер сборки нужно будет увеличивать (если вы этого не сделаете) перед созданием архива.
Я нахожу, что этот метод означает, что вам не нужно удалять приложение с устройства, вы просто вынуждаете его устанавливать весь пакет установки, а не diff, что я считаю Запуск делает.
Я не уверен, что вызывает это, если это локализованная ошибка ресурсов или что, но это все еще проблема в Xcode 7 для меня.
Удаление
~/Library/Developer/Xcode/derivedData/
работал на меня!