无法使用 xcode 为我的 iphone 应用程序打开 PDF

Posted

技术标签:

【中文标题】无法使用 xcode 为我的 iphone 应用程序打开 PDF【英文标题】:Cannot open PDF using xcode for my iphone app 【发布时间】:2020-02-26 11:44:40 【问题描述】:

我有一个 iPhone 应用程序,我实现了一个UIDocumentPickerViewController。一旦用户选择了PDF,我就会收到 PDF 的URL

我正在尝试获取该 PDF 的数据,以便将其发送到我的服务器,但我收到以下响应:

Error Domain=NSCocoaErrorDomain Code=257 "The file “aaa.pdf” couldn’t be opened because you don’t have permission to view it." UserInfo=NSFilePath=/private/var/mobile/Containers/Shared/AppGroup/9C57E7F1-0997-4F57-A3EF-A7EFC3EF6158/File Provider Storage/aaa.pdf, NSUnderlyingError=0x282b43600 Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"

这是我尝试将其转换为数据的方式:

        var documentData = Data()
        do 
            documentData.append(try Data(contentsOf: documentURL))
         catch 
            throw Error.Creation
        

我在某处读到沙盒应用无法读取文件,但是当我查看目标功能时,我什至看不到沙盒功能。

任何想法为什么会发生这种情况? 谢谢

【问题讨论】:

请参考***.com/a/59573299/6920041 用户从哪里选择PDF文件?这些 PDF 文件位于何处? @EarlGrey 它位于“在我的 iPhone 上”,我使用 UIDocumentPickerViewController 选择它 @matt 刚刚阅读。显然我使用的是 .open 而不是 .import。那成功了。如果你想写那个答案,我很乐意接受它 【参考方案1】:

更新到 Swift 5 - Xcode 12:

为了对您导入的文件具有读取权限,请将asCopy: true 添加到文档选择器:

let doc = UIDocumentPickerViewController(forOpeningContentTypes: types, asCopy: true)

【讨论】:

【参考方案2】:

好的,问题是我在创建文档选择器时使用的是“.open”而不是“.import”。成功了。

【讨论】:

以上是关于无法使用 xcode 为我的 iphone 应用程序打开 PDF的主要内容,如果未能解决你的问题,请参考以下文章

Xcode iPhone应用程序在一段时间后消失[重复]

如何重新生成 iPhone Xcode info.plist 文件

iOS/iPhone 应用似乎为我的文本添加了颜色遮罩/颜色阴影

无法在 iPhone 上运行在 xcode 中创建的应用程序

Xcode 7.3 无法将应用程序安装到 iPhone

Xcode 4.5 无法识别我的设备 iphone 5 (6.1.3)