2013-11-19 2 views
6

У меня есть приложение, которое использует Event Kit для синхронизации некоторых событий с календарем iOS. Это прекрасно работает за одним исключением. Если приложение находится в фоновом режиме/приостановлено, а параметр конфиденциальности для календаря изменен (настройки> конфиденциальность> календарь> мое приложение), приложение выйдет из строя. Это происходит, даже если классы, которые используют EkEventKit, еще не были использованыСбой при работе с iOS 7 при изменении конфиденциальности календаря

Я только запускал его в симуляторе iOS, но доза Xcode не дает много полезной информации только о том, что приложение отправлено SIGKILL.

Может кто-то предложить, что может быть причиной этого и как я мог узнать

+0

К сожалению, SOF преобразовал мой ответ в комментарий, я добавлю свой ответ ниже – jhilgert00

+0

Возможный дубликат [Приложение разбилось на iOS 6, когда пользователь менял разрешения на доступ к контактам] (http://stackoverflow.com/questions/12810638/app-crashed-in-ios-6-when-user-changes-contacts-access-permissions). Это та же проблема, даже если речь идет о разрешениях на контакты. – rmaddy

ответ

12

Это на самом деле не крах, хотя кажется, что путь, когда вы проверяете на устройстве с помощью Xcode. Если вы отключите устройство от своего устройства и сделаете еще одно тестирование, вы заметите, что когда вы вернетесь в свое приложение после изменения настройки конфиденциальности, приложение будет убито, как только изменится параметр конфиденциальности, и он возобновится, когда вы вернетесь к нему.

Я не уверен в симуляторе, но я предполагаю, что это то же самое. (Приложение, которое я разрабатываю, использует Calendar, поэтому я вынужден выполнять все мои тесты на самом устройстве)

+0

Итак, это ожидаемое поведение? Это означает, что я могу удалить некоторые проверки разрешений, которые я вложил в appDidEnterForeground и другие места. – mark

+1

Да, вам по-прежнему нужна хотя бы одна проверка доступа, поэтому вы можете отключить пользовательский интерфейс и сообщить пользователю, как его снова включить. Я бы не подумал, что вам понадобится больше одной проверки, поскольку приложение будет прекращено. Проверка может произойти, когда приложение загружается. – jhilgert00

+2

Да - если вы запустите приложение на устройстве, независимо от отладки или симулятора устройства Xcode, вы увидите, что приложение просто перезапускается, незаметно для пользователя. Убедитесь, что ваше приложение хорошо перезагружается, и оно будет золотым! – leanne

Смежные вопросы