应用因PLA 3.3.1被拒绝,需要保持设备唤醒。

3
我还没有做这个工作很长时间,但这是我第一次遭到应用程序拒绝。以下是拒绝原因:
PLA 3.3.1
您的应用程序未经批准地使用公共API,这不符合苹果开发者计划许可协议的第3.3.1节要求。
具体而言,您的应用程序包含一种保持设备唤醒的机制。请参考附加的截图。
由于无法准确预测API可能会如何修改以及这些修改可能产生的影响,因此Apple不允许在App Store应用中未经批准地使用公共API。
他们附上的屏幕截图显示了我的设置屏幕,在那里我为用户提供了一个选项,可以使应用程序保持设备唤醒。我已经测试过它,它只在应用程序中保持设备唤醒。我并不是自己想出这个想法的。我在其他应用程序中也看到了这个选项。
我没有使用任何非苹果公司的东西来实现这个功能。这是我保持设备唤醒的代码。
    UIApplication.sharedApplication().idleTimerDisabled = keepDeviceAwake

其中 keepDeviceAwake 是一个布尔值(Bool),通过用户设置开关来控制。

我使用的方式有问题吗?还是我对它做的事情有问题?

更具体地说,这个应用程序是一个计数器应用程序。我想如果在计数时不断开启 iDevice 会非常烦人,所以我提供了在应用程序中保持设备开启的选项。


1
你应该上诉决定。确保你解释清楚应用程序预期的使用情况如何证明需要保持屏幕常亮。 - Mark Bessey
如果您能告诉我们您的应用程序需要禁用空闲计时器的哪些功能,那将非常有趣。 - Nicolas Miari
当然。这是一个计数器应用程序。就像酒吧中用来计算顾客数量的那种。它可以用来计算任何东西。我写这个应用程序是为了追踪魔方的解决次数。计算顾客数量只是其中一种可能性,也证明了禁用空闲计时器的有用性。假设你的iPhone设置在一分钟后关闭,但你的顾客每隔几分钟就进来一次。那么你每次都需要打开手机并可能解锁它。很烦人。如果关闭空闲计时器,那么你就不必这样做。 - Scott Kilbourn
检查一下SnoreLab这个应用。他们会一直打开手机运行这个应用,整晚记录声音。屏幕上会显示“尽可能插入”。你可以考虑在你的观点中提出类似的建议,并将其作为吸引力的一部分使用。 - Dan Loughney
我提出了上诉,但最终没有什么改变。他们说这违反了他们的规定,任何包含此功能的应用都会被视为违规,并在未来某个时候被迫进行更改。基本上,他们说,仅仅因为你在其他应用程序中看到过这个功能,并不意味着它是可以接受的,也不应该使用它。我已经将其删除并重新提交了应用程序。我还从付费版本中删除了它。我不想引入一些以后必须被删除的东西。等他们回复后,我们再看看一周左右的情况如何。 - Scott Kilbourn
1个回答

1

idleTimerDisabled 的文档注释如下:

只有在必要时才应设置此属性,并确保在不再需要时将其重置为 NO。大多数应用程序应该让系统在空闲计时器到期时关闭屏幕。这包括音频应用程序。通过适当使用音频会话服务,当屏幕关闭时,播放和录制可以无间断进行。唯一应禁用空闲计时器的应用程序是地图应用程序、游戏或需要在用户交互最小的情况下继续显示内容的程序。

苹果可能认为您的应用程序不符合指南。


我也同意。赋予用户任意保持设备唤醒的权力显然超出了本意。 - matt
就像我说的那样,这个想法不是我发明的。我以前在应用程序中看到过它的实现。 更奇怪的是,我有一个精简版的应用程序和一个付费版。精简版被拒绝了,而付费版刚刚获得批准。完全相同的功能。此外,我的应用程序确实符合这个标准——“当用户交互最小时,应用程序需要继续显示内容”。 - Scott Kilbourn
我并没有说这不是武断和反复无常的。这是苹果公司。即使他们自己也不知道下一步会做什么。但这是他们的球场,你能怎么办呢? - matt
很可能你的付费版和精简版在苹果公司被不同的人/团队审核。其他做同样事情的应用程序之所以能够获得批准,也是同样的道理。这并不公平,因为审核是由人类进行的,而人类的解释会有所不同。运气也是一个因素(即你得到哪个评审员来审核你的应用程序)。 - Nicolas Miari
实际上,可能还有另一个原因。Lite版本是广告支持的。也许苹果认为让设备保持唤醒状态是为了获取更多广告收入。虽然这绝对不是我的意图,但我可以理解他们可能因此而有问题。这就解释了为什么他们拒绝了这个版本,但没有拒绝付费版本。如果这是原因,那么他们本可以在拒绝信中明确说明。我将上诉并看看是否能从他们那里获得更多信息。 - Scott Kilbourn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接