【问题标题】:Is it considered a private API to use App-prefs:root?使用 App-prefs:root 是否被视为私有 API?
【发布时间】:2018-09-04 09:13:42
【问题描述】:

在我的应用程序中,我使用[NSURL URLWithString:@"App-Prefs:root=Privacy&path=LOCATION"] 打开设置屏幕。它会被苹果拒绝,因为根据某些消息来源这被认为是私有 API?

【问题讨论】:

    标签: ios url-scheme iphone-privateapi


    【解决方案1】:

    是的。打开设置的唯一合法方式是使用UIApplicationOpenSettingsURLString

    【讨论】:

    • 但这会打开应用程序设置,而不是 iPhone 上的“常规”设置。
    • 是的。没有官方方法可以打开常规设置而不冒被拒绝的风险。
    【解决方案2】:

    我的应用因此被拒绝,所以是的,它被视为私有 API :)

    这是来自 Apple 的拒绝通知:

    您的应用使用“prefs:root=”非公共 URL 方案,这是一个私有实体。 App Store 不允许使用非公共 API,因为如果这些 API 发生变化,可能会导致糟糕的用户体验。

    【讨论】:

    • 您的拒绝说明指的是prefs:root,而不是App-Pref:root=。您的代码是否真的使用了问题中提出的相同 URL 前缀,或者它是否使用了这个略有不同的 URL 前缀,并且您怀疑拒绝对两者都适用?
    • @davidgyoung 在拒绝说明中,Apple 实际上明确表示不要在其分辨率建议中使用这两者中的任何一个。因此,使用任何一种都可能会导致您的应用被拒绝
    • 我在我的应用程序中有这个“prefs:root=”(现在已经在 App Store 中批准了将近 2 年,但是昨天当我尝试上传一个新版本时,应用程序被拒绝了有同样的通知。
    • 如果我继续使用 prefs:root....,Apple 甚至威胁要终止我的帐户?!我也不知道它是一个私有API,我以为它是链接到设置应用程序中特定页面的官方方式......
    • @rhcpfan 我正在使用“App-prefs:(bundleIdentifier)”打开一个应用程序的设置,他可以在其中启用或禁用该应用程序的推送通知,Apple 会拒绝我的应用程序吗?我的应用基本上提供了为任何应用启用禁用通知的快捷方式。
    【解决方案3】:

    要解决此问题,如果您要导航到设置 > 隐私“只需删除该代码”并添加一个简单的警报,显示启用位置服务。

    因为从 iOS 10 苹果认为它是私有实体。所以你不能通过它。

    【讨论】:

      【解决方案4】:

      没有支持打开设置到 Wi-Fi/语言/位置“页面”的方式。这在 iOS 9 中有效的事实是 iOS 10 中修复的一个错误。

      更多信息请参考https://forums.developer.apple.com/message/186656#186656

      【讨论】:

        猜你喜欢
        • 2014-09-19
        • 2021-07-09
        • 2010-11-26
        • 2012-04-19
        • 1970-01-01
        相关资源
        最近更新 更多