0

サンドボックス化されたアプリケーションでセルフ コンパイルされたバイナリを使用しています。ユーザーの要求に応じて、コマンドを実行します。ボリューム上にファイルを作成しようとすると、許可が拒否されて失敗します。

アプリはサンドボックス化され、file:/// のセキュリティ スコープ ブックマークが作成されて有効になります。端末から実行するとコマンドが機能するため、sudo は必要ありません。

let task = Process()
task.launchPath = Bundle.main.url(forResource: "f3write", withExtension: nil)
task.arguments = ["/Volume/SDCard"]
task.launch()

コマンド出力をパイプしています:

Free space: 28.64 GB
Creating file 1.h2w ... 
f3write: Can't create file /Volumes/SDCard/1.h2w: Operation not permitted
4

1 に答える 1

0

コメントで述べたように、file:/// へのセキュリティ スコープ ブックマークは単に誤用されているだけでなく、ファイル ボリューム構造内のフォルダへの書き込みアクセスも許可されていません。

アプリ内から f3write コマンドを実行する前に /Volumes/SDCard のブックマークを追加すると、エラーは表示されず、コマンドは正常に実行されます。

于 2021-01-11T14:34:15.137 に答える