私はあなたのためにファイルを作成する機能を持つMAC OSアプリを開発しています。最初のユーザーがファイルを保存するフォルダを選択(アプリケーションの起動時に1回)し、選択したフォルダ(アプリケーションの開始時に選択したフォルダ)に作成するファイルのタイプと名前をリンゴスクリプトを使用して選択できます。資格ファイルにtemporary-exception
以下のファイルを追加するとファイルを作成できますが、Appleの審査チームにはできませんが、サンドボックスでは動作します。Mac OSアプリでユーザーが選択したフォルダに対する読み書き権限はありますか?
ガイドライン2.4.5(I) - パフォーマンス 私たちは、このアプリのために要求された一つ以上の一時的な資格例外が適切でないと許可されないことを決定しました:
com.apple.security.temporary-exception.files.home-relative-path.read-write
/FolderName/
私は見つかりました:
Enabling App Sandbox - 実行可能ファイルを書き込むことをアプリに許可します。
そして
Enabling User-Selected File Access - Xcodeは、ユーザーが明示的に選択した読み取り専用または/ファイルおよびフォルダへの書き込みアクセスを読んで可能にするための選択肢で、ターゲットエディタの[概要]タブでは、ポップアップメニューを提供します。ユーザーが選択したファイルアクセスを有効にすると、ユーザーがNSOpenPanel
オブジェクトを使用して開くファイルとフォルダにプログラムでアクセスし、NSSavePanel
オブジェクトを使用してユーザーが保存するファイルにアクセスできます。ファイル作成のためのコードの下に使用
:
let str = "Super long string here"
let filename = getDocumentsDirectory().appendingPathComponent("/xyz/output.txt")
do {
try str.write(to: filename, atomically: true, encoding: String.Encoding.utf8)
} catch {
// failed to write file – bad permissions, bad filename, missing permissions, or more likely it can't be converted to the encoding
}
もNSOpenPanelオブジェクトのエンタイトルメントファイルにcom.apple.security.files.user-selected.read-write
を追加してみました:
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
は、Macを承認するパスリンゴのレビューチームを取得する方法はありますユーザーが選択したフォルダに対する読み取りと書き込みの権限を持つアプリですか?ユーザは、あなたがにアクセスできるようにフォルダを選択することができNSOpenPanel
を使用して
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<key>com.apple.security.files.bookmarks.app-scope</key>
<true/>
そして、開いているフォルダの選択:
ユーザーが常にターゲットフォルダを選択した場合(つまり、ユーザーの操作なしで書き込みを試行しない場合)、com.apple.security.files.user-selected.read-writeのみ必要です。 – Moritz
セキュリティスコープのブックマークを使用します。 –
@モーリッツええ、私は一度のフォルダの選択をしたい、すべてのファイルは同じ場所に格納されます。 –