Я согласен с Дэвидом. Встроенное в iOS приложение будильника получает специальную обработку от Apple, чтобы звучать> 30 секунд в фоновом режиме. Кажется, что он использует какой-то частный API, чтобы заставить его звучать дольше, даже если он находится в фоновом режиме или закрыт. Это недоступно для других приложений, созданных за пределами Apple, поэтому даже не пытайтесь конкурировать с ним. Если вы купите все приложения-будильники в App Store (также одобренные Apple) и попробуете их одно за другим, вы увидите, что у них нет встроенного приложения-будильника в самой важной функции будильника: «Звук». в течение длительного времени в любом состоянии приложение находится в активном (фоновом режиме или закрыто) "
Лучшая ставка для имитации фоновой тревоги - использовать UILocalNotification в течение 30 секунд. Если вы действительно хотите разбудить своего тяжелого спящего, по расписанию запустите пять из этих уведомлений с интервалом в шестьдесят секунд или что-то в этом роде в надежде, что они проснутся до того, как закончится пятое уведомление.
Обратите внимание, что с помощью этого метода ваш пользователь, который пропустит сигнал тревоги, получит 5 всплывающих окон на своем экране, когда они проснутся (меньше, если они проснутся во время одного из всплывающих окон тревоги), поэтому они будут тратить свои первые секунды их утреннее закрытие этих всплывающих окон - не лучший пользовательский опыт.
Вывод: приложения-будильники хороши только для переднего плана. Лучшим приложением Alarm, которое будет работать в любом состоянии, является встроенное приложение Clock от Apple.