我的应用被拒绝,因为使用了“ prefs:root =“非公共URL方案

时间:2018-11-01 08:11:10

标签: xcode cocoapods itunesconnect ios10 appstore-approval

我从苹果收到以下消息:

您的应用程序使用“ prefs:root =“非公开URL方案,这是一个私有实体。在App Store上不允许使用非公共API,因为如果这些API发生更改,可能会导致不良的用户体验。

app-prefs:root = privacy&path = location

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

后续步骤

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

我在下面使用

“ App-Prefs:root = Privacy&path = LOCATION”

请问有人可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

Apple的信息很清楚。打开设置只有一种合法方法,那就是使用UIApplication.openSettingsURLString

答案 1 :(得分:0)

解决方法是::您必须删除prefs:root非公共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;
    }];

我删除了直接重定向到设置或位置的非公开网址方案。应用这些更改后,苹果批准了我的应用。