2011-01-21 12 views
14

安定したiPhoneアプリケーションのためにビルド/インテグレーションを継続的にセットアップしようとしています。KeychainなしのプライベートキーACLにcodesignを追加

私が持っている:

  • 専用のMac Miniを。
  • という名前のユーザーアカウントは、システム全体のLaunchDaemonはハドソンとして実行されているとして試み/ユーザ/構築/ライブラリ/のLaunchAgents
    • でのplistをドロップすることで、ビルドのLaunchAgentとして設定
    • Hudson「を構築します」ビルドユーザーのログインキーチェーンにアクセスできませんでした。ロングストーリー、ハートフルでいっぱい。
  • ハドソンが実行を開始するように、起動時に「構築」に自動的にログインするために設定されたシステム。

大きな問題はcodesigningとキーホルダーされます。

私たちは、お客様の開発者のアイデンティティに代わってコードを作成するので、私たちはいくつかの開発者のアイデンティティを持っているし、我々はより多くを追加します。

深い暗い部屋にMiniを置いて、決してそれを見ることはしませんが、開発者のアイデンティティーで初めてビルドするときに、コードネームが常に開発者のIDにアクセスできるようにするかどうかを尋ねるGUIダイアログが表示されます。あなたが行うと仮定すると、

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

あなたは、キーチェーンアクセスを開く証明書を展開し、プライベートキー、右クリックを選択し、情報を見る選択して、[Access Control]タブに切り替えることで、これを見ることができます。 「バージン」キーは「常に許可する」アプリケーションリストにのみキーチェーンアクセスを持ちます。ダイアログボックスで使用して確認したものにもcodesignが付いています。

このボックスは、Unixフォルダを隠す標準のFinderファイルピッカーを取得することを除いて、アプリケーションを追加する方法を提供します。/usr/bin/codesignにナビゲートする方法はありません。手動で追加することは不可能です!

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

I'm aware of one method「セキュリティインポート」の-Tスイッチを使用しますが、最初にキーをインポートするときにACLを指定する必要があるため、キーチェーンGUIに追加されたキーはすべて投げられて再インポートされる必要があります。それほど素晴らしいことではありません。

+0

これまでの解決方法を見つけましたか?同じ問題があります。 – scootklein

+0

サファリでは、 "vnc://miniName.local"は1つの方法です。プロジェクトごとにマシンを1回リモートで使用できます。 AppleScriptのScootkleinのソリューションはうまくいくはずです。 –

+0

「/ usr/bin/codesignにナビゲートする方法はありません」と言ったら、それはどういう意味ですか?/usr/bin/codesignは単なるプログラムで、finderで "/ usr/bin"を開くときに/ usr/binを開く必要がある場合は – Daniel

答えて

18

通常のキーホルダーのは、あなたに情報ダイアログプレゼントをゲットファイルシステムの「清め」バージョンは、あなたが隠されたの/ usr/binディレクトリにアクセスすることを許可しませんが、私はこれを回避する方法を発見しました。

  1. すべてのファイルを表示するための通常のFinderウィンドウを取得します。これを行う方法がわからない場合は、check out this article
  2. 通常のFinderウィンドウでは、/ usr/binに移動します。
  3. サイドバーの「場所」領域にビンをドラッグします。今すぐbinはどこからでもアクセスできるショートカットです。
  4. キーチェーンの情報を見る - >アクセスコントロールペインで、[+]ボタンをクリックしてアプリケーションの検索ダイアログを開きます。
  5. このサイドバーの[プレイス]の下にあるビンをクリックします。
  6. codesignに移動して選択します。
  7. [変更を保存]ボタンをクリックします。
+0

通常、他の良い、有効な回答がある場合、私は自分の答えを受け入れることに嫌気がします。私がそうしている唯一の理由は、私が見つけ出すことができた解決策を早急に行うことができ、scootkleinの答えはより反応的であるということです。 –

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 
3

これはほぼ半日わかりましたが、今は動作しています。私はこれに続いていたarticle

この記事では、このような証明書を-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 
5

あなたは大変ありがとう、David Boike。私に多くの助けになった素晴らしい回避策。 これを行うにはより良い方法があります。

Open File Dialog press 'Cmd' + 'Shift' + '.' 

この組み合わせでは、ファイルシステム上の隠しアイテムの表示を切り替える必要があります。 組み合わせが有効でない場合は、プレゼンテーションモードを 'list'または 'grid'に変更してもう一度試してください。

ありがとうございました!

関連する問題