对于测试,我试图重新创建系统的“请求访问”弹出体验。PHPhotoLibrary请求授权,不请求
更新:
在iOS 11下,删除应用程序后,系统弹出窗口将再次显示。
(前面的问题)
第一次应用程序运行(与仅时间),系统弹出显示,请求访问。之后,甚至不删除应用程序,重新启动设备将再次触发该弹出窗口。
换句话说,设备'记住'用户请求,并且无法重置它。
下面的代码:
[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
switch (status) {
case PHAuthorizationStatusAuthorized:
NSLog(@"PHAuthorizationStatusAuthorized");
break;
case PHAuthorizationStatusDenied:
NSLog(@"PHAuthorizationStatusDenied");
break;
case PHAuthorizationStatusNotDetermined:
NSLog(@"PHAuthorizationStatusNotDetermined");
break;
case PHAuthorizationStatusRestricted:
NSLog(@"PHAuthorizationStatusRestricted");
break;
}
}];
当访问是关闭的设置,它让印刷 “PHAuthorizationStatusDenied”。但不出现任何弹出。立即返回。
有人建议给plist添加'Bundle display name'。尝试它没有用,价值为空,$(PRODUCT_NAME)和不同的字符串。
已清理的项目,删除了DrivedData(并且每次从模拟器中删除应用程序)。没有运气。
更多信息:
苹果示例代码“SamplePhotosApp”,一旦你关闭的设置照片访问崩溃。
请在这里看看我的答案: http://stackoverflow.com/questions/26595343/determine-if-the-access-to-photo-library-is-set-or-not-ios-8/38395022#38395022 –
从链接的答案中,解决方法是更改包标识符。似乎问题仍然存在;也就是说,一旦写入了应用程序的软件包ID,就无法“重置”其应用程序的软件包ID,因为缺少完整的设备重置。当然,在模拟器上,删除设备会做到这一点。 – bauerMusic