13.7.08

iPhone Development - Troubleshooting

Nachdem es ein ziemliches Drama war, bis ich nach dem Erhalt des Aktivierungscodes für das iPhone Developer Program endlich soweit war, meine erste Applikation zum Testen auf mein iPhone zu schießen, hier einige Tipps:

1. Nach Aktivierung aus der Mail von Apple heraus, steht im iPhone DevCenter rechts oben der Button zum Program Portal zur Verfügung.
2. Dort sind jeweils auf dem Register "How To" Anleitungen wie bei den einzelnen Schritten vorgegangen werden muss. Die folgenden Punkte sind Ergänzungen zu den dort beschriebenen Schritten.
3. Beim Beantragen des Zertifikats muss einiges beachtet werden:
3.1. Die Zertifikate vom selben Benutzer und Computer aus beantragen, an dem später auch entwickelt werden soll (der Private Key wird beim Beantragen automatisch gespeichert und müsste sonst später übertragen werden).
3.2. Außerdem ist es ganz wichtig, dass im Dienstprogramm "Schlüsselbundverwaltung" unter Einstellungen/Zertifikate CRL ausgeschalten ist. Ansonsten gibt es später ständig das Problem, dass XCode beim Build ein "Codesign error: no certification for identifier 'iPhone Developer'[oder Name] was found in your keychain" ausgegeben wird.
4. In der Anleitung zum Hinzufügen des iPhones steht drin, dass das Phone durch Neuinstallation der iPhone-Software in eine "development state" versetzt werden muss. Das ist mit der Version 2.0 so nicht nötig!
5. Anschließend eine App-ID erzeugen. Dabei sollte laut Anleitung ein Bundle-Identifier angegeben werden. Der entspricht einem Namespace. Angegeben wird also z.B. "Nerdpride" bei App ID Name und "de.nerdpride.*" als App ID. So kann später die bundle id "de.nerdpride" heißen. Damit genügt im Grunde auch eine App-ID für die komplette Entwicklung mehrerer Anwendungen.
6. Beim Provisioning werden nun Gerät, Zertifikat, App ID und Device verknüpft. Dieses Profil wird dann runtergeladen. Im XCode Organizer (Window/Organizer) zuerst auf das Plus beim Device bei "Provisioning" klicken und dann die Datei auswählen (Nicht wie beschrieben manuell in das entsprechende Verzeichnis kopieren). Das Profil wird kurze Zeit später am iPhone installiert. Ob das geklappt hat, kann man auch am iPhone über Einstellungen/Allgemein/Profil überprüfen.
7.1. Falls beim Builden der Fehler "Your mobile device has encountered an unexpected error (0xE8000001) during the install phase: Verifying application." ausgegeben wird, stimmt evtl. die Bundle-ID noch nicht. Um das zu beheben, öffnet man in XCode die Info.plist für das aktuelle Projekt (unter "Resources" im Bereich "Groups&Files") und ändert den Wert "Bundle identifier" auf den laut Punkt 5 eingestelte App-ID. Im Beispiel oben wäre das: "de.nerdpride.${PRODUCT_NAME:identifier}
Alternativ ruhig mal das iPhone neu starten.
7.2. Falls es weiterhin Probleme mit dem Codesigning gibt, in XCode über einen rechten Mausklick auf den Projektnamen in "Groups&Files" und "Get Info" bei "Code Signing/Code Signing Identity" im Schlüssel "Any iPhone OS Device" den Namen des laut 3 erstellten Zertifikats eingeben (z.B. "iPhone Developer: Hans Halbe"). Ob das so stimmt, was man eingegeben hat, prüft man am besten, indem man unter "Code Signing Provisioning Profile" etwas weiter unten bei "Any iPhone OS Device" auf die Wertauswahl klickt. Hier sollte dann unterhalb des Namens das vorhandene Provisioning Profile angezeigt werden. Das kann man da auch ruhig auswählen.

 

Labels: , ,