Aplicación de iPhone rechazada debido al uso de la batería y al calor.

Mi aplicación fue rechazada por lo siguiente:

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

Tengo dos suposiciones sobre por qué puede haber sido rechazado:

  1. Mi aplicación es esencialmente una aplicación LED Candle que utiliza un algorithm de parpadeo de vela patentado. Por lo tanto, enciende / apaga el LED muy rápidamente se asemeja a una vela. El uso del LED obviamente va a agotar la batería más rápido que la mayoría de las aplicaciones. Por lo tanto, no la multitud de aplicaciones de "linterna LED" en el mercado.
  2. Tengo código que hace loops recursivos y un código de bucle como este podría estar matando la batería?

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

    ¿La creación de loops así con un timeTillFlicker alnetworkingedor de 0.0065 Seconds quema la batería? ¿Hay una mejor manera de hacer esto?

De esas dos cosas, ¿crees que es la causa de este rechazo por parte de Apple?

¿Alguien tiene algún consejo para trabajar con comentarios como este?

Cualquier consejo sería muy apreciado. Me siento bastante desalentado de este process de revisión.

En primer lugar, no te desanimes. Una de mis aplicaciones, que ahora tiene más de 1M de usuarios, fue rechazada debido al uso excesivo de la batería. Mi problema era usar GPS (drena la batería como una locura) mucho. Después de descubrirlo, cambié la forma en que lo uso y resolví el problema.

La próxima vez que lo envié para revisión, fue aceptado.

Para averiguar cuál es su problema, puede usar la herramienta de instrumentos.

Puede seguir el tutorial de Apple en este https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringEnergyImpact.html

No soy un experto en entornos mobilees, pero estoy en otros campos donde el performance es aún más importante (sistemas del lado del server).

Realmente no conozco todas las especificaciones para progtwigr funciones dentro de iOS, pero lo que puedo decir es que he visto el uso recursivo de sceduling solo para animaciones en javascript. De lo contrario, se debería usar para diseñar futuros events que deben ocurrir en minutos, horas o días en los que un hilo de venta no tendría sentido. Pero para su escenario (un dispositivo orientado a hilos), voy a build un hilo e implementar un ciclo recursivo. Quizás la progtwigción se administre de tal manera que aumente el consumo de RAM y, por lo tanto, la batería. Estoy seguro de que Apple es consciente del alto consumo de batería que realiza la linterna. Creo que rechazaron porque produjo un punto de acceso en el ram con la progtwigción.