ローカルとiCloudの両方でドキュメントを保存およびロードするアプリを書いています。ローカルでは問題なく動作していますが、iCloudに問題があります。
ドキュメントはパッケージとして保存されます。UIDocumentは、画像ファイル、サムネイルファイル、および情報plistを含むNSFileWrapperの読み取りと書き込みを行います。ドキュメントをiCloudに保存してから、「ストレージの管理」の下にあるファイルを見ると、パッケージではなく個々のファイルが表示されます。さらに重要なことに、NSMetadataQueryを使用してファイルを検索すると、パッケージではなく、個々のファイルごとにNSMetadataItemが返されます。その結果、私のアプリはロードするパッケージがあることに気づかず、iCloudはかなり役に立たない。
ドキュメントタイプを設定してUTIを正しくエクスポートすると、パッケージが適切に処理されると思いました。そうでしたか?もしそうなら、パッケージとしてドキュメントタイプを設定するためのチェックリストは何ですか?私は持っています:
- ドキュメントタイプを追加しました
- LSTypeIsPackageをYESに設定します(文字列YESとbool YESを試しました)
- CFBundleTypeExtensionsを1つの文字列を含む配列に設定します:ファイルサフィックス
- LSHandlerRankをOwnerに設定します
- 同じ識別子でUTIをエクスポートしました
- com.apple.packageに準拠するように設定します
- キーpublic.filename-extensionの配列を含むUITypeTagSpecificationディクショナリを追加しました。この配列には、ファイルサフィックスという1つの文字列が含まれています。
また、エクスポートされたものと一致するように、一致するインポートされたUTIを追加しようとしましたが、うまくいきませんでした。
私は何を取りこぼしたか?
更新:この質問のOPは、私が望む動作を確認していることに気付きました(彼はそれを望んでいませんが)ので、それは可能であるに違いありません。