對於測試,我試圖重新創建系統的「請求訪問」彈出體驗。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