Группы приложений Обмен данными между приложениями iOS

Предположим, что у меня есть следующий идентификатор приложения com.test.product1, который относится к product1 и предлагает идентификатор группы group.com.test.product1.

Я должен поделиться документом с другим продуктом, имеющим com.test.product2, который относится к product2 и предлагает groupid group.com.test.product2.

Как я могу использовать общую группу, например group.com.test.product, между всеми этими приложениями?


person raghul    schedule 29.04.2015    source источник
comment
Вы работаете над интеграцией расширений в ваше приложение?   -  person Nimit Parekh    schedule 29.04.2015
comment
мне просто нужно поделиться некоторыми данными между списком продуктов моих компаний   -  person raghul    schedule 29.04.2015


Ответы (2)


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

Если вы пытаетесь сохранить свои собственные классы, вам может понадобиться посмотреть что-то вроде NSKeyedArchiver и NSCoding (можно посмотреть здесь).

Если вы можете найти способ использовать встроенные типы, вы можете использовать группы приложений следующим образом:

Обмен данными NSUserDefaults между несколькими приложениями

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

  1. В Project Navigator щелкните файл *.xcodeproj (должен быть вверху).
  2. Справа от навигатора проектов найдите Project и Targets. В разделе «Цели» нажмите на свою основную цель (должна быть первой в разделе «Цели»).
  3. В верхней части щелкните вкладку «Возможности».
  4. В разделе «Группы приложений» щелкните переключатель справа, чтобы включить группы приложений.
  5. Нажмите кнопку + и добавьте группу приложений с именем group.com.company.myApp.
  6. Перейдите в то же место в других ваших приложениях, и теперь эта группа должна быть доступна для выбора. Включите эту группу для каждого приложения, которое будет использовать эти общие данные.

Примечание. Если вы перейдете на портал Apple Developer Portal (веб-сайт Apple, на котором показаны все ваши сертификаты, идентификаторы, устройства и профили подготовки) и выберите «Идентификаторы» > «Группы приложений», вы должны увидеть эту новую группу приложений.

Чтобы сохранить данные:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
userDefaults!.setObject("user12345", forKey: "userId")
userDefaults!.synchronize()

Чтобы получить данные:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
if let testUserId = userDefaults?.objectForKey("userId") as? String {
  print("User Id: \(testUserId)")
}
person TenaciousJay    schedule 29.10.2015

Группы приложений предназначены для совместного использования пакета, который может использоваться приложением и его расширениями в качестве общего контейнера, где вы можете хранить общие данные:

Взгляните на Основные данные: обмен данными между приложениями и их виджеты.

person loretoparisi    schedule 26.09.2015