29

現在、bash スクリプトを介して Instruments を使用して、コマンドライン インターフェイスを開始し、Automation プラグインの実行を開始しています。

4.2 ではこれで十分に機能しましたが、Xcode 4.3 にアップグレードすると、承認されたユーザーが「他のプロセスを分析する」ように求められるようになりました。正しい資格情報が付与されていても、ユーザーが実際に認証されることはありません。次のエラーが表示されます。

Failed to authorize rights (0x20) with status: -60007.
2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher     service: (os/kern) failure

認証に失敗しても自動化プラグインは実行されますが、これには私のスクリプトで物理的なベビーシッターに資格情報を入力させる必要があり、多くの点でこれらのコマンドライン実行の目的を無効にします。ユーザーの詳細を引数として追加することはできますか? または、キーで人を必要とせずにこのプロンプトをスキップする他の方法はありますか?

- 編集 -

この認証ダイアログは、GUI から初めて UIAutomation テストを実行しようとしたときに表示されます。

ここに画像の説明を入力

レーダー rdar://10945962 を提出しました。

- 編集 -

GUI で認証ダイアログに応答すると、コマンドラインにプロンプ​​トが表示されなくなります。ただし、この種の回避策は「答え」としては有効ではないようです。

4

11 に答える 11

18

さて、私はそれがうまくいったと思います。

xcodeコマンドライン認証プロンプトを削除する方法の詳細を次に示します

私がしたことは次のとおりです。

  • jenkins ユーザーを管理者としてマークします (残念ながら atm 以外に方法はないようです)
  • /etc/authorizationに移動します
  • キーsystem.privilige.taskportを検索します
  • allow-root の値を true に変更します

    <key>system.privilege.taskport</key>
    <dict>
        <key>allow-root</key>
        <false/> // change to -> <true>
        <key>class</key>
        <string>user</string>
        <key>comment</key>
        <string>Used by task_for_pid(...).
        ...
    </dict>
    

これで、jenkins を使用して、コマンド ライン スクリプト経由で UIAutomation-Tests を実行できるようになりました

于 2012-07-10T14:52:09.697 に答える
14

これはあなたのために働くかもしれない素晴らしいコマンドです:

security unlock-keychain -p [password] "${HOME}/Library/Keychains/login.keychain"

これは、Mac でキーチェーンにアクセスするためのコマンド ラインの方法です。Automation でテストしたことはありませんが、iOS ビルドを Jenkins と統合した方法です。

( [パスワード] をパスワードに置き換えます)

于 2012-03-13T05:01:07.280 に答える
5

スクリプトを実行するユーザーは、開発者ツールの使用を承認されている必要があります。これを行うには、次の 2 つの方法があります。

  • _developerユーザーをグループ に追加します。sudo dscl . append /Groups/_developer GroupMembership scriptusername

  • DevToolsSecurity コマンド ライン ツールを使用する

UIAutomationインストゥルメントが適切に動作するためには、Instrumentsを呼び出すユーザーがウィンドウサーバーを起動できる(つまり、UIを実行できる)ユーザーである必要があり、ウィンドウサーバーにログインする必要があることに注意してください。 UIAutomation の実行時。

これら 2 つのことは、Jenkins で UIAutomation を使用するための 4 つまたは 5 つの秘密のうちの 2 つです。

于 2012-05-15T05:06:06.290 に答える
4

この問題を部分的に解決しました。コマンドラインからインストゥルメントを実行し、GUI で認証プロンプトを表示します (セッションごとに 1 回) + コンソールでこれを実行します (インストゥルメントを実行するたびに):

Instruments: Instruments wants permission to analyze other processes.
Type your password to allow this.
Name ([my-username]):
Password:

Failed to authorize rights (0x20) with status: -60007.
2012-02-28 10:04:19.607 instruments[60398:1203] Failed to connect to
local pid watcher service: (os/kern) failure

xCode 4.3 にアップグレードする前後の /etc/authorization ファイルを比較しました。Apple は 2 つのキーを交換しました。

<key>com.apple.dt.instruments.process.analysis</key>
<key>com.apple.dt.instruments.process.kill</key>

<key>com.apple.instruments.process.analysis</key>

/etc/authorization を編集し、不足しているキーを新しいキーの下に追加し、コンソールからの問題を解決しました。残念ながら、GUI プロンプトはまだ残っています。

不足しているキー:

<key>com.apple.dt.instruments.process.analysis</key>
<dict>
    <key>allow-root</key>
    <true/>
    <key>class</key>
    <string>user</string>
    <key>comment</key>
    <string>Rights for Instruments</string>
    <key>group</key>
    <string>admin</string>
    <key>shared</key>
    <true/>
    <key>timeout</key>
    <integer>36000</integer>
    </dict>
<key>com.apple.dt.instruments.process.kill</key>
<dict>
    <key>allow-root</key>
    <true/>
    <key>class</key>
    <string>user</string>
    <key>comment</key>
    <string>Rights for Instruments</string>
    <key>group</key>
    <string>admin</string>
    <key>shared</key>
    <true/>
    <key>timeout</key>
    <integer>5</integer>
</dict>

これにより、問題全体を解決できることを願っています

于 2012-03-14T07:58:36.200 に答える
1

これは私のために働いた解決策です:

<key>system.privilege.taskport</key>
<dict>
<key>allow-root</key>
<false/> 
<key>class</key>
<string>user</string> // change to -> allow
<key>comment</key>
<string>Used by task_for_pid(...).
...
</dict>
于 2013-10-24T18:35:41.963 に答える
1
sudo security authorize -u [username]

私のために働いた。

于 2013-11-12T09:14:00.403 に答える
0

Xcode の場合 - オーガナイザーをロードした場合 (Xcode->Window->Organizer)

次に、デバイスの下でマシンを選択します->「開発者モードを有効にする」

これにより、インストゥルメントを使用したプロンプトの必要がなくなります。

于 2014-05-24T20:34:24.153 に答える
-1

security unlock-keychain と /etc/authorization ファイルの編集を試みましたが、どちらも機能しませんでした。

最終的に、そのセキュリティプロンプトを削除した唯一のことは、「sudo DevToolsSecurity --enable」を実行するために、jackmigacz がコメントで提案したことでした。

于 2013-07-18T22:54:42.333 に答える