图像选择器视图不会崩溃,甚至不会要求用户权限,为什么以及如何使用?

时间:2018-03-18 13:14:13

标签: uiimagepickercontroller ios11 xcode9 user-permissions info.plist

我正在处理单面项目,它具有图像视图,用户可以在其中单击并从照片库中选择图像。我正在使用UIImagePickerController。

我的问题是我没有在plist或其他任何地方添加用户权限。到目前为止,我知道如果你没有添加权限,应用程序崩溃,加上第一次应用程序打开时,对话框出现要求许可但在我的情况下,它不是要求。 我想知道这是怎么可能的,还是苹果公司在新的Xcode或OS中改变了什么?

我正在使用版本9.2(9C40b)并尝试在iPhone 6(真实设备iOS 11.2.6)上运行代码并在不同的模拟器中使用相同的结果,我删除了应用程序并再次运行它,同样没有对话框。

如果Apple在iOS 11中改变了某些内容,我们是否应该添加或不添加权限?对于我们不想问的开发人员来说,这是最好的方式,也不希望应用程序崩溃。

1 个答案:

答案 0 :(得分:0)

答案是肯定的,你必须提供说明

必须添加您将要使用的权限的使用说明(来自iOS 11)。

的Apple states
  

您的应用负责隐私敏感数据的所有使用,包括您应用中使用的所有第三方库对此数据的访问。如果您的应用在没有使用说明的情况下尝试访问隐私敏感数据,您的应用就会退出。

如果Info.plist

中未提供权限说明,您将在控制台日志中看到此错误
  

此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。该应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。

如果您尝试提交没有说明的应用程序,那么Apple会拒绝此消息

  

缺少Info.plist密钥 - 此应用程序尝试在没有使用说明的情况下访问隐私敏感数据。该应用程序的Info.plist必须包含一个NSSpeechRecognitionUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。

要点:

如果您之前未提供使用说明并上传应用,则您的应用会在未经许可的情况下崩溃

如果您没有提供使用说明并且最近尝试提交,那么Apple会拒绝它。

参考: Privacy Settings in iOS 10