Das Apple SDK eignet sich für die iPhone Programmierung sehr gut. Auch der Simulator ist komfortabel zu bedienen. Wenn man eine App für das iPhone geschrieben hat möchte man diese dann auch nicht nur auf dem Simulator testen bzw. installieren sondern auch auf dem iPhone. Doch dies lässt Apple leider nicht so einfach zu. Hier erfährt ihr, wie ihr euer App vom Simulator auf das iPhone bringen könnt.Um eine selbst “gecodete” iPhone App auf dem iPhone zu installieren muss man einen iPhone Developer Account besitzen, der leider nicht umsonst ist.
Aber dafür gibt es einen ganz einfachen und schnellen Weg, dies zu “umgehen”. Dabei muss aber das iPhone / iPod Touch mit einem Jailbreak versehen sein.
xCode vorbereiten
- Erstelle einen keychain(Apple-Tutorial) – ACHTUNG: keinen System keychain, sondern einen Anmeldung keychain.
- Die Datei /Developer/Platforms/iPhoneOS.platform/Info.plist sichern
- In der Datei /Developer/Platforms/iPhoneOS.platform/Info.plist folgende Änderungen vornehmen:
- Gehe zur Zeile 46. Ersetze XCiPhoneOSCodeSignContext mit XCCodeSignContext
- Gehe zur Zeile 79. Ersetz XCiPhoneOSCodeSignContext mit XCCodeSignContext
- Speichere die Datei
- Starte xCode neu
Compilieren
- Der Name des Keychain muss unter Signature in der plist der App eingetragen sein. Dazu einfach diesen manuell eingeben.
- Anschließend beim Projekt oben links in xCode auf Relase gehen und iPhoneos 3.xxx umstellen
- Auf Build klicken
- Dein Programm wurde erfolgreich kompiliert(Voraussetzung, natürlich, dass kein Syntaxfehler ist und das App auch im Simulator läuft)
Installieren des Compilierten xCode Programms auf deinem iPhone/iPod
- In dem Projektordner befindet sich ein Ordner build
- In dem Ordner build befindet sich ein Ordner Relase-iPhoneos. Dort befindet sich wiederum eine Datei Namens “deinApp.app”
- Jetzt gibt es 4 Möglichkeiten die App zu installieren. Solltet ihr es für Freunde veröffentlichen wollen, so wählt Schritt 4.
- Möglichkeit 1(privat)
- Die Datei(Paket) via SSH auf dem iPod/iPhone kopieren in den Ornder /Applications
- Möglichkeit 2(privat)
- den MobileInstallation Patch installieren(via Cydia)
- Die Datei “deiApp.app” in die Itunes Mediathek importieren
- Synchronisieren; das App wurde installiert
- Möglichkeit 3
- iPhone / iPod anstecken, als Developer iPhone enrichten, dann auf Build&Go klicken. Dass App wird anschließend auf euerem Gerät aktualisiert.
- Möglichkeit 4 (öffentlich)
- Die Datei “deineApp.app” an source@apwn.de senden, und anfragen ob wir es in die Cydia Source aufnehmen. Dann kannst du es, sobald es in die Source eingefügt wurde downloaden via Cydia: http://source.apwn.de
- Solltest du die .app Datei nicht versenden können, so lade diese doch vorher auf Rapidshare hoch und sende uns dann den Rapidshare-Link.
- Möglichkeit 1(privat)
Und schon hat man eine voll Funktionsfähige App auf dem iPhone. Allerdings sollte man sich im klaren sein, dass man gegen Apple’s Richtlinien verstößt.
Das Debuggen funktioniert leider nur mit dem Simulator, dafür liest diesen Artikel.









cool. ich habe des bisher nur mit “CodeSignng Required NO” bei Firmware 3.0 hinbekommen. doch der Trick funktioniert ja auch mit 3.1.2!!!
Hallo. Danke für das Tutorial.
Ich habe mir zwar einen Keychain erstellen können, weiß aber nicht, wie ich diesem beim app eintragen kann.
Im moment kommt beim compilen der fehler:
iPhone Developer: this identity cannot be used for signing code
(Da ich nicht herausgefunden habe, wie man das eintragen kann beim app, habe ich mir einfach den keychain iPhone Developer erstellt, denn nach diesem sucht xCode bei mir standartmäsig)
Was ist da falsch gelaufen?
Du musst in der Plist der App manuell den Namen des Keychains eingeben. In der Plist sollte ein Eintrag sein, der den Wert iPhone Developer hat. Genau dieser muss ersetzt werden.
Nein, das ist leider bei mir nicht der Fall, die projektname-info.plist sieht so aus:
CFBundleDevelopmentRegion
English
CFBundleDisplayName
${PRODUCT_NAME}
CFBundleExecutable
${EXECUTABLE_NAME}
CFBundleIconFile
CFBundleIdentifier
com.yourcompany.${PRODUCT_NAME:rfc1034identifier}
CFBundleInfoDictionaryVersion
6.0
CFBundleName
${PRODUCT_NAME}
CFBundlePackageType
APPL
CFBundleSignature
????
CFBundleVersion
1.0
LSRequiresIPhoneOS
NSMainNibFile
MainWindow
Ist das die Falsche datei?
@Phil
CFBundleSignature sollte es sein, da trägst du einfach manuell exakt den Selben Namen, wie der erstellte Schlüsselbund hat ein. Groß und Kleinschreibung beachten.
Danke erstmal für die antwort ^^
Will die kommentare eigentlich nicht so zuspammen, aber forum is ja im moment inaktiv.
Geht leider immer noch nicht, selber Fehler. Hier mal ein paar screenshots:
der keychain:
http://www.abload.de/img/keychainnkrj.png
die plist:
http://www.abload.de/img/plistsvv0.png
der Fehler:
http://www.abload.de/img/errorinxcodexwpm.png
Da musst du bei dem projekt auf get info klicken und bei any iphoneos bei codesigning steht daneben iphone developer. das musst du auf den key ändern den du erstellt hast. allerdings bekomme ich dann einen anderen fehler :
Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourcompany.CodeSign’ could not be found
@Phil
Wie Simon bereits sagte, musst du diesen Eintrag in den Projektifos vornehmen. Dort ist bei dir 100%ig der Eintrag iPhone Developer, da der ja hergenommen wird, laut Beschreibung
@Simon
Du hast dann das falsche Profil angegeben. der Name muss exakt auch Groß und Kl. Schreibung übereinstimmen.
Sollte es noch nicht funktionieren, zeige ich eich meine Screenshots
danke ananas und simon, es hat geklappt ^^
Hab schon das erste app auf dem iPod erfolgreich installiert ^^
Gibt es da nicht auch eine Deutsche Anleitung für das “keychain”?
@Lumi
Leider nicht, aber die Englische ist doch auch mit Bildern sehr genau beschrieben. Außerdem musst du nur einen normalen Schlüssel in der Gruppe Anmeldung erstellen!
@lumi
Um es kurz zu erklären (ich hatte erst auch probleme mit dem keychain, es gab auch leichte abweichungen)
Du musst in Programme/Dienstprogramme und dann Schlüsselbundverwaltung auswählen. Damm gehst du auf Schlüsselbundassistent(oben) -> Zertifikatassistent -> Zertifikat erstellen.
Dann musst du nur den Bildern folgen. Beim ersten gabs bei mir eine leichte abweichung. Da wo “Zertifkatstyp” steht, musst du CodeSignierung auswhählen.
Das kommt in dem Apple tut erst etwas später^^ Danach ist aber alles gleich, nurnoch ein paar zusatzfenster, da drückst du aber jeweils immer nur auf fortfahren oder weiter.
Hey,
ich hab XCode 3.2.1 (3.2 finde ich nirgentwo)
Zertifikate ist erstellt.
Den plisteintrag “XCiPhoneOSCodeSignContext” in xcode hab ich geändert.
Fehlermeldung: Command /usr/bin/codesign failed with exit code 1
Weiß einer den Fehler? Danke
Hi,
habe es auch mal mit eurem Tutorial versucht.
Leider komme ich nicht weiter!
- Habe einen Key erstellt (MKCF).
- Diesen habe ich die projektname-info.plist bei CFBundleSignature eingetragen
- Anschließend hab ich über Infos in xCode den “iPhone Developer” zu “MKCF” umgeändert
Wenn ich jetzt auf Build drücke erhalte ich die Fehlermeldung:
“MKCF: this identity cannot be used for signing code
Command /usr/bin/codesign failed with exit code 1″
Ich muss dazusagen, ich habe den Konsolen-Teil “codesign -s identity -v code-path …” von der Apple-Anleitung weggelassen weil ich ihn nicht blicke. Liegt es vielleicht daran?
Danke & Grüße,
Michi
Versuvh mal den Keychain anders zu nennen. Nach dem Apple Tutorial sollte das nicht mit der Konsole zu tun sein
Habs jetzt mal mit meinem Namen + Kürzel und dem “FDW” von dem Kollege weiter unten hier in den Kommentaren ausprobiert.
Immer wieder die geiche Meldung.
Liegt es vllt auch an 3.1.2 ?
Hat sich erledigt.
Das Problem bestand darin, das im ersten Fenster des Zertifikats-Assistenten, die zweite Dropbox nicht aufgetaucht ist und ich diese auf dem Standardwert gelassen habe. Hier “Code Signatur” auszuwählen wäre natürlich klug gewesen
Danke für die super Anleitung nochmal! Freeeeuu!
Ich bekomme den Fehler:
“blublub.app : The operation was cancelled by the user.
Command /usr/bin/codesign failed with exit code 1″
Habe alle Tipps bereits beachtet und gecheckt!
@SKYLO
Check mal die Kommentare im Artikel von @VBMICHI, der hatte das selbe Problem wie du. Wahrscheinlich hast du die Signatur falsch erstellt….
die 2. dropbox hab ich schon richtig ! Allerdings die zeile mit dem CFBundleSignature finde ich nicht! Wo soll die Datei sein?
ich installier grad xCode neu weil er mir komische Fehler ausspuckte! Aber habs gefunden, hoffentlich wars das
hab keine lust mehr atm!
problem bestehtimmernoch, genau dieselbe meldung, hab mein Keycahin nach Vorgabe erstellt “iPhoneDev” genannt… in beiden Fällen (Signature) und in der Get Info eingetragen und nichts passiert^!
Nenn die mal nicht iPhoneDev, irgendeinen anderen beliebigen Namen, z.B. skylo
es heisst nun skylozerus ist aber unsicher! woran liegt das, er beschwert sich nun das das Zertifikat abgelaufen is oder ungültig!
ah ok das problem war nur kurz… habs gelöst!
aber nun… The identity used to sign the executable is no longer valid… device clock set valid. signing certificate not expired…” all das is im organizer!
Ich habe leider das Problem, dass wenn ich ein neues Zertifikat zum Code signieren erstellen will, der Zertifikatsassistent nach der Angabe des Namens rumspinnt.
Wenn ich nach dem ersten Fenster unten auf Weiter klicke kommt von oben eine Warnung heruntergefahren (“Sie sind dabei ein selbst-signiertes Zertifikat zu erstellen. …”), die ich dann mit Fortfahren bestätige.
Sie verschwindet allerdings trotzdem nicht.
Das sieht dann so aus:
http://img521.imageshack.us/img521/3281/fehlerv.png
Auf dem bild kann man auch sehen, dass auch das Feld Zertifikatstyp gesperrt ist.
Weiß jemand woran das liegen könnte und wie es zu beseitigen ist?
@1.Zocker
Bist du dir sicher, dass du das richtige Zertifikat erstellst?
Schau mal hier genauer nach:
http://developer.apple.com/mac/library/documentation/Security/Conceptual/CodeSigningGuide/Procedures/Procedures.html
Hi!
Bei mir funktioniert das ganze leider nicht =/
Fehler:
Code Signing Identity ‘iPhone Developer’ does not match any valid, non-expired, code-signing certificate in your keychain.
Ich kann leider den Punkt iPhone Developer nigrends finden ;(
hab das selbe problem wie skylo! “The identity used to sign the executable is no longer valid… device clock set valid. signing certificate not expired…”
was mach ich falsch?
@Crank
Check mal alle deine Uhrzeiten….. Ablaufdatum vom Zertifikat, bzw. erstell das neu..
hab ich schon das zertifikat läuft angeblicht bis 2011…
hab ich schon das zertifikat läuft angeblicht bis 2011…
gibt es eine möglich keit wenn das du mir einfach dein zertifikat schickst?
@CRANK
Das musst du sebst erstellen. Bist du nach dem Apple-Kommentar vorgegangen? Sonst check mal die Comments, da sind auch viele Probleme gelöst und beschrieben
selber erstellt nach apple anleitung sieht genauso aus wie auf deinem screen
Hi,
vielen Dank, funktioniert einwandfrei doch habe ich noch eine Frage.
Wie kann ich mein iPhone als Developer iPhone einrichten?
Vielen Dank
John
@Crank: Wie hast du dein Problem gelöst?
Ich bekomme auch am Ende die Meldung, dass mein Zertifikat abgelaufen ist. Habe bereits alle Uhren kontrolliert und das Zertifikat neu erstellt.
Danke,
Florian