На самом деле можно воспроизводить пользовательский звук в локальном уведомлении, которого нет в основном комплекте приложения (NSBundle).
Звук должен храниться в каталоге Library/Sounds
, например:
/var/mobile/Containers/Data/Application/DD7E6BA0-2FC0-4DE0-95BF-C2E9C9A94E08/Library/Sounds/mySound.caf
Когда вы ссылаетесь на звуковой файл в свойстве UILocalNotification soundName
, вы просто пишете имя файла, а не полный путь к каталогу:
alert.soundName = @"mySound.caf";
Протестировано и работает на iOS9.3.5. Я еще не пробовал на других версиях iOS.
Сноска:
Мне довелось найти эту информацию при поиске в документации Apple, касающейся удаленных уведомлений Здесь - В частности, в разделе «Ключи полезной нагрузки», где упоминается звук.
В документации Apple для локальных и удаленных уведомлений ( Здесь ) также упоминается, что звуковые файлы можно использовать, если они находятся в основном комплекте приложения ИЛИ в контейнере данных:
Чтобы воспроизвести звук, назначьте звук свойству soundName. Вы можете назначить имя файла нелокализованного пользовательского звука в основном комплекте приложения (или контейнере данных) или назначить UILocalNotificationDefaultSoundName, чтобы получить системный звук по умолчанию. Звук всегда должен сопровождать отображение предупреждающего сообщения или значок значка; звук не должен воспроизводиться при отсутствии других типов уведомлений.