Как передать документ между двумя приложениями на одном устройстве iOS?

У меня есть приложение для iPhone, которое некоторые мои пользователи работают на iPad в режиме эмуляции. Мы также думаем о создании iPad-оптимизированного приложения, которое будет отдельным приложением в App Store (больше функций, отличная цена).

Проблема заключается в следующем: если пользователь запускает приложение iPhone на iPad, а затем покупает нашу оптимизированную для iPad версию, как они могут перенести свои данные из iPhone-приложения и в новое приложение для iPad?

Вот несколько альтернатив, которые я рассмотрел:

  • Как рекомендовано в других вопросах SO, защищенная цепочка ключей. Проблема в том, что это позволяет передавать только небольшой фрагмент данных. Наши пользователи, вероятно, будут иметь десятки мегабайт данных.
  • Регистрация схем URI (также предложенная в других вопросах SO, также, по-видимому, предназначена для очень небольших объемов данных).
  • Пусть пользователь загружает данные из приложения iPhone только в службу, например Dropbox или box.net, а затем из версии iPad загружает эти данные снова. Преимущество заключается в том, что эти службы имеют очень простые API-интерфейсы; недостатком является то, что пользователю может потребоваться создать дополнительную учетную запись и/или загрузить другое приложение, чтобы переместить данные.
  • Создайте документ iCloud. Никакой регистрации не требуется, но настройка хранилища iCloud - это, мягко говоря, нетривиальный

Существуют ли другие варианты передачи десятков мегабайт данных между двумя приложениями на одном устройстве.

Ответ 1

Вы можете использовать UIDocumentInteractionController, чтобы пользователь мог открыть документ в любом приложении на устройстве, у которого была зарегистрирована поддержка типа документа.

Это все равно сделает копию документа в песочнице iPad app. Там не обойти это.

Ответ 3

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

Это может быть так же просто, как кнопка "перейти на iPad", которая затем предложит пользователю создать временное имя пользователя и пароль, а затем передать данные в базу данных SQL. Затем на стороне iPad все, что вам нужно сделать, это синхронизация данных, аутентификация и загрузка. База данных может быть очищена от данных, превышающих 10 дней, чтобы сохранить свой размер от роста.