Недавно в рабочем iOS-приложении перестали сохраняться push-уведомления в
CoreData: пользователи не видели историю уведомлений, хотя сами уведомления приходили и отображались на экране телефона корректно.Проблема проявилась где-то после перехода на новый Xcode 16*, что бы это могло быть? 🤔
Выяснилось, что
Notification Service Extension не мог получить доступ к Core Data файлам из-за неправильной настройки Target Membership. Файлы модели данных не были включены в target для extension, поэтому при попытке инициализации Core Data возникала ошибка.Причем раньше все работало отлично, где-то 4-5 релизов назад 😱
✅ Решение оказалось простым - нужно было добавить
Core Data файлы в Target Membership для NotificationService. После этого extension снова смог сохранять уведомления в базу данных.Скорее всего, неправильная настройка
Target Membership возникла при рефакторинге проекта или добавлении новых файлов, а может быть и вовсе при переходе с "групп" на "папки" 🙈Xcode иногда не добавляет автоматически файлы в нужные targets, особенно при работе с `extension`'ами, которые имеют отдельную конфигурацию.⚠️ Важно всегда проверять
Target Membership при добавлении новых файлов в проект, особенно если они используются в нескольких таргетах.