Getting a package contents as NSData

99 views Asked by At

My app creates some back-up files as Packages (in fact as directories with an extension, and an Exported UTI that conforms to com.apple.package).

I would like to be able to read them as NSData, that I can attach to an email in a MFMailComposeViewController. Actually, it doesn't work because dataWithContentsOfURL: returns nil when I try to read the package (I think because it's a directory, not a regular file).

I know my package files are fine because I can access them on my Mac when I download the "app container" from my iPhone.

I generate them using NSFileWrappers, and calling the writeToURL:options:originalContentsURL:error: method. I don't want to use serializedRepresentation because it generates NSData that can be read only by NSFileWrapper (and I would like to be able to open them on my Mac, by clicking on "Show Packages Contents").

Here is the part of code that doesn't work:

NSURL *finalBackupURL = [outputDirectoryURL URLByAppendingPathExtension:@"ext"];
if (![packageWrapper writeToURL:finalBackupURL options:0 originalContentsURL:nil error:error])
    @throw [NSException exceptionWithError:*error];

NSData *data = [NSData dataWithContentsOfURL:finalBackupURL];

(data = nil whereas the file has well been created)

Thank you for your help

0

There are 0 answers