Новое приложение для iPhone как обновление старого приложения, тот же идентификатор пакета, Xcode выдает ошибку - PullRequest
12 голосов
/ 19 декабря 2010

В настоящее время у меня есть приложение в App Store и на моем устройстве, названное, ради этого поста, MyApp1, с идентификатором пакета com.myname.myapp.

За последние пару недель я переписывал все приложение с нуля, также добавляя множество новых функций, как новый проект Xcode наряду со старым. Что касается iTunes Connect и iOS, тем не менее, это должно быть обновление для старого (версии) приложения.

Во время тестирования у меня на устройстве и в симуляторе работали оба приложения вместе с новым приложением, использующим идентификатор пакета com.myname.myapp2, и все работало нормально.

Но теперь, когда приложение завершено, я хочу, чтобы оно перезаписало / обновило старое приложение на моем устройстве и в симуляторе, чтобы увидеть, работает ли код, импортирующий данные из старого приложения, как ожидалось. Итак, я изменил идентификатор пакета нового приложения в Info.plist на com.myname.myapp и выбрал Build and Debug в Xcode. Но вместо того, чтобы новое приложение перезаписывало старое приложение, все еще используя ту же папку Documents, чтобы оно могло импортировать старые данные, как я и ожидал, я получил ошибку.

Вот что я делаю и что случилось:

  • Симулятор: Reset cache
  • Xcode для MyApp1: Clean All Targets
  • Xcode для MyApp1: Build and Run (с использованием конфигурации Release)
  • MyApp1: измените некоторые данные NSUserDefaults с помощью приложения, изменения, которые впоследствии должны быть импортированы MyApp2, который использует другую модель данных
  • Xcode для MyApp1: Stop
  • Xcode для MyApp2: Clean All Targets
  • Xcode для MyApp2: Build and Run (с использованием конфигурации Release)

Что происходит, если следующая ошибка появляется 3 раза, каждый раз для разных классов в консоли MyApp2:

Unknown class [class referenced in the MyApp1 MainWindow.xib file] in Interface Builder file.

Похоже, почему-то не все файлы перезаписаны, так как ошибка вызвана загрузкой MainWindow.xib старой версии.

(Относительно неинтересный кадр стека: http://cl.ly/1F1w1J1u3t1C2U2o2D2C)

Может кто-нибудь знает, как я могу заставить эту работу работать, как я могу заставить принципиально новое приложение перезаписать старое на моем устройстве и в симуляторе, чтобы оно все равно использовало одну и ту же папку «Документы»?

Заранее спасибо!


То, что я уже пробовал, как предлагали другие, но не помогло:

  • Перезапуск Xcode
  • Перезагрузка компьютера
  • Удаление папки build из папки проекта Xcode
  • Touch ing MainWindow.xib

1 Ответ

3 голосов
/ 19 декабря 2010

Загрузите папку «Документы» старого приложения на свой Mac с помощью окна организатора Xcode. Затем полностью удалите старое приложение, установите новое. Наконец, восстановите резервную копию папки «Документы» с помощью Xcode Organizer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...