私はインターネットからいくつかのファイルをダウンロードし、の下のapplicationSupportDirectory
にいくつかのフォルダを作成し、それらのファイルを書き込むmacOSアプリケーション(Mac App Store外で配布)に取り組んでいます。 NSFileManagerクラスを使用して、作成されたフォルダに移動します。NSFileManagerは管理者権限なしで動作しません
管理者ユーザーアカウントで実行しているときはうまく動作しますが、管理者権限を持たないアカウント(たとえば、ゲストユーザーとして使用している場合など)では機能しません。
NSFileManagerで権限関連のエラーがスローされないように、アプリに管理者権限を要求するにはどうすればよいですか?
これは間違っています。任意のユーザーとして実行されているアプリケーションは、そのユーザーのアプリケーションサポートディレクトリに書き込むことができます(アプリケーションはそこに独自のサブディレクトリを作成する必要があります)。あなたのアプリケーションが許可エラーのために失敗した場合、それはしてはならないどこかに書いています。あなたのアプリが書いている場所、フォルダの権限などを正確に確認します。必要に応じて新しく作成されたユーザーアカウントでテストします。問題が見つからない場合は、正確なパスや権限などを表示するために質問を編集してください。誰かがそれを理解するのに役立つでしょう。 – CRD
こんにちは、ご意見ありがとうございます。私はそれをチェックし、実際には 'localDomainMask'の下で書くときにのみ失敗します。ユーザが管理者でないとき(私は最初の段落を更新しました)。ユーザーが管理者でない場合、私の質問は残るので、実際には書き込むべきではありません。NSFileManagerがアクセス権関連のエラーを投げないように、アプリケーションに管理者権限を求める方法を教えてください。 – Daniel
あなたが 'userDomainMask'ではなく' localDomainMask'を使っている理由はありますか?後者は現在のユーザーのアプリケーションサポート(またはサンドボックス化された場所)です。どちらにも書き込みアクセス権が必要です。 IIRC 'local'は/ Libraryのものです。 –