2017-01-26 22 views
0

私はインターネットからいくつかのファイルをダウンロードし、の下のapplicationSupportDirectoryにいくつかのフォルダを作成し、それらのファイルを書き込むmacOSアプリケーション(Mac App Store外で配布)に取り組んでいます。 NSFileManagerクラスを使用して、作成されたフォルダに移動します。NSFileManagerは管理者権限なしで動作しません

管理者ユーザーアカウントで実行しているときはうまく動作しますが、管理者権限を持たないアカウント(たとえば、ゲストユーザーとして使用している場合など)では機能しません。

NSFileManagerで権限関連のエラーがスローされないように、アプリに管理者権限を要求するにはどうすればよいですか?

+1

これは間違っています。任意のユーザーとして実行されているアプリケーションは、そのユーザーのアプリケーションサポートディレクトリに書き込むことができます(アプリケーションはそこに独自のサブディレクトリを作成する必要があります)。あなたのアプリケーションが許可エラーのために失敗した場合、それはしてはならないどこかに書いています。あなたのアプリが書いている場所、フォルダの権限などを正確に確認します。必要に応じて新しく作成されたユーザーアカウントでテストします。問題が見つからない場合は、正確なパスや権限などを表示するために質問を編集してください。誰かがそれを理解するのに役立つでしょう。 – CRD

+0

こんにちは、ご意見ありがとうございます。私はそれをチェックし、実際には 'localDomainMask'の下で書くときにのみ失敗します。ユーザが管理者でないとき(私は最初の段落を更新しました)。ユーザーが管理者でない場合、私の質問は残るので、実際には書き込むべきではありません。NSFileManagerがアクセス権関連のエラーを投げないように、アプリケーションに管理者権限を求める方法を教えてください。 – Daniel

+0

あなたが 'userDomainMask'ではなく' localDomainMask'を使っている理由はありますか?後者は現在のユーザーのアプリケーションサポート(またはサンドボックス化された場所)です。どちらにも書き込みアクセス権が必要です。 IIRC 'local'は/ Libraryのものです。 –

答えて

0

これを本当に行う必要がある場合は、アプリケーションの特権をエスカレートするか、アプリケーションのヘルパーを向上させて操作を実行する必要があります。これを達成するにはいくつかの方法があります。明らかにそうすることは、どのアプリケーションでも利用可能であるだけでなく、セキュリティがないこともあります。

始めるのに適した場所は、Appleのです。

HTH

+0

ありがとうございます。これは私が質問した後に発見したもので、月曜日にそれを見てみる予定です。私はヘルパーツールのコンセプトをまだ完全に理解していない、あるいは私のコンテキストを与えられたものが必要なのはなぜですか? – Daniel

関連する問題