ios - 照片库权限 - 为什么我的应用程序没有显示在“设置”应用程序中? (iOS 12.1 Xcode 10.1)

标签 ios swift permissions settings phphotolibrary

我的应用程序未显示在 iPhone 的“设置”应用程序中(物理设备和模拟器上都有类似问题)。我使用的是 Xcode 10.1 和 iOS 12.1。

它需要将照片保存到用户的照片库中,因此我在 info.plist 中添加了右键(如下所列),但我从未收到照片库权限提示。

NSAppleMusicUsageDescription
NSCameraUsageDescription
NSMicrophoneUsageDescription
NSPhotoLibraryAddUsageDescription
NSPhotoLibraryUsageDescription

(我认为其中一些根本不需要,但添加它们仍然没有解决任何问题)。

我尝试强制打开“设置”应用程序,如下所示。这将打开“设置”应用程序,但我正在开发的应用程序没有出现在那里。

guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
      print("Couldn't load settingsURL")
      return
}

if UIApplication.shared.canOpenURL(settingsUrl) {
      UIApplication.shared.open(settingsUrl, completionHandler: { (success) in
                            print("Settings opened: \(success)")
      })
}

因此,当我尝试将图像写入照片库时,我无法调试权限,并且应用程序继续崩溃。

欢迎任何建议。

最佳答案

已解决:我认为该应用程序仅在第一次请求权限后才出现在“设置”中。

使用这段代码解决了这个问题。

PHPhotoLibrary.requestAuthorization { (status) in
    print("Status: \(status)")
}

在我调用一次之后,该应用程序在“设置”中正确显示,并且将图像保存到磁盘时不再崩溃。

关于ios - 照片库权限 - 为什么我的应用程序没有显示在“设置”应用程序中? (iOS 12.1 Xcode 10.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53303836/

相关文章:

ios - UITableView 第一次不显示,只有在滚动时才显示

ios - 如何在将 xib 文件添加到 ViewController 时从右边开始动画

iphone - 在 UIScrollView 上滚动时调用重新加载数据

ios - 获取大标题导航栏的默认收缩高度和展开高度

permissions - DocumentDB 用户权限 - 按分区键?

c - O_RDWR 权限被拒绝

ios - UITableview 委托(delegate)方法未执行

ios - SwiftUI - 可重用组件,链接到其他 View 作为参数

swift - 更新 xcode fatal error : unexpectedly found nil while unwrapping an Optional value 后

audio - 如何询问浏览器是否允许音频设备,然后允许视频?