私のアプリは、いくつかのバックアップ ファイルをパッケージとして作成します (実際には、拡張子を持つディレクトリ、および com.apple.package に準拠するエクスポートされた UTI として)。
MFMailComposeViewController で電子メールに添付できる NSData としてそれらを読み取れるようにしたいと考えています。実際、パッケージを読み取ろうとすると nil が返されるため機能しませんdataWithContentsOfURL:
(通常のファイルではなく、ディレクトリだからだと思います)。
iPhone から「アプリ コンテナ」をダウンロードすると、Mac でパッケージ ファイルにアクセスできるので、パッケージ ファイルに問題がないことはわかっています。
NSFileWrappers を使用して生成し、writeToURL:options:originalContentsURL:error:
メソッドを呼び出します。serializedRepresentation
NSFileWrapper でのみ読み取ることができる NSData を生成するため、使用したくありません([パッケージの内容を表示] をクリックして、Mac で開くことができるようにしたい)。
動作しないコードの部分は次のとおりです。
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
一方、ファイルは適切に作成されています)
ご協力ありがとうございました