App Extensions и App Groups: как расширение делится данными с приложением?
Суть
App Extension (виджет, Share, Notification Service, клавиатура, App Intents) — отдельный бандл .appex внутри приложения, который работает в своём процессе и запускается обычно системой или другим приложением, а не вашим. У него своя песочница, свой контейнер данных и жёсткий лимит памяти (у виджетов и Notification Service Extension — заметно меньше, чем у приложения). Поэтому Documents основного приложения расширению недоступен.
Общие данные живут в App Group: capability включают в обоих таргетах с одним идентификатором (group.com.example.app), и оба процесса получают общий контейнер файлов, общий UserDefaults и, при настройке, общий Keychain.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep