检查隐私 - 照片库添加使用说明仅在 iOS

Checking for Privacy - Photo Library Additions Usage Description only in iOS

我的应用程序只需要 plist 文件中的 'Privacy - Photo Library Additions Usage Description' 属性(应用程序写入照片库,但不读取)。

我使用这段代码来检查权限:

PHPhotoLibrary.requestAuthorization { status in

            if status == .authorized {
                print("Permission granted")
            } else {
                print("Unavailable")
            }

        }

在我的应用程序的iOS设置中,即使plist只需要'Add Photos Only',也列出了'Read and Write'(??),上面的代码只获得授权status if 'Read and Write' 被勾选(勾选 'Add Photos Only' 只会导致上面的代码进入 else 语句)。

我有点困惑为什么 'Read & Write' 甚至被列为我的应用程序的设置,而我的 plist 不包括 "Privacy - Photo Library Usage Description"。

有什么想法吗?

那是因为你打电话给PHPhotoLibrary.requestAuthorization.

如果您只需要盲目地写入用户的相机胶卷,请不要调用PHPhotoLibrary.requestAuthorization。继续写吧,例如通过调用 UIImageWriteToSavedPhotosAlbum 或 UISaveVideoAtPathToSavedPhotosAlbum。运行时将代表您请求授权。

但如果您想与照片库本身进行交互,即通过照片框架,那么您需要授权并在“隐私 - 照片库使用说明”下输入一个条目,即使您打算做的只是写入。


从您的评论来看,您可能对 requestAuthorization 的作用感到困惑。它试图获得许可。如果您只想知道当前的授权状态实际上是什么,请改为调用authorizationStatus

然而,即便如此,我们谈论的是照片库本身,因此在设置中称为读写的值。

如果您想知道您是否有权执行 UIImageWriteToSavedPhotosAlbum 或 UISaveVideoAtPathToSavedPhotosAlbum,请继续调用它。如果存在权限问题,您会在完成处理程序中听到。