Изменение идентификатора пакета приложения Dev iPhone - сохранить основной хранилище данных?

StackOverflow https://stackoverflow.com/questions/3114011

  •  29-09-2019
  •  | 
  •  

Вопрос

Мне нужно изменить идентификатор пакета приложения моего iPhone, прежде чем я смогу загрузить его в магазин приложений. Тем не менее, у меня также есть данные в моем основном хранилище данных, которые хотят продолжать использовать даже после того, как я изменяю идентификатор пакета. Тем не менее, кажется, что идентификатор пакета - это то, как iPhone знает, идентичны ли приложения друг с другом, поэтому я получаю две отдельные копии приложения - с двумя различными основными хранилищами данных - на моем телефоне! Я знаю, что я могу загрузить хранилище данных SQLite через организатор Xcode, как я могу убедиться, что мои данные передают новое пакет приложений с новым идентификатором пакета?

Это было полезно?

Решение

За некоторыми исключениями для OS4 каждое приложение (идентифицированное IT's BI) имеет свое собственное изолированное хранилище на телефоне. Если вам действительно нужно это изменить (также отключите бесплатные обновления для покупателей «старой версии»), вы должны найти внешний миграционный способ.

Многие приложения предлагают какую -то «резервную копию» (на ПК / Mac или что -то еще). Что мы сделали для клиента, так это создание веб -сайта, который позволяет «хранение данных короткого времени». Так что старое приложение может загружать данные - и новое загружает их. Конечно, это означает обновление вашего старого приложения сначала для «экспорта».

Но идея «ваше приложение живет в своем собственном изолированном мире» также означает, что у вас нет доступа к данным других приложений. С точки зрения безопасности, это необходимо и хорошо. Для создания «приложений», где приложения хотят обмениваться данными, это плохо. Но яблоки сделали усовершенствования для этого в OS4, что (я думаю) не поможет вам в вашем случае, поскольку «обмен приложениями» также должны быть специальными.

Другие советы

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

Если вы еще не выпустили свое приложение в App Store и хотите изменить свой идентификатор пакета, можно скопировать свой магазин Coredata из одной песочницей на другую, используя организатор Xcode, как указано выше. Очевидно, это полезно только для вашего собственного устройства (которое, я думаю, является тем, что хотел сделать оригинальный плакат); Этот процесс не позволит передавать данные на устройствах других пользователей, если они купили ваше приложение, поэтому не меняйте идентификатор пакета после выпуска вашего приложения.

Во -первых, запустите старое приложение (которое со старым идентификатором пакета) на вашем устройстве. В организаторе Xcode выберите устройство, затем приложения, затем выберите приложение (со старым идентификатором) и загрузите данные на ваш Mac.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top