Icloud Sync между двумя приложениями, имеющими другой идентификатор приложения - PullRequest
1 голос
/ 22 марта 2012

У меня есть приложение, которое имеет разные идентификаторы приложений для iphone и ipad, и я хочу синхронизировать их оба с помощью icloud. Возможно ли использовать разные идентификаторы приложений для одного контейнера в icloud.

1 Ответ

4 голосов
/ 27 марта 2012

Да, можно синхронизировать данные между различными приложениями с помощью iCloud (разные приложения всегда имеют разные идентификаторы приложений, не так ли?).Используйте права ваших приложений, чтобы указать, к каким контейнерам они должны иметь доступ.Затем используйте общий контейнер для хранения и синхронизации ваших файлов.

Обновление от 30.10.2013 по запросу Динеша Каушика:

  • Откройте ваш проект вXcode и выберите проект в ProjectNavigator
  • Перейдите в «Возможности» Нажмите (Xcode 5) проекта и найдите раздел iCloud (должен быть справа вверху)
  • Здесь вы можетеукажите все контейнеры Ubiquity, к которым приложение должно иметь доступ.
  • Для обмена данными между приложениями им необходим общий контейнер Ubiquity.Таким образом, добавьте хотя бы один Ubiquity Container, который используется всеми участвующими приложениями.Самый простой способ использовать только один Ubiquity-контейнер (конечно, одинаковый в каждом приложении)
  • Когда " подключает " к iCloud, вы используете следующий код для получения URL-адреса Ubiquity:

    NSURL * cloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: nil];

  • Использование nil в качестве идентификатора вернет URL-адрес контейнера Ubiquity по умолчанию.Используйте конкретный идентификатор, чтобы получить URL-адрес другого контейнера Ubiquity.

Контейнер Ubiquity - это просто папка на вашем устройстве.Служба iCloud будет наблюдать за этой папкой и передавать все изменения в ту же папку на других устройствах.

Из моего опыта есть одно золотое правило об iCloud:

НЕ ИСПОЛЬЗУЙТЕ ЕГО!

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

iCloud может подойти для простого KeyValueStore, но все остальное - беспорядок.Не трать свое время.Вместо этого используйте другой облачный сервис, например Dropbox.

...