Sep 26 2008

iPhone Development unter PowerPC

Es ist zwar mühsam das iPhone SDK auf einem PowerPC zu installieren, aber es geht. Dazu muss man das SDK herunterladen und die Daten aus dem Disk-Image herauskopieren. Sodann muss man in der Datei iPhone SDK.mpkg/iPhone SDK.dist ein paar Einträge ändern (zu der Datei kommt man über iPhone SDK.mpgk => Paketinhalt zeigen):

Die 3 Funktionen isIntel(), agreedToSLA() sowie SDKPresent() müssen so umgeschrieben werden, dass diese in jedem Fall true zurückgeben. Ist dies geschehen, so lässt sich das SDK mit der Datei iPhone SDK.mpkg installieren.

Nach der Installation funktioniert das SDK zwar prinzipiell, jedoch muss man noch den Simulator dazu bringen, den PowerPC als unterstützte Plattform zu akzeptieren. Dazu muss die Datei /Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/iPhone Simulator Architectures.xcspec um die RealArchitectures ppc (=g3), ppc7400 (=g4), ppc970 (=g5) und/oder ppc64 (=g5 64bit) erweitert werden. Zusätzlich müssen für diese Architekturen noch die entsprechenden Konfigurationsblöcke geschrieben oder aus der Datei /Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX Architectures.xcspec übernommen werden. Dieser Vorgang wurde auch von Tom Bradford in seinem Blog beschrieben: iPhone SDK Beta 2 PPC Fix.

Ist dies erledigt, so kann man entsprechende Applikationen entwickeln und am Simulator testen. Sollen die Applikationen jedoch wirklich auf das iPhone übertragen werden, so müssen zuerst einmal entsprechend Münzen bei Apple eingeworfen werden (d.h. man muss sich für 99$ als iPhone Developer registrieren lassen). Danach kann man über den Apple-Developer-Account entsprechende Zertifikate für sich und seine Applikationen erstellen.

Wenn man den Anweisungen aus dem Developer-Portal folgt, so kann man mit den entsprechenden Zertifikaten theoretisch die Applikation erstellen und auf das iPhone übertragen. Allerdings schlägt aus irgendwelchen unerfindlichen Gründen dir Signaturprozess fehl. Dieses “Feature” lässt sich jedoch durch einen seltsamen Umweg lösen: das erzeugte Object File (ein Thin Binary) muss in ein Universal Binary umgewandelt werden. Das Universal Binary kann dann signiert werden, und anschließend wieder in ein Thin Binary rückgewandelt werden. Ich weiß weder wieso das funktioniert noch wie man auf sowas kommt, aber es ist in den Apple Diskussionsforen beschrieben worden: iPhone SDK CodeSign Error. Wenn man mit Projektverzeichnissen arbeitet, die Leerzeichen enthalten, so muss das oben erwähnte Script wie im gleichen Thread erklärt erweitert werden.

Anschließend sollte der Entwicklung, Übertragung und Veröffentlichung von iPhone Programmen nichts mehr im Wege stehen. Mir ist es jedenfalls auf diese Art gelungen eine kleine Anwendung auf mein iPhone zu übertragen.