PHPhotoLibrary.requestAuthorization() 在 iOS 9 上不触发授权提示

2024-03-22

我有以下功能,显示带有两个不同选项的操作表。目前,唯一实施的选项是标题为“照片”的选项。正确呈现操作表并调用正确的操作。我的问题是,在模拟器和实际设备上,我无法显示请求访问照片库的提示。

PHPhotoLibrary.authorizationStatus() returns .Denied and presents the modal informing the current app does not have access to the photos: enter image description here

@IBAction func attachPhotoButtonTapped(sender: AnyObject) {
    let actionSheetController = UIAlertController(title: "Images", message: "Select image source...", preferredStyle: .ActionSheet)
    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) {
        (action) in
        // ...
    }
    actionSheetController.addAction(cancelAction)

    let takePictureAction = UIAlertAction(title: "Camera", style: .Default) {
        (action) in
        // ...
    }
    actionSheetController.addAction(takePictureAction)

    let choosePictureAction = UIAlertAction(title: "Photos", style: .Default) {
        (action) in
        PHPhotoLibrary.requestAuthorization({(status:PHAuthorizationStatus) in
            switch status{
                case .Authorized:
                    dispatch_async(dispatch_get_main_queue(), {
                        print("Authorized")
                    })
                    break
                case .Denied:
                    dispatch_async(dispatch_get_main_queue(), {
                        print("Denied")
                    })
                    break
                default:
                    dispatch_async(dispatch_get_main_queue(), {
                        print("Default")
                    })
                    break
            }
        })
    }
    actionSheetController.addAction(choosePictureAction)

    presentViewController(actionSheetController, animated: true, completion: nil)
}

我已经“清理”了项目并重置了模拟器设置,但仍然没有收到显示的提示。


发生这种情况是因为CFBundleDisplayNameInfo.plist 文件中的 key 值为空,并且无法构建提示访问照片库权限的警报消息。添加以下行,清理项目并再次构建可以修复问题:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDisplayName</key>
    <string>$(PRODUCT_NAME)</string>
    <!-- More keys and values -->
</dict>
</plist>

谢谢弗拉基米尔·戈尔本科 https://stackoverflow.com/users/5055952/vladimir-gorbenko帮助我解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHPhotoLibrary.requestAuthorization() 在 iOS 9 上不触发授权提示 的相关文章

  • Carthage 更新错误:“GitHub API 请求失败:凭据错误”

    这是我的购物车文件 Kanna HTML parsing library github tid kijyun Kanna gt 1 0 0 Realm database ORM github realm realm cocoa 当我跑步时c
  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • Xcode 6.4 Swift 单元测试无法编译:“GPUImage.h 未找到”“无法导入桥接标头”

    我的 Xcode 项目构建并运行良好 它有 Swift 和 Objective C 代码 它已安装 GPUImage 我向它添加了单元测试 现在它将不再编译 找不到 GPUImage h 文件 导入桥接标头失败 以下是我发现并尝试过的解决方
  • 使用 iPhone 控制蓝牙音频设备

    我正在寻找为 iPhone 编写应用程序 它将能够控制汽车中的收音机和 CD 播放器 收音机和播放器具有可用的蓝牙连接 我开始这个问题是为了获得这个地方所需的所有信息 我有几个问题 但如果您发现任何我没有要求的对我开始开发此应用程序不重要的
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • 如何使用存储在 Cocoa Touch 框架中的 Localized.strings?

    我想为 CocoaTouch 框架添加多语言支持 问题 可本地化的字符串我创建的文件仅被使用NSLocalizedString当它是主应用程序及其目标的一部分时 我想将其存储在框架内以将事物分开 我怎样才能使用可本地化的字符串当放置在 Co
  • Cordova iOS 启动画面

    我无法让闪屏停留在页面加载之前 我已经阅读了谷歌搜索第一页 第二页和第三页中的所有条目 我阅读了 stackoverflow 上发布的所有问题 包括一个很好的解释 https stackoverflow com questions 1800
  • React Native ios运行问题

    我是反应本机和运行新手yarn ios我的 React Native 项目不断失败并出现以下错误 构建失败 以下构建命令失败 编译C Users gift Library Developer Xcode DerivedData gainer
  • 如何在 Safari 上打开本地 html 文件?

    我想打开本地 html 文件Safari集成到我的Swift 3应用 我知道如何使用网址来做到这一点 这是我用来执行此操作的代码 let encodedString url addingPercentEncoding withAllowed
  • 通过应用程序组在应用程序之间通信和保存数据

    iOS 8 昨天发布了一个有关应用程序组的新 API 以前在应用程序之间共享数据和通信有点混乱 我相信这正是应用程序组旨在纠正的问题 在我的应用程序中 我启用了应用程序组并添加了一个新组 但我找不到任何有关如何使用它的文档 文档和 API
  • Cordova Phonegap“导出失败”错误代码 70 构建 ios 时

    我目前正在使用 Cordova Phonegap 构建 iOS 应用程序 本来工作正常 但现在运行时出现错误cordova build ios在终端中 我收到以下错误 导出失败 错误 命令的错误代码 70 带有参数的 xcodebuild
  • 如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展?

    我正在 iOS 8 beta 上开发一个自定义键盘 我想告诉用户如果我的自定义键盘未启用 如何在包含应用程序中启用它 有什么方法可以检测应用程序扩展是否已启用 首先让我们设置一些常量 以便于彼此理解 包含应用程序 安装扩展并保存扩展二进制文
  • 如何将数据从一个视图传递到下一个视图?

    我正在制作一个下载排队系统来下载视频 处理下载的排队代码位于另一个视图控制器中 现在我的问题是如何将下载的 URL 传递到另一个视图而不推送到另一个视图控制器 如下所示 ViewConntroller View ViewConntrolle
  • 无法识别的选择器调用静态 iOS 库中的类别方法

    我正在使用一些第三方软件来帮助使用 Xcode 4 3 2 编写 iPad 应用程序 该软件是开源的 通常经过设置 因此其代码将与开发人员为应用程序编写的任何代码一起编译 因为我在很多地方使用该软件 所以我决定将其构建为 iOS 模拟器的静
  • 尝试注册 RCTBridgeModule 类 RCTFileReaderModule

    尝试为名称 FileReaderModule 注册 RCTBridgeModule 类 RCTFileReaderModule 但该名称已由类 FileReaderModule 注册 尝试使用命令react native run ios在i
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • 调用了 numberOfRowsInSection 但未调用 cellForRowAtIndexPath

    在我的表视图中节中的行数被调用两次但是cellForRowAtIndexPath不叫 我想在 tableView 中显示 Facebook 好友列表 如果 cellForRowAtIndexPath 调用我的问题就解决了 我在这里的数组中得
  • 弱变量中间为零

    弱变量什么时候变为零 weak var backgroundNode SKSpriteNode texture SKTexture image initialBackgroundImage backgroundNode position C
  • 防止点击 MKAnnotation 时检测到 MKMapView 上的触摸事件

    我有一个 UITapGestureRecognizer 当用户点击地图时 它将在我的 MKMap 上隐藏和显示工具栏 简单 但是 当用户点击 MKMapAnnotation 时 我不希望地图以正常方式响应点击 如上所述 此外 当用户点击地图
  • 未捕获的 Kotlin 异常:kotlin.native.In CorrectDereferenceException:非法尝试访问非共享

    我尝试使用 Kotlin MPP Multiplatform 开发 Android 和 iOS 之间的共享库 但我面临着 iOS 中线程的问题 对于我在 iOS 中的应用程序 我在主线程中建立了对象 但它可能调用其他线程中的函数并抛出此异常

随机推荐

  • 提高 pandas groupby 的性能

    我有一个用 Python 编写的机器学习应用程序 其中包括数据处理步骤 当我编写它时 我最初在 Pandas DataFrames 上进行数据处理 但是当这导致性能糟糕时 我最终使用普通 Python 重写了它 用 for 循环代替矢量化操
  • 获取错误的毫秒延迟值

    我试图获得 1 毫秒的延迟 但延迟增加了 15 倍 我也尝试过使用 WindowsSleep 1 函数也给了我相同的结果 为什么我没有得到精确的毫秒延迟 它的工作延迟为 1 秒 include
  • 表行的 jQuery 条件选择器

    我有一个表 其中包含数据 td item td td order code td td price td 我正在使用 jQuery 处理该表 它需要查找订单代码 each productList tbody tr function var
  • #pragma 末尾的隐式屏障

    朋友们 我正在尝试学习 openMP 范例 我使用以下代码来理解 omp for pragma int main void int tid int i omp set num threads 5 pragma omp parallel pr
  • SceneKit 在与 Swift 接触后获取纹理坐标

    我想在 3D SceneKit 场景中操作 2D 纹理 因此我使用此代码来获取本地坐标 IBAction func tap sender UITapGestureRecognizer var arr NSArray my3dView hit
  • Javascript - 获取两个日期之间的日期数组

    var range getDates new Date new Date addDays 7 我希望 范围 是一组日期对象 一个代表两个日期之间的每一天 诀窍在于它还应该处理月份和年份的边界 Date prototype addDays f
  • .Net core DI 范围验证,范围与瞬态?

    正在阅读docs https learn microsoft com en us aspnet core fundamentals dependency injection view aspnetcore 2 2 scope validat
  • Mongoose 中的“__v”字段是什么

    我在用着Mongoose版本 3 与MongoDB2 2 版 我注意到一个 v字段已开始出现在我的MongoDB文件 这与版本控制有关吗 它是如何使用的 From here http mongoosejs com docs guide ht
  • 如何将字符串解析为 Haskell 中的函数?

    我想要一个看起来像这样的函数 readFunc String gt Float gt Float 它的操作是这样的 gt readFunc sin pi 2 gt 1 0 gt readFunc 2 3 0 gt 5 0 gt readFu
  • IE 地址栏和源代码中出现奇怪的字符串

    这可能是也可能不是编程问题 但我网站的一两个用户的地址栏中插入了一些奇怪的字符串 地址应该是 http URL 情侣 http URL Couple文件夹 page aspx 但有时同样的事情会变成 http 网址 http URL X 1
  • Python 模块类型输入

    我正在使用动态加载Python模块importlib import module如下 def load module mod name str gt return importlib import module mod name 有人可以告
  • 比较 MAC OSX 中 Bash 中的两个日期

    我是 Bash 新手 提前道歉 Set up 我有一个特定的结束日期end这取决于特定的开始日期s和周期长度p这样 end s p Problem 当且仅当今天的日期早于或等于结束日期时 我想执行命令 即 执行命令iffdate end C
  • 将自定义字符串转换为日期时间格式

    我有一个日期时间数据字符串列表 如下所示 list 2016 08 02T09 20 32 456Z 2016 07 03T09 22 35 129Z 我想将其转换为示例格式 对于第一项 8 2 2016 9 20 32 AM 我试过这个
  • 以编程方式格式化谷歌图表

    使用以下代码如何设置格式以便CurrencyValue1和CurrencyValue2在图表中显示为美元 作为货币值 function drawChart var data new google visualization DataTabl
  • 在 PictureBox 上绘制折线

    我想在以下位置绘制折线 由一条或多条线段组成的连续线 PictureBox 在这里 我们可以通过指定每个线段的端点来创建多条线 并计算每个线段的距离 即每条线的距离 如果您想在图片框上执行此操作 最简单的方法是从PictureBox并提供当
  • 以编程方式从我的 java webapp 读取静态资源 [重复]

    这个问题在这里已经有答案了 目前 我的 war 文件中有一堆图像 如下所示 WAR ROOT WEB INF IMAGES image1 jpg image2 jpg index html 当我通过 servlet jsp etc 生成 h
  • Firebase-perf 与 let 插件冲突

    最近 我们被要求在 Android 应用程序上实现 Firebase 性能监控 但它给我们带来了许多不同的问题 该应用程序曾经工作得很好 但是在添加 firebase perf 后 它可以编译 但在运行时我们发现让插件 https gith
  • 在 Javascript/jQuery 中解码 base64 文件以供下载

    今天我一直在尝试 SQL 二进制对象 我首先将图像存储在表中 发出 AJAX 请求以对图像进行 Base64 编码 然后使用 来显示它 img src 图像显示良好 我正在从事的网络项目也需要文件下载 主要是 PDF 太棒了 我想 我也将
  • 无法创建新的雅虎应用程序

    这个链接过去一直很挑剔 现在似乎完全失效了 https developer yahoo com apps create https developer yahoo com apps create 是不是不能再创建 Yahoo 应用程序了 N
  • PHPhotoLibrary.requestAuthorization() 在 iOS 9 上不触发授权提示

    我有以下功能 显示带有两个不同选项的操作表 目前 唯一实施的选项是标题为 照片 的选项 正确呈现操作表并调用正确的操作 我的问题是 在模拟器和实际设备上 我无法显示请求访问照片库的提示 PHPhotoLibrary authorizatio