14

安定したiPhoneアプリの継続的なビルド/統合をセットアップしようとしています。

私は持っています:

  • 専用のMacMini。
  • 「ビルド」という名前のユーザーアカウント
  • Hudsonは、/ Users / build / Library / LaunchAgentsにplistをドロップすることにより、ビルド用のLaunchAgentとして設定します
    • ハドソンとして実行されているシステム全体のLaunchDaemonとして試行しましたが、ビルドユーザーのログインキーチェーンにアクセスできませんでした。心の痛みに満ちた長い物語。
  • システムは、起動時に「ビルド」に自動的にログインするように設定されているため、ハドソンは実行を開始します。

大きな問題は、コード署名とキーチェーンです。

クライアントの開発者IDに代わってコードを作成するため、いくつかの開発者IDがあり、さらに追加する予定です。

Miniを真っ暗な部屋に置き、決して見ないようにしたいのですが、開発者IDを使用して初めてビルドするときに、コードサインが開発者IDにアクセスすることを常に許可するかどうかを尋ねるGUIダイアログがポップアップ表示されます。

そうすると、そのダイアログボックスは、コードサインが許可されるようにキーチェーンアクセス制御リスト(ACL)を変更します。

これを表示するには、キーチェーンアクセスを開き、証明書を展開し、秘密鍵を選択して右クリックし、[情報を見る]を選択して、[アクセス制御]タブに切り替えます。「バージン」キーは、「常に許可する」アプリケーションリストにのみキーチェーンアクセスがあります。ダイアログボックスで使用および確認したものには、コードサインもあります。

このボックスは、Unixフォルダを非表示にする標準のFinderファイルピッカーを取得することを除いて、アプリケーションを追加する方法を提供します。/ usr / bin/codesignに移動する方法はありません。したがって、手動で追加することはできません。

誰かがこれを回避する方法を知っていますか?

「セキュリティインポート」の-Tスイッチを使用する1つの方法を知っていますが、最初にキーをインポートするときにACLを指定する必要があるため、キーチェーンGUIで追加されたキーはすべて破棄して再インポートする必要があります。あまりいいとは言えません。

4

4 に答える 4

20

通常、キーチェーンの [Get Info] ダイアログに表示されるファイル システムの「クリーンアップされた」バージョンでは、非表示の /usr/bin ディレクトリにアクセスできませんが、これを回避する方法を見つけました。

  1. 通常の Finder ウィンドウを取得して、すべてのファイルを表示します。これを行う方法がわからない場合は、この記事を確認してください
  2. 通常の Finder ウィンドウで、/usr/bin に移動します。
  3. ビンをサイドバーの [場所] 領域にドラッグします。bin は、どこからでもアクセスできるショートカットです。
  4. キーチェーンの Get Info -> Access Control ペイン内から、「+」ボタンをクリックして、アプリケーションの検索ダイアログを開きます。
  5. このサイドバーの場所の下にあるビンをクリックします。
  6. コードサインに移動して選択します。
  7. [変更を保存] ボタンをクリックします。
于 2011-03-22T16:58:10.563 に答える
4

ACL権限を追加するためのセキュリティまたはcerttoolがうまくいかなかった後、「常に許可」ボタンを「クリック」するapplescriptを実行することで解決策を見つけました。

#!/usr/bin/osascript
tell application "System Events"
  tell window 1 of process "SecurityAgent"
    click button "Always Allow" of group 1
  end tell
end tell
于 2011-03-16T18:02:17.470 に答える
3

これを理解するのにほぼ半日かかりましたが、今では機能しています。私はこの記事をフォローしていました。

この記事では、 -A オプションを使用してこのような証明書を追加することを示していますが、これはうまくいきませんでした。

security import "ADistribution.p12" -k appledev -f pkcs12 -A -P ""

この質問は、私のために働いた -T オプションについて言及しました。

security import "Distribution.p12" -k appledev -f pkcs12 -P "" -T /usr/bin/codesign
于 2013-04-26T04:06:03.770 に答える