現在サンドボックス化されているアプリを開発しています。これは、基本的なテキスト エディターとして機能します。最近、自分のアプリと別のアプリでファイルを同時に開き、一方のアプリで更新を行い、もう一方のアプリで更新を確認するとどうなるかをテストしたいと考えていました。Coda
またはBBEdit
を代替エディターとして使用しています。サンドボックスをオフにすると、この問題は発生しません。ただし、3 月 1 日からアプリのサンドボックス化が義務付けられているため、様子見ではなく解決策を実装したいと考えています。
両方のファイルを開いて自分のアプリで編集を行ってから、別のアプリに切り替えると、変更が反映され、それらのエディターは自分のアプリから保存したばかりのバージョンになります。ただし、彼らのアプリから保存してから私のアプリに移動するという逆の操作を実行すると、喜びはありません。アクションを何も実行しないと、コンソールは次の 2 つの特定のエラーdeny file-issue-extension
を報告します。deny file-write-data
. アプリでドキュメントを開いた後に外部エディターによって変更されたため、アプリはドキュメントを編集する権限を失っているようです。アプリでファイルを保存しようとすると、元のドキュメントにアクセスできなくなったため、ドキュメントを複製するよう求められます。これらのアプリはサンドボックス化されていないため、私のアプリにない権限があるため、これは逆には起こりません。また、この動作を望まない場合、他のアプリが変更を加えるのを防ぐことはできないようです.
developer.apple.com のドキュメントには、この種の状況については何も言及されていません。これが意図した動作かどうかはわかりません。そうである場合は、ドキュメントのアクセス許可が失われたため、新しいバージョンを保存するか、ファイルを再度開く必要があることをユーザーに伝えることができます。意図した動作ではない場合、NSDocument API のどのメソッドが、失われたファイルに許可を与えるでしょうか? 私は答えが前者であると仮定していますが、これは意図されたものですが、誰でも確認できますか?ドキュメントはありますか?