为什么第一次启动应用程序时会要求用户访问照片权限?

Why user will be asked for access photo permission when first launch app?

当应用首次 运行 时,它会请求访问照片的权限!

这是什么原因?

一种方法是运行逐行代码或另一种方法是将代码恢复到以前的版本。

并找出从哪个版本开始,应用程序变成了首次启动请求权限。

以前,当我们进入select照片屏幕时,我们会编写代码来请求权限。

我也尝试添加符号断点,例如:

-[UIAlertView initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:]

甚至找到 class 转储 UIAlertView header 以添加符号断点但不起作用。添加 UIAlertController 断点也不起作用。

模拟器OS是8.3。每次我都必须重置内容和设置才能重现问题。

任何提示或好主意将不胜感激!

从 iOS6 开始,Apple 现在要求应用程序在访问通讯录、日历、提醒事项和照片之前获得明确的用户许可。来自 Apple iOS 6 发行说明的 "Data Privacy" 部分: 除了位置数据,系统现在在允许第三方应用程序访问某些用户数据之前会征求用户的许可,包括:

  • 联系人
  • 日历
  • 提醒
  • 图片库

对于联系人、日历和提醒数据,您的应用需要准备好拒绝访问这些项目并相应地调整其行为。如果尚未提示用户允许访问,则返回的结构有效但不包含任何记录。如果用户拒绝访问,应用程序将收到 NULL 值或没有数据。如果用户授予该应用程序权限,系统随后会通知该应用程序它需要重新加载或还原数据。

最后,我发现下面的代码导致iOS系统弹出"Allow our App to access their photo gallery"对话框。感谢 Vijay 的回答。

[[PHPhotoLibrary sharedPhotoLibrary] registerChangeObserver:self];