js' blog

iPhone Development
Created: 26.02.2009 15:53 UTC

So, endlich habe ich es geschafft, auf meinem iPhone eine selbstgeschriebene Anwendung zum Laufen zu bringen. Das war garnicht so einfach, weil ich nur einen PowerPC Mac habe, ein PowerBook, und PowerPC vom iPhone SDK offiziell nicht unterstützt wird. Aber alle Binaries des SDK sind Universal Binaries. Daher ist es möglich, die einzelnen .pkg Dateien, die der Installer auslässt (er installiert auf PPC nur XCode) manuell via Pacific oder einem ähnlichen Tool zu installieren. Dann läuft zwar der Simulator und alles (aber auch nur, nachdem man ein paar Files editiert hat, die XCode sagen, daß PPC auch eine supportete Architektur ist), aber es auf dem iPhone laufen zu lassen ist nochmal was anderes. Da ich nicht im Apple Developer Program bin und ich eh erstmal nur was rumspielen will, habe ich dementsprechend kein Zertifikat. Das ist erstmal das erste, worüber er meckert. Da kann man aber einfach ein self-signed Zertifikat für Code-Signing im Zertifikatsassistenten von OS X anlegen und XCode gibt Ruhe. Dann kommt aber wieder ein Problem, da ich einen PPC habe: codesign klappt hier nicht - er mag das, was er signen soll, nicht erkennen. Ich habe aber ein kleines Wrapper-Script für codesign gefunden, das erst via lipo eine Universal Binary draus macht, es signiert und dann wieder eine kleine Binary für das iPhone draus macht - dann gehts und er erkennts. Wenn man so weit ist, nimmt das iPhone aber immer noch nicht die Anwendung - ist ja klar, ist ja nur ein self-signed Zertifikat. Was macht man da? Auf einem original iPhone hat man da Pech. Auf einem gejailbreakten hingegen kann man das Programm „MobileInstallation“ via Cydia installieren und einen Eintrag in der Info.plist des Programms, das man auf das iPhone laden will, hinzufügen und es geht.

Btw: Ohne Jailbreak ist ein iPhone meiner Meinung nach eh komplett nutzlos. Ohne kam ich nichtmal in mein WLAN, weil man unmöglich 63 Byte tippen kann, ohne einen Tippfehler zu haben (siehe meinen Eintrag davor). Aber mit Jailbreak gibt es dann eine Zwischenablage (einfach in Cydia Clippy installieren) und dann kann man folgendes machen: Auf dem Mac im Adressbuch einen Eintrag WLAN machen und dem als Straße den WLAN-Key geben. Dann synct man das iPhone via iTunes und geht auf dem iPhone in den Kontakt, packt den Key in die Zwischenablage und fügt ihn einfach ein, wenn man ins WLAN will. Ein Jailbreak hat auch sonst nur Vorteile: Dann kann man z.B. auch Videos aufnehmen, MMS senden und empfangen, Bluetooth ist auch in Arbeit, hat ein Terminal auf dem iPhone (sogar root!), kann einen OpenSSHD laufen lassen, kann Emulatoren für SNES, NES, GB und PSX laufen lassen, kann Doom und Quake laufen lassen und vieles, vieles mehr! Also der Jailbreak macht das iPhone meiner Meinung nach erst nutzbar ;).