2016-02-02 13 views
5

mia app ottenuto respinto per i seguenti:L'app per iPhone è stata rifiutata a causa dell'uso della batteria e del calore.

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

ho due ipotesi sul motivo per cui potrebbe essere stato respinto:

  1. La mia app è essenzialmente un'applicazione della candela del LED che usa una candela sfarfallio proprietaria algoritmo. Quindi accende e spegne il LED molto rapidamente come una candela. L'utilizzo del LED ovviamente esaurirà la batteria più velocemente di quanto farebbe la maggior parte delle app. Quindi non sarebbe la moltitudine di app "LED Flashlight" sul mercato.
  2. Ho un codice che fa loop ricorsivi e un codice di loop come questo potrebbe uccidere la batteria?

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

    Does creazione di loop come questo con un timeTillFlicker intorno 0.0065 secondi bruciare la batteria verso il basso? C'è un modo migliore per farlo?

Quindi, tra queste due cose, pensi che sia la causa di questo rifiuto da parte di Apple?

Qualcuno ha qualche consiglio su come lavorare attraverso feedback come questo?

Qualsiasi consiglio sarebbe molto apprezzato. Mi sento piuttosto scoraggiato da questo processo di revisione.

risposta

6

Prima di tutto non sentirsi scoraggiati. Una delle mie applicazioni, che ha più di 1 milione di utenti, è stata rifiutata a causa dell'uso eccessivo della batteria. Il mio problema era usare il GPS (scarica la batteria come un matto) molto. Dopo averlo capito, ho cambiato il modo in cui lo uso e ho risolto il problema.

La prossima volta che l'ho inviato per la revisione, è stato accettato.

Per capire qual è il tuo problema, puoi utilizzare lo strumento strumenti.

è possibile seguire il tutorial di Apple su questo https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringEnergyImpact.html

+0

Grazie per il vostro consiglio. Ho eseguito lo strumento e ho scoperto che durante il ciclo il mio impatto energetico oscilla tra zero e basso, anche se "Impact" # a destra inizia al 70% (RED) e lentamente procede lentamente verso il basso. Ho notato che la memoria funziona fino a 1 MB per 1 secondo o qualunque sia l'intervallo di aggiornamento per lo strumento di diagnostica.Ho commentato le righe di codice fino a quando non si è fermato e sembra che siano le chiamate all'API di Torch a causare problemi a 'device.setTorchModeOnWithLevel (newBrightness)'. Quando questi vengono commentati, il consumo di memoria scompare. Qualche consiglio? – Corey

0

Io non sono un esperto di ambiente mobile, ma io sono così in altri settori in cui le prestazioni sono più importanti (sistemi server-side) anche.

io davvero non so tutte le specifiche per funzioni di pianificazione all'interno iOS, ma quello che posso dirvi è che ho visto ricorsiva uso di sceduling solo per le animazioni in JavaScript. In alternativa dovrebbe essere utilizzato per scandire gli eventi imminenti che devono verificarsi in minuti, ore o giorni in cui una thread sellping non avrebbe senso. Ma per il tuo scenario (un dispositivo orientato ai thread), per shure, costruisco un thread e implemento un ciclo ricorsivo. Forse la programmazione è gestita in modo tale da aumentare il consumo del ram e quindi la batteria. Sono sicuro che Apple sia consapevole dello scarso consumo della batteria che la torcia esegue. Penso che abbiano rifiutato perché hai prodotto un hotspot sulla ram con la programmazione.

Problemi correlati