我的应用被拒绝,因为使用 "prefs:root=" 非 public URL 方案

My app rejected because uses the "prefs:root=" non-public URL scheme

我从 apple 收到以下消息:

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

app-prefs:root=privacy&path=location

在以后提交此应用程序时继续使用或隐藏非public API 可能会导致您的 Apple 开发者帐户被终止,并从 App Store 中删除所有关联的应用程序。

后续步骤

要解决此问题,请修改您的应用以使用 public API 提供相关功能,或使用 "prefs:root" 或 "App-Prefs:root" URL 方案删除相关功能。

我在下面使用:

"App-Prefs:root=Privacy&path=LOCATION"

请问有人知道如何解决这个问题吗?

解决方案是: 你必须删除 prefs:root 非 public url 方案,你可以向用户发出位置警报消息启用。

参见下面的代码示例:-

alert = [UIAlertController alertControllerWithTitle:@"GPS NOT AVAILABLE"  message:@"1. Go to Settings > Privacy > Location Services. \n 2. Make sure that Location Services is on." preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *okay = [UIAlertAction actionWithTitle:@"Okay" style: UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        alert = nil;
    }];
    [alert addAction:okay];
    [alertVC presentViewController:alert animated:YES completion:^{
        alert = nil;
    }];

我已经删除了非public url 方案,它直接重定向到设置或位置。应用这些更改后,苹果批准了我的应用程序。

Apple 的信息非常明确。只有一种打开设置的合法方法,那就是使用 UIApplication.openSettingsURLString.