2009-11-10 6 views
12

Ich habe kürzlich für ein anderes Unternehmen gearbeitet und eine iPhone-App für sie erstellt. Als ich die Entwicklungszeit zwischen ihren Büros, ihren Computern und meinem Büro aufteilte, generierte ich einen Schlüssel und ließ ihn als Teil des iPhone Dev Center "Teams" signieren.Auflösen der Mehrfachkennung von Codesign-Zertifikaten mit mehreren Entwicklerzertifikaten

Ich hatte bereits ein bestehendes Dev Center-Konto und mein eigenes Entwicklerzertifikat. Nach dem Importieren des Zertifikats für das Client-Projekt, signiert diese Anwendung mich von codesign, dass es mehrere Zertifikate findet, die zu "iPhone Developer: Steve Madsen" passen, aber es wählt das richtige aus und signiert die Binärdatei.

Ich gehe jetzt zu einem meiner älteren Projekte zurück und benutze mein eigenes Entwicklerzertifikat. Codesign sagt mir, dass es die Zweideutigkeit zwischen meinem Zertifikat und dem für meinen Kunden verwendeten nicht beheben kann:

iPhone Entwickler: Steve Madsen: mehrdeutig (entspricht "iPhone Entwickler: Steve Madsen (9E69FVL37K)" und "iPhone Developer : Steve Madsen“in /Volumes/Users/steve/Library/Keychains/login.keychain)

das Client-Zertifikat ist das mit (9E69FVL37K), das nehme ich an, wie Co-Design der Lage ist, Dinge herauszufinden in meinem Projekt des Kunden.

Wie kann ich das Xcode-Projekt so konfigurieren, dass die richtige Identität verwendet wird? Es ist nicht hilfreich, unter den Zielerstellungseinstellungen einen bestimmten auszuwählen (nicht den automatischen Profilwähler).

Besser noch, während Apple erwartet, dass ein Entwickler ein Mitglied mehrerer Teams sein könnte, habe ich keine Dokumentation gefunden, wie ein Entwickler wie ich meine Umgebung einrichten sollte. Das Erstellen eines zweiten Schlüssels/Zertifikats schien die einzige Möglichkeit zu sein, dies zu erreichen, da Bereitstellungsprofile mit Zertifikaten im Programmportal eines Teams verknüpft werden müssen. Hat jemand gute Ratschläge, wie dieser Prozess reibungslos funktioniert?

+1

eine bestimmte Identität anstelle der automatischen Auswahl Kommissionierung arbeiten sollte - es ist für mich tut. – Till

+0

Au, stellen Sie sicher, dass die Identität in beiden richtig ausgewählt ist; die Projekteigenschaften sowie in den Zieleigenschaften! – Till

+0

Das macht keinen Unterschied. Das Problem ist, dass beide Schlüssel das gleiche Präfix haben, und der Schlüssel, den ich verwenden möchte, ist in seiner Gesamtheit ein Präfix des zweiten (Client-Arbeit) Schlüssels. Codesign hat keine Möglichkeit zu sagen: "Die Identität ist genau das, versuche nicht clever zu sein." –

Antwort

5

Ich habe heute Abend den Sprung gewagt und beschlossen, mein altes Zertifikat zu widerrufen und ein neues zu erstellen. Meine Vermutung war richtig: Apple gibt jetzt alle Zertifikate mit einem (Hex-String) Suffix aus.

Xcode ist schlau genug, um das Richtige zu tun. Ich wähle "iPhone Developer" (automatische Auswahl) in den Zieleinstellungen. Es bestimmt, welcher meiner Schlüssel verwendet werden soll, um die Binärdatei basierend auf dem Bereitstellungsprofil zu signieren, und teilt dem Codezeichen dann mit, dass es genau diese Identität verwendet, indem es das Suffix (Hex-String) einfügt.

Meine Wette ist, dass neuere iPhone Entwickler dieses Problem nie sehen werden, weil sie ihr erstes Zertifikat erzeugten, nachdem Apple anfing, das Suffix hinzuzufügen.

Eine Erinnerung an alle anderen, die dies tun müssen: Sie müssen auch alle vorhandenen Bereitstellungsprofile reparieren und diese neu installieren.

0

Ich habe bisher an 3 Teams gearbeitet und habe 3 separate iTunes-Konten verwendet, eins für jedes (also 3 separate E-Mail-Adressen). Ich weiß, das hört sich nicht nach der optimalen Situation an, besonders wenn Sie an mehr Teams arbeiten.

Ich frage mich jedoch, ob es einen anderen Weg geben kann. Wenn Sie Ihr iTunes-Konto (iPhone-Entwicklercenter-Benutzer) mit mehr als einem Team verknüpfen können, was passiert dann, wenn Sie sich im Dev Center anmelden? Sie erhalten mehrere Optionen, um die verschiedenen "iPhone Developer Progrma Portals" einzugeben?

+1

das ist genau was passiert - Sie werden gefragt, welches Team Sie bei der Anmeldung arbeiten möchten. – Till

+0

Jungs, das sind keine Antworten auf meine Frage. Kommentare gehören oben. –

+0

Steve, das war meine Antwort, meine Art, es seit einem Jahr ohne Probleme zu machen. "Bis" Danke, dass du mich wissen lässt, dass es einen anderen Weg gibt! – Dimitris

0

Danke an Steve Madsen für den Hinweis. Apple stellt nun alle Zertifikate mit einem (HEXSTRING) Suffix aus.Das bedeutet, wenn Sie bereits ein Zertifikat für RUPERTO DE GUZMAN besitzen, müssen Sie dies unter PROGRAM PORTAL -> CERTIFICATES rückgängig machen. Erstellen Sie dann ein NEUES Zertifikat. Ihr neues Zertifikat lautet nun RUPERTO DE GUZMAN (EZxxxxxxxx).

Jetzt würde, Co-Design nicht mit den Präfixen mehr verwechselt werden, denn wir haben:

VOR:

RUPERTO de Guzman

RUPERTO de Guzman (89xxxxxxx)

NACH:

RUPERTO de Guzman (EZxxxxxxx)

RUPERTO de Guzman (89xxxxxxx)