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