我正在处理单面项目,它具有图像视图,用户可以在其中单击并从照片库中选择图像。我正在使用UIImagePickerController。
我的问题是我没有在plist或其他任何地方添加用户权限。到目前为止,我知道如果你没有添加权限,应用程序崩溃,加上第一次应用程序打开时,对话框出现要求许可但在我的情况下,它不是要求。 我想知道这是怎么可能的,还是苹果公司在新的Xcode或OS中改变了什么?
我正在使用版本9.2(9C40b)并尝试在iPhone 6(真实设备iOS 11.2.6)上运行代码并在不同的模拟器中使用相同的结果,我删除了应用程序并再次运行它,同样没有对话框。
如果Apple在iOS 11中改变了某些内容,我们是否应该添加或不添加权限?对于我们不想问的开发人员来说,这是最好的方式,也不希望应用程序崩溃。
答案 0 :(得分:0)
答案是肯定的,你必须提供说明
必须添加您将要使用的权限的使用说明(来自iOS 11)。
的Apple states您的应用负责隐私敏感数据的所有使用,包括您应用中使用的所有第三方库对此数据的访问。如果您的应用在没有使用说明的情况下尝试访问隐私敏感数据,您的应用就会退出。
如果Info.plist
中未提供权限说明,您将在控制台日志中看到此错误此应用已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。该应用程序的Info.plist必须包含一个NSCameraUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。
如果您尝试提交没有说明的应用程序,那么Apple会拒绝此消息
缺少Info.plist密钥 - 此应用程序尝试在没有使用说明的情况下访问隐私敏感数据。该应用程序的Info.plist必须包含一个NSSpeechRecognitionUsageDescription键,其中包含一个字符串值,向用户解释应用程序如何使用此数据。
要点:
如果您之前未提供使用说明并上传应用,则您的应用会在未经许可的情况下崩溃
如果您没有提供使用说明并且最近尝试提交,那么Apple会拒绝它。