2016-02-02 45 views
5

我的應用程序得到駁回了以下內容:iPhone應用因電池使用和發熱而被拒絕。

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

我有兩個猜測,爲什麼它可能已被拒絕:

  1. 我的應用程序本質上是一個LED蠟燭應用程序,它採用了專有的蠟燭閃爍算法。所以它很快就會打開/關閉LED,很快就像蠟燭一樣。 LED的使用顯然會比大多數應用程序更快耗盡電池。所以市場上不會有大量的「LED手電筒」應用程序。
  2. 我有代碼,這樣做遞歸循環和循環代碼可能會殺死電池?

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

    是否有timeTillFlicker左右0.0065秒創造這樣的循環燃燒電池下來?有一個更好的方法嗎?

那麼,這兩件事情,你認爲這是蘋果拒絕的原因嗎?

有沒有人有任何建議,通過這樣的反饋工作?

任何意見將不勝感激。我感到很沮喪從這個審查過程。

回答

6

首先不要氣餒。我的一個應用程序現在擁有超過1M的用戶,因爲電池使用率過高而被拒絕。我的問題是使用GPS(像瘋了一樣消耗電池)很多。在我想出來之後,我改變了使用方式,並解決了問題。

下一次我把它發送到審查,它被接受。

爲了弄清楚你的問題是什麼,你可以使用儀器工具。

你可以按照蘋果的教程就這一個https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringEnergyImpact.html

+0

感謝您的建議。我運行了這個工具,發現在這個循環過程中,我的能量影響在零和低之間搖擺不定,儘管右邊的「衝擊」#開始在70%(紅色),慢慢地下降。我確實注意到內存每秒1 MB或更新間隔用於診斷工具。我註釋掉了代碼行,直到它停止,它看起來像是Torch API調用,這導致了我的問題'device.setTorchModeOnWithLevel(newBrightness)'。當這些被註釋掉時,內存消耗就會消失。有什麼建議? – Corey

0

我不是一個移動環境專家,但我是那麼在其他領域在性能是更重要的(服務器端系統)。

我真的不知道iOS內部調度功能的所有規格,但我可以告訴你的是我見過遞歸僅在動畫中使用sceduling。應該使用其他途徑來展示即將發生的事件,這些事件必須在幾分鐘,幾小時或幾天內發生,其中線程將毫無意義。但對於你的場景(一個面向線程的設備),我會爲了舒爾構建一個線程並實現一個遞歸循環。也許調度是以增加內存消耗和電池的方式進行管理的。我很確定蘋果是意識到手電筒耗電量過高的原因。我認爲他們拒絕了,因爲你製作了一個熱點在公羊與調度。

相關問題