Это нормально для Apple, чтобы отклонить приложение для использования UIApplication для отключения блокировки экрана?
Я только что отклонил приложение, потому что у меня есть изменяемая пользователем настройка, которая позволяет пользователю отключить блокировку экрана через
[UIApplication sharedApplication].idleTimerDisabled = YES;
Apple говорит, что я использовал недокументированный API, но он действительно задокументирован здесь: https://developer.apple.com/library/ios/documentation/uikit/reference/UIApplication_Class/index.html
Мое приложение отображает барометрическое давление, и если вы хотите, чтобы график работал дольше, чем через минуту или две, важно отключить блокировку экрана. Поведение по умолчанию - блокировка экрана, как обычно, но в настройках есть возможность отключить блокировку экрана, и Apple, похоже, столкнулась с этим. У меня были академические пользователи, запрашивающие эту функцию, и я успешно использовал ее в других приложениях, однако на этот раз Apple отклонила мое приложение за использование этой функции. Это нормально? Действительно ли теперь разрешено отключение блокировки экрана через UIApplication?
2 ответа
Я не уверен, но думаю, что проблема заключается в том примечании под важным заголовком с документацией, которой вы поделились;
"Вы должны устанавливать это свойство только в случае необходимости и обязательно должны сбросить его на НЕТ, когда в этом больше нет необходимости. Большинство приложений должны позволять системе выключать экран, когда истекает таймер простоя..."
Вы должны написать в центр разрешения и подтвердить это;
Мы используем эту возможность для предотвращения простоя во время обновления прошивки на устройстве BlueTooth. Сразу после завершения обновления мы восстанавливаем время простоя. Apple никогда не говорила нам об этом.
Однако в вашем случае нет технической причины отключать таймер простоя. Сбор данных не завершится сбоем, потому что система бездействовала. Не будет никакого неблагоприятного или необычного потребительского опыта, который будет иметься. Это, вероятно, то, что Apple взяла исключение.
Существуют три возможных пути:
1) Собирайте свои данные через определенные промежутки времени в фоновом режиме, пока система не используется, и обновляйте график, когда приложение снова выходит на передний план.
2) Добавьте обмен сообщениями в ваше приложение, чтобы сообщить пользователю, что если он хочет непрерывного отображения, ему нужно будет изменить период простоя в системных настройках. (С предупреждениями о влиянии на продолжительность заряда батареи.)
3) Изложите свое дело в Apple.
Я хотел бы пойти на 1 и 2