110

Mac OS での日常業務には標準ユーザー アカウントを使用しています。Snow Leopard にアップグレードしてから、Xcode 内からプログラムを実行するときに、次のことを行うよう求められます。

「「開発者ツール」グループのユーザーの名前とパスワードを入力して、開発者ツール アクセスが変更を行えるようにします」

管理者のユーザー名/パスワードは知っていますが、これは面倒です (ただし、ログインごとに 1 回だけ必要です)。

開発者ツール アクセスは、アプリケーション gdb-i386-apple-darwin から「system.privilege.taskport.debug」への権限を求めています。

これを回避する最善の方法は何ですか?

4

10 に答える 10

137

macOSユーザー名を_developerグループに追加する必要があります。詳細については、このスレッドの投稿を参照してください。次のコマンドでうまくいくはずです。

sudo dscl . append /Groups/_developer GroupMembership <username>
于 2009-12-03T05:57:54.983 に答える
24

DevToolsSecurity -enable最後に、ターミナルで使用してそれを取り除くことができました。@joar_at_workに感謝!

参考までに: 私は Xcode 4.3 を使用しており、初めて起動したときに無効化ボタンを押しました

于 2012-02-20T22:34:18.230 に答える
9
$ dseditgroup -o edit -u <adminusername> -t user -a <developerusername> _developer
于 2009-12-03T05:58:16.560 に答える
8

Developer Tools グループに自分自身を追加する必要があります。OS X でユーザーをグループに追加するための一般的な構文は次のとおりです。

sudo dscl . append /Groups/<group> GroupMembership <username>

DevTools グループの名前は_developer.

于 2009-12-03T05:59:10.863 に答える
2

@Stacy Simpson が提案する回答:

これらのスレッドで説明されている問題に取り組んでおり、どの解決策もうまくいかないようです:

私は SO が初めてなので、どちらのスレッドにも投稿できません。(最初のものは実際には閉じられており、ローカライズの理由には同意しません...)

とにかく、AppleScript を使用して回避策を作成しました。これは、ユーザーが関心を持っている可能性があります。以下のスクリプトは、自動テストを開始する前に非同期で実行する必要があります。

osascript <script name> <password> &

スクリプトは次のとおりです。

on run argv
    # Delay for 10 seconds as this script runs asynchronously to the automation process and is kicked off first.
    delay 10

    # Inspect all running processes
    tell application "System Events"
        set ProcessList to name of every process
        # Determine if authentication is being requested
        if "SecurityAgent" is in ProcessList then
            # Bring this dialogue to the front
            tell application "SecurityAgent" to activate
            # Enter provided password
            keystroke item 1 of argv
            keystroke return
        end if
    end tell
end run

おそらくあまり安全ではありませんが、ユーザーの介入を必要とせずにテストを実行できるようにするために考え出した最善の回避策です。

うまくいけば、回答を投稿するのに十分なポイントを獲得できます。または、誰かがこの質問の保護を解除できます。よろしく。

于 2013-04-19T16:34:12.010 に答える
1

プロジェクトをコンパイルするときに Mac OS X がシステム キーチェーンを使用したい場合のより良い解決策を次に示します。

  1. キーチェーン アクセスを開きます。
  2. 左上隅で、キーチェーンのロックを解除します (ロックされている場合)。
  3. 左上隅からシステム キーチェーンを選択します。
  4. 配布証明書を見つけて、開示用の三角形をクリックします。
  5. 配布証明書の下にある [秘密鍵] をダブルクリックします。
  6. ポップアップで、[アクセス制御] タブに移動します。
  7. 「すべてのアプリケーションがこのアイテムにアクセスできるようにする」を選択します。
  8. 変更を保存します。
  9. すべてのウィンドウを閉じます。
  10. アプリケーションを実行します。
于 2014-01-17T08:33:43.100 に答える
1

私にとっては、次のスレッドの提案が役に立ちました。

「開発者ツールへのアクセスは、デバッグを続行するために別のプロセスを制御する必要があります」アラートを停止します

ターミナルアプリケーションで次のコマンドを実行することを提案しました:

sudo /usr/sbin/DevToolsSecurity --enable
于 2013-03-08T08:04:04.460 に答える
1

私は Snow Leopard を使用していますが、これはうまくいきませんでした。しかし、次の手順は機能しました。

  1. 最初に、[アカウント] の下の [ユーザーにこのコンピューターの管理を許可する] にチェックを入れて、管理者権限を持つ別のアカウントを追加しました。たとえば、ユーザー名testのアカウントです。
  2. テストアカウントにログインしました
  3. Xcode を起動し、iPhone プロジェクトをコンパイルして実行しました。すべて問題ありません。アクセス許可に関連するエラーはスローされませんでした
  4. テストアカウントからログアウトしました
  5. 管理者権限を持つ別のアカウントでログインしている
  6. アカウントの下の「このコンピューターの管理をユーザーに許可する」からチェックを外して、テストアカウントから管理者権限を取り除きました。
  7. テストアカウントに再ログインしました
  8. iPhoneプロジェクトディレクトリを削除し、リポジトリから再度チェックアウトしました(私の場合はsvn)
  9. Xcode を起動し、プロジェクトをコンパイルして実行しました。エラーは発生せず、アプリは iPhone シミュレーターで問題なく動作しました。
于 2010-03-25T14:26:35.933 に答える
0

実行後:

sudo dscl . append /Groups/_developer GroupMembership <username>

上記の回答に従って、自分のパスワードを入力するように求められる場合があります。

デバッガーを実行するには、管理者ユーザーからの承認が必要です。これは、ログイン セッションごとに 1 回だけ発生します。

これが実際に意味するのは、任意の_developer グループメンバー ユーザーであるため、ここでは管理者以外のユーザー/パスワードのみが機能しますが、完全に削除するには (再起動後にプロンプ​​トが表示されないようにするため)、次のコマンドも実行する必要があります。

sudo DevToolsSecurity -enable

(管理者ユーザー/ルートとしてsudoで実行すると、GUIパスワードプロンプトなしでリモートで実行できるようになります)

于 2012-08-15T22:23:31.960 に答える