前提・実現したいこと
UIDocumentPickerでOneDriveのファイルが参照したい。
発生している問題・エラーメッセージ
アプリが強制終了します。ファイルアプリのデータでは問題なく作動するようなので、OneDriveのデータではファイルが持ってこれなくて空の状態になってしまうのが原因だと考えています。
該当のソースコード
@IBAction func pick(_ sender: Any) { let vc = UIDocumentPickerViewController(documentTypes: ["com.adobe.pdf"], in: .open) vc.delegate = self present(vc, animated: true, completion: nil) } func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) { url.startAccessingSecurityScopedResource() if let document = PDFDocument(url: url) { pdfView.autoScales = true pdfView.document = document } print(url) url.stopAccessingSecurityScopedResource() }
試したこと
当初、シュミレーターで実行した時はファイルアプリの参照ができていたのですが、実機テストを行った際に強制終了することが発覚しました。
そこで、startAccessingSecurityScopedResource()を追加することでアクセス許可の処理をし、無事実機テストでiPhoneのファイルアプリのデータに参照できるようになりました。しかし、ファイルアプリから、OneDriveのデータを参照しようとしたところ、強制終了してしまいました。
調べたところによるとiCloudではCapabilitiesの設定をしなければならないとの記事がありました。OneDriveでもそのような設定が必要なのでしょうか。また、Info.plistに追加しなければならない物があるのでしょうか。
以上、何か方法があれば教えていただけると幸いです。
よろしくお願いします。
あなたの回答
tips
プレビュー