2009-11-10 11 views
12

最近私は別の会社の仕事をして、iPhoneアプリを開発しました。オフィス間で開発時間を分割し、コンピュータと私のオフィスを使用して、キーを生成し、iPhone Dev Centerのチームの一員として署名しました。複数の開発者証明書でcodesign証明書のあいまいさを解決する

私はすでに既存の開発センターアカウントと自分の開発者証明書を持っていました。クライアントプロジェクトの証明書をインポートした後、そのアプリケーションに署名すると、「iPhone Developer:Steve Madsen」と一致する複数の証明書が見つかったという警告が表示されますが、正しいものを選択してバイナリに署名します。

私は今自分の開発者証明書を使って、私の古いプロジェクトに戻っています。協調設計は、それが私の証明書と私のクライアントのために使用されるものとのあいまいさを解消することができない私に言っている:

iPhone開発者:スティーブ・マドセン:あいまいな(マッチ「iPhone開発者:スティーブ・マドセン(9E69FVL37K)」と「iPhone Developerを:/Volumes/Users/steve/Library/Keychains/login.keychainでスティーブ・マドセン」)

は、クライアント証明書は、私は物事を把握することができますどのように協調設計であると推定(9E69FVL37K)、を有するものである私クライアントのプロジェクト

正しい識別情報を使用するようにXcodeプロジェクトを設定するにはどうすればよいですか?ターゲットのビルド設定の下で特定のもの(自動プロファイルセレクタではない)を選択することは役に立ちません。

Appleは開発者が複数のチームのメンバーになると予想していましたが、自分自身のような開発者が自分の環境をどのように設定すべきかに関するドキュメントは見つかりませんでした。プロビジョニングプロファイルは、1つのチームのプログラムポータルの下で証明書と関連付ける必要があるため、第2の鍵/証明書を生成するだけでこの作業を行うことができました。このプロセスをスムーズに動作させる方法については、誰も良いアドバイスを持っていますか?

+1

- それは私のために行います。 – Till

+0

Ow、両方でIDが正しく選択されていることを確認してください。プロジェクトのプロパティとターゲットのプロパティの両方を表示します。 – Till

+0

違いはありません。問題は、両方のキーが同じ接頭辞を持ち、使用したいキーが、全体で2番目の(クライアント作業)キーの接頭辞であることです。 Codesignには、「アイデンティティはまさにこれであり、賢明になろうとはしない」と言うモードはありません。 –

答えて

5

私は今晩プランジを取り、私の古い証明書を取り消し、新しい証明書を生成することに決めました。私の推測は正しいと思う:アップルは現在、(16進数の)サフィックスを持つすべての証明書を発行している。

Xcodeは適切なことをするのに十分スマートです。私はターゲット設定で "iPhone Developer"(自動選択)を選択します。プロビジョニングプロファイルに基づいてバイナリへの署名に使用するキーを決定し、(16進文字列)サフィックスを含めてcodesignにそのアイデンティティを正確に使用するよう指示します。

Appleがサフィックスの追加を開始した後、初めての証明書を生成したため、新しいiPhone開発者にはこの問題は見られません。

これを行う必要がある他の人には、既存のプロビジョニングプロファイルもすべて修正してから再インストールする必要があります。

0

私は3つのチームに分かれていて、それぞれ別々の3つのiTunesアカウントを使用しています(3つの別々のメールアドレス)。私はこれが最適な状況のようには聞こえないことを知っています。特に、それ以上のチームに取り組んでいる場合は特にそうです。

しかし、私は別の方法があるかもしれないと思っています。あなたのiTunesアカウント(iPhoneデベロッパーセンターユーザー)を複数のチームに関連付けることができれば、Dev Centerにサインインするとどうなりますか?複数の「iPhone Developer Progrma Portal」を入力するオプションは複数用意されていますか?

+1

これはまさに何が起こっているのか - あなたはログインするときにどのチームに取り組んでいるのか尋ねられます。 – Till

+0

皆さん、これらは私の質問に対する答えではありません。コメントは上記のものです。 –

+0

スティーブ、これは私の答えだった。問題なく1年間それをやっていた。 "まで"別の方法があることを私に教えてくれてありがとう! – Dimitris

0

これを指摘してくれたSteve Madsenに感謝します。Appleはすべての証明書に(HEXSTRING)という接尾辞を付けて発行するようになりました。つまり、RUPERTO DE GUZMANの証明書がある場合は、PROGRAM PORTAL - > CERTIFICATESからREVOKEする必要があります。次に、新しい証明書を作成します。新しい証明書はRUPERTO DE GUZMAN(EZxxxxxxxx)になります。

は今、協調設計は、我々が持っているもうので、プレフィックスと混同されない:

BEFORE:

RUPERTO DE GUZMAN

RUPERTO DE GUZMAN(89xxxxxxx)

アフター:

RUPERTO DE GUZMAN(EZxxxxxxx)

RUPERTO DE GUZMAN(89xxxxxxx)

動作するはず代わりに、自動選択の具体的なアイデンティティをピッキング
関連する問題