Closed forgot closed 6 years ago
Are you able to use Disk on your device in other scenarios? Are you sure title
is a valid file name? If it is zero characters long or is in any other way invalid (see getValidFilePath
in Disk+InternalHelpers.swift
), then that may be the reason Disk is trying to save your object as a file named "PDF".
Yes, I use Disk all over the app (thank you btw), and title
is most definitely valid. I even paused the debugger in getValidFilePath(from:)
to double check, and it is not throwing an error.
I use the exact same code with the exact same test files in the simulator, and it works perfectly every time.
Turns out I was unaware that Apple reserves Documents/Inbox
, and doesn't let you write to it.
From the documentation:
Your app can read and delete files in this directory but cannot create new files or write to existing files. If the user tries to edit a file in this directory, your app must silently move it out of the directory before making any changes.
When I changed the path to let path = "PDF/\(title)"
everything works as expected.
Sorry for the trouble, but thank you for taking the time, and for making a great framework!
I'm getting a permissions error when trying to save data to a subfolder that is created as part of the save.
Here's the code where I'm trying to save the data:
When I run this on the simulator, it works just fine. However, when I run it on a device, I get this response:
I tracked it down, and the error is bubbling up from
Disk+InternalHelpers.swift::188
. That line callscreateDirectory(at:withIntermediateDirectories:attributes:)
, which is throwing the error. The really weird thing is that "PDF" is supposed to be a subfolder of "Inbox", not a file inside it.Here's the value for the
subfolderUrl
variable:file:///var/mobile/Containers/Data/Application/AC2C2E56-8188-426A-8C59-E508B56C7954/Documents/Inbox/PDF/
Am I doing something wrong here? Why would this work in the simulator, but throw on a device?