iPhone 应用因电池用量和热量而被拒绝

iPhone app rejected due to battery usage and heat

我的应用因以下原因被拒绝:

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

关于为什么它可能被拒绝,我有两个猜测:

  1. 我的应用程序本质上是一个 LED 蜡烛应用程序,它使用专有的蜡烛闪烁算法。所以它 on/off LED 很快变成了蜡烛。使用 LED 显然会比大多数应用程序更快地耗尽电池电量。市场上的大量 "LED Flashlight" 应用程序也不会如此。
  2. 我有执行递归循环的代码,像这样的循环代码可能会耗尽电池电量?

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

    像这样用 timeTillFlicker 0.0065 秒创建循环会耗尽电池吗?有更好的方法吗?

那么在这两件事中,你认为哪一个是苹果拒绝的原因?

有人对处理这样的反馈有什么建议吗?

如有任何建议,我们将不胜感激。我对这个审查过程感到非常沮丧。

更新:在因为各种不同的原因多次被拒绝后,我最终接到了 Apple 的 phone 电话,告诉我他们无限期拒绝我的应用程序的真正原因。这是因为我创建了一个使用相机手电筒的应用程序,他们不再接受任何将其作为主要功能的应用程序。他们的理由是他们已经提供了第一方手电筒应用程序并且不需要任何其他应用程序,即使我的应用程序真的不是一回事。我真的相信这是因为每次打开 on/off 后手电筒时都会发生大量内存泄漏。在我的测试中,我能够确定每次打开 on/off 灯时,它都会消耗内存并且不会自行清理,直到最终应用程序或 phone 崩溃。由于基本上被告知 "It will never be accepted regardless of what you change."

,我最终放弃了这个应用程序

首先不要气馁。我的一个应用程序,现在有超过 100 万用户,由于电池使用过多而被拒绝。我的问题是经常使用 GPS(疯狂地耗尽电池)。弄明白后,我改变了使用方式,问题就解决了。

下次送审,被录用了

为了弄清楚你的问题是什么,你可以使用 instruments 工具。

您可以按照 Apple 的教程进行此操作 https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/MeasuringEnergyImpact.html

我不是移动环境专家,但我在性能更为重要的其他领域(服务器端系统)也是如此。

我真的不知道 iOS 中调度函数的所有规范,但我可以告诉你的是,我只看到 递归 使用调度javascript 中的动画。其他方式应该用于安排即将发生的事件,这些事件必须在几分钟、几小时或几天内发生,而销售 thread 将毫无意义。但是对于您的场景(面向线程的设备),我将确保构建一个线程并实现一个递归循环。也许调度的管理方式会增加内存消耗,从而增加电池电量。我敢肯定,Apple 意识到手电筒的高电池消耗。我认为他们拒绝了,因为你在带有调度的 ram 上生成了 hotspot