2016-02-02 2 views
5

Моего приложения получило отклонено следующее:Приложение iPhone отклонено из-за использования батареи и тепла.

13.2 - Apps that rapidly drain the device's battery or generate excessive heat will be rejected 

У меня есть два предположения относительно того, почему это может быть отклонено:

  1. Моего приложение по сути является приложение светодиодных свеч, которая использует собственные свечи мерцать алгоритм. Таким образом, он включает/выключает светодиод, очень быстро напоминающий свечу. Использование светодиода, очевидно, будет истощать батарею быстрее, чем большинство приложений. Так было бы не множество «светодиодных фонариков» приложений на рынке.
  2. У меня есть код, который выполняет рекурсивные циклы и код цикла, как это могло бы убить батарею?

    NSTimer.scheduledTimerWithTimeInterval(timeTillFlicker, target: self, selector: "candleFlickerLoop", userInfo: nil, repeats: false)

    ли создание петли, как это с timeTillFlicker вокруг 0.0065 секунд сжечь батарею? Есть лучший способ сделать это?

Знаете ли вы, что эти две вещи являются причиной этого отказа от яблока?

Есть ли у кого-нибудь советы по работе с такими отзывами?

Любые советы были бы весьма полезными. Я чувствую себя довольно обескураженным из этого процесса обзора.

ответ

6

Прежде всего, не чувствуйте себя обескураженным. Одно из моих приложений, которое теперь имеет более 1M пользователей, отклонено из-за чрезмерного использования батареи. Моя проблема заключалась в использовании GPS (дренажных батарей, таких как сумасшедший). После того, как я понял это, я изменил способ, которым я его использую, и решил проблему.

В следующий раз, когда я отправил его для проверки, оно было принято.

Чтобы выяснить, в чем проблема, вы можете использовать инструмент инструментов.

Вы можете следить за учебник от Apple на этом одном https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringEnergyImpact.html

+0

Спасибо за ваш совет. Я запустил инструмент и обнаружил, что во время цикла мой энергетический удар колеблется между нулем и низким, хотя «Эффект» # справа начинается с 70% (КРАСНЫЙ) и медленно работает, это идет вниз. Я заметил, что память работает до 1 МБ за 1 секунду или независимо от интервала обновления для инструмента диагностики.Я прокомментировал строки кода, пока он не остановится, и похоже, что это вызовы API Torch, которые вызывают у меня проблемы 'device.setTorchModeOnWithLevel (newBrightness)'. Когда они закомментированы, потребление памяти уходит. Любой совет? – Corey

0

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

Я действительно не знаю всех спецификаций для функций планирования внутри iOS, но то, что я могу вам сказать, это то, что я видел рекурсивный использование scuduling только для анимации в javascript. В противном случае следует использовать для расчёта предстоящих событий, которые должны произойти в минутах, часах или днях, когда ничто не может быть продано ничьей . Но для вашего сценария (ориентированного на поток устройства) я буду использовать shure для создания потока и реализации рекурсивного цикла. Возможно, планирование управляется таким образом, чтобы увеличить расход плунжера и, следовательно, батарею. Я уверен, что Apple осознает, что батарея эффективно разряжена. Я думаю, что они отказались, потому что вы создали hotspot на баране с расписанием.