Я начинаю исследовать расширения iOS 8 и вижу, что группы приложений — это механизм, предоставляемый для передачи данных между хост-приложением и расширением. Этот обмен данными может быть выполнен с помощью NSUserDefaults, плоских файлов и основных данных. Когда вы настраиваете группу приложений, на устройстве/симуляторе создается новый каталог, который находится за пределами изолированной программной среды приложения. Доступ к этому каталогу можно получить из основного приложения и расширения, и может показаться, что другие приложения из той же учетной записи/команды также могут получить доступ к этому каталогу.
Учитывая все это, я хотел бы знать, каков жизненный цикл общего каталога группы приложений и его содержимого. Мне не удалось найти документацию Apple, объясняющую это. Некоторое эмпирическое тестирование на симуляторе показало, что, когда установлено более одного приложения, обращающегося к группе приложений, каталог удаляется, когда удаляется последнее приложение, имеющее право на эту группу приложений. Это то, что я ожидал увидеть. Хотелось бы подтверждения, что это так. Кроме того, есть ли потенциал для очистки этого места системой в условиях низкого уровня диска?
Я пытаюсь определить, «безопасно» ли хранить основную базу данных ядра моего приложения в этом расположении группы приложений или вместо этого мне следует делать копии данных там. Я не хочу, чтобы моя основная база данных была неожиданно уничтожена системой.
Кроме того, какова цель каталогов групп приложений? Должны ли они использоваться для обмена данными только с расширениями или они предназначены в качестве общего механизма обмена данными между приложениями из одной учетной записи/команды разработчика?