我可以使用“com.apple.springboard.lockcomplete”通知吗?

我试图找到设备锁定状态,因为UIApplicationState在锁定设备时给出了错误的状态,它给UIApplicationStateActive几秒钟。

我找到了一个使用Darwin通知的解决方案来通知“com.apple.springboard.lockcomplete”。

这是获得锁定状态的正确方法吗? Apple会允许吗?

没有Apple不允许使用“com.apple.springboard.lockcomplete”。我的应用程序因此被拒绝。

答案是……这取决于。

不允许使用非公共API,并且这些Darwin通知不会公开记录。 所以官方答案是否定的,您不能在生产代码中使用此通知。 否则,您可能会从Apple收到这封令人不快的电子邮件:

您的应用使用或引用以下非公共API:com.apple.springboard.lockcomplete

另一方面,我已经使用了4年的通知,直到我从App Store拒绝了我的一个应用程序。 我的另一个应用程序仍然使用它没有问题。 因此,如果您真的需要它并且您认为它值得冒风险,您可以尝试一下。

Apple不允许这样做。这里有评论“App Store上不允许使用非公共API,因为如果这些API发生变化,可能会导致糟糕的用户体验。

在将来提交此应用程序时继续使用或隐藏非公共API可能会导致Apple Developer帐户终止,以及从App Store中删除所有相关应用程序。“