iOS应用程序构建被拒绝:-位置权限模式警报说明

时间:2018-11-15 07:25:16

标签: ios swift core-location

enter image description here当设备中的位置关闭时,将显示此对话框。由于此对话,我的应用程序被拒绝了,其中没有任何关于应用程序为何需要位置的描述。

我已经在info.plist中添加了有关位置使用描述的所有键。但是它并没有占用描述。此对话未由我们的应用处理,也不知道它的显示位置。

欢迎大家提供帮助,以防止在此处出现说明。预先感谢

enter image description here

3 个答案:

答案 0 :(得分:2)

这是一个iOS对话框(那是一个相当糟糕的对话框;所有单词都不应该大写)。

我建议您提出拒绝的理由,并解释说这是您无法控制的iOS对话框;

如果禁用了位置服务,Apple Maps将显示完全相同的对话框

答案 1 :(得分:0)

使用这些键添加此说明

@animals

Apple疯狂修改了许多许可。如果您要求提供NSLocationAlwaysUsageDescription。您仍然需要对NSLocationWhenInUseUsageDescription进行描述。

答案 2 :(得分:0)

几天前我们的应用程序也发生了这种情况,其中我们的应用程序由于您提到的类似原因而被拒绝。该消息不能是通用消息。因此,您可以显示一个自定义屏幕,在该屏幕上可以提及需要“位置”权限的确切原因,然后显示此弹出窗口。

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>
<key>NSLocationAlwaysUsageDescription</key>
    <string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>MyApp uses your location to provide the list of products serviceable at your location and for better recommendation</string>

编辑:

在您的应用中的某些地方,您可能正在使用带有警报控制器的自定义消息

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:title message:**your custom message** preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *allowAction = [UIAlertAction actionWithTitle:@"Settings" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    }];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
        for (void(^ completion)(NSNumber * __nonnull status) in self.callbacks) {
            completion(@(kCLAuthorizationStatusDenied));
        }
    }];
    [alertController addAction:cancelAction];
    [alertController addAction:allowAction];

    [someViewController presentViewController:alertController animated:animated completion:nil];