Как обмениваться пользовательскими данными между приложениями iPhone?
Если я создаю два приложения для iPhone, как я могу/должен совместно использовать пользовательские данные (а не такие контакты и т.д.)?
Спасибо!
Ответы
Ответ 1
Есть два разных способа сделать это.
1) Данные, которые необходимо предоставить, не являются постоянными. Другими словами, вам нужно запустить одно приложение с куском данных, с которым он может что-то сделать. В этом случае вы должны зарегистрировать специальную схему URL-адресов для каждого приложения.
Более подробную информацию о схемах URL можно найти через Craig Hockenberry в своем сообщении [redacted].
2) Данные, которые необходимо предоставить, являются постоянными. Другими словами, вам нужно что-то вроде файла данных, который оба приложения могут читать и писать. Насколько я знаю, нет надежного способа сделать это, кроме хранения ваших данных на удаленном сервере. Если вам нужны данные, доступные без подключения к данным, вам необходимо выяснить способ синхронизации данных между отдельными приложениями и удаленным сервером.
Ответ 2
В дополнение к тому, что уже упоминалось, документация на iPhone по поводу подписи кода подразумевает, что приложения, подписанные с одинаковым идентификатором, могут обращаться к тем же элементам Keychain. Если вам нужно хранить относительно небольшие объемы данных (пароли и т.д.), Это может быть полезной техникой.
Ответ 3
Приложения могут совместно использовать каталог контейнера в iCloud.
Из Документ Apple по настройке ваших прав iCloud:
Поле iCloud Containers идентифицирует список контейнеров каталоги, которые ваше приложение может получить в хранилище iCloud для пользователей. (Это поле соответствует com.apple.developer.ubiquity-container-identifiers.) строки, которые вы добавляете в этот список, должны соответствовать идентификаторам пакетов для приложений, созданных вашей командой. Xcode использует текущий пакет приложений идентификатор для указания первой строки; вы можете изменить это на различный идентификатор пакета, если вы хотите, чтобы несколько приложений могли контейнер. Вы также можете добавить дополнительные идентификаторы пакетов для ваших команд другие приложения.
Ответ 4
Dan Grisby последний мобильный подкаст для мобильных телефонов предполагает, что вы также можете использовать пользовательские буфера обмена для обмена информацией между приложениями. Я понимаю, что это более старая должность, но я подумал, что я хотел бы указать на это, потому что это высоко оценивает результаты Google.:)
(Документация также предполагает, что NSUserDefaults
может быть полезен здесь, но я читал в другом месте, что на самом деле не так.)
Ответ 5
Я могу подумать, что записывает и читает из адресной книги, используя API, сохраняя данные в доступных полях ( + Преобразование NSData для изображения пользователя, возможно). Редактирование: я успешно реализовал преобразование NSData и сохранение объектов внутри изображения на дисплее контакта, что делает их недоступными для редактирования из приложения контактов.