Совместное использование хранилища данных между приложениями iPhone - PullRequest
4 голосов
/ 11 января 2010

Можно ли совместно использовать основное хранилище данных между двумя разными приложениями iPhone, подписанными одним и тем же разработчиком? Я хотел бы разработать приложение, в котором одно приложение для iPhone будет сохранять поток данных, который затем может быть прочитан другим приложением. Это вообще возможно? Большое спасибо!

Ответы [ 5 ]

5 голосов
/ 11 января 2010

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

Edit:

После прочтения ответов здесь: Да, возможны пользовательские URL. И да, с ним можно передавать данные, но я, по-моему, не рекомендую эту процедуру для передачи более 5 КБ данных. Нет отказоустойчивости: нет транзакций и нет отношений.

3 голосов
/ 18 февраля 2012

Теперь в iOS 5 с iCloud вы можете зарегистрировать оба приложения с одним и тем же URL-адресом iCloud. При инициализации второго приложения основное хранилище данных первого более или менее копируется во второе приложение. Это может занять некоторое время --- поэтому вам нужно запустить постоянный контроллер хранилища в фоновом потоке, иначе ваше приложение будет убито сторожевым таймером.

Однако есть несколько предостережений.

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

  • впоследствии эти приложения, похоже, не синхронизируются, в отличие от одного и того же приложения на двух разных iDevices.

Отладка представляет собой небольшую боль, поскольку требуется 10–20 секунд, прежде чем изменение с одного iDevice передается другому, и, очевидно, на неопределенный срок, прежде чем изменение из одного приложения в том же iDevice переходит в другое приложение, зарегистрированное в тот же URL-адрес iCloud.

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

2 голосов
/ 11 января 2010

Это можно сделать с помощью пользовательской схемы URL на iphone с некоторыми оговорками.

Если вы используете пользовательскую схему URL, только одно приложение «владеет» данными. Другое приложение должно было бы импортировать данные из основного приложения ... Mobile Orchard написал статью об этом для перемещения данных из облегченного приложения в платное приложение

http://www.mobileorchard.com/lite-to-paid-iphone-application-data-migrations-with-custom-url-handlers/

Но недавно я наткнулся на лицензированную библиотеку MIT под названием «SwapKit», которая может точно делать то, что вы хотите ... Звучит неплохо из обзора на их сайте, хотя я не пробовал :

http://infinite -labs.net / swapkit /

и это может или не может быть никакой помощи, но проверьте "SpyPhone" тоже:

SpyPhone показывает вид данных, мошенническое приложение может собирать в не взломанный iPhone.

http://github.com/nst/SpyPhone

1 голос
/ 11 января 2010

Также есть системный монтажный картон (я думаю, это NSPasteboard или что-то еще, сейчас нет времени проверять), который по сути является буфером обмена. Я думаю , что вы можете положить что-то на него, а затем запустить другое приложение с URL-адресом, который говорит другому приложению проверить монтажную панель.

1 голос
/ 11 января 2010

Вы можете использовать собственную схему URL для отправки данных во второе приложение.

-t

...