我的应用因以下内容被拒绝了:
13.2 - Apps that rapidly drain the device's battery or generate excessive heat will be rejected
我有两个猜测,为什么它可能被拒绝了:
我有代码执行递归循环和循环代码这样可能会杀死电池?
NSTimer.scheduledTimerWithTimeInterval(timeTillFlicker, target: self, selector: "candleFlickerLoop", userInfo: nil, repeats: false)
在timeTillFlicker
秒左右0.0065
创建这样的循环会烧坏电池吗?有更好的方法吗?
那么这两件事,你认为苹果拒绝这两件事的原因是什么?
有没有人对这样的反馈有任何建议?
任何建议都将不胜感激。我对此审核流程感到非常沮丧。
更新:由于各种各样的BS被拒绝多次被拒绝,我最终接到Apple的电话,告诉我他们无限期拒绝我的应用程序的真正原因。这是因为我创建了一个使用相机手电筒的应用程序,他们不再接受使用它作为其主要功能的任何应用程序。他们的理由是他们已经提供了第一方手电筒应用程序并且不想要任何其他应用程序,即使我的应用程序确实不是同一个东西。我真的相信这是因为每次打开/关闭后置手电筒都会发生大量内存泄漏。在我的测试中,我能够识别出每次打开/关闭灯光时,它都会消耗内存并且不会自行清理,直到最终应用程序或手机崩溃。我最终放弃了这个应用程序,因为基本上被告知"无论你改变什么,它都永远不会被接受。"
答案 0 :(得分:6)
首先不要气馁。我的一个应用程序现在拥有超过1M的用户,因电池使用过多而被拒绝。我的问题是使用GPS(像疯了一样耗尽电池)。在我弄明白之后,我改变了使用它的方式,并解决了问题。
下次我发送评论时,它被接受了。
为了弄清问题是什么,可以使用仪器工具。
上关注Apple的教程答案 1 :(得分:0)
我不是移动环境专家,但我在性能更为重要的其他领域(服务器端系统)也是如此。
我真的不知道iOS中调度函数的所有规范,但我可以告诉你的是,我已经看到递归仅对javascript中的动画使用sceduling。其他方面应该用于描述即将发生的事件,这些事件必须在几分钟,几小时或几天内发生,其中卖出的线程将毫无意义。但是对于你的场景(一个面向线程的设备),我将为shure构建一个线程并实现一个递归循环。也许调度是以增加内存消耗和电池的方式进行管理的。我很害羞,Apple意识到手电筒的高电量消耗。我认为他们拒绝了因为你在ram上制定了一个热点并进行了安排。