Use the iPhone SDK on old Mac PPC machines

Apple states that the iPhone SDK should only be used on Intel Macs.

However, the compiler, emulator and code signing tools work perfectly on older PPC Macs provided you work around the arbitrary limitations of the installer.

My iMac broke down so I had to revert to using my old and venerable PowerBook using Mac OS X 10.5.6 (9G55). I used the first public SDK (md5=96849e4a17674d55d5af75b2d1d6579f). The following tricks might not work with the latest versions.

Installation Steps

The installation steps are simple:

  1. Install the iPhone SDK. The installer will install XCode but it will not let you select the iPhone components.
  2. Install the missing iPhone packages manually.
    • Those packages are located inside the Packages subdirectory of the SDK installation disk image.
    • You can simply double click on them to start installing.
    • You need to select the /Developer directory as the install location for each of them.
    • The packages to install manually are: DeveloperDiskImage.pkg and all the packages starting by iPhone.
  3. Change iPhone Simulator Architectures.xcspec.
    • This allows to compile iPhone apps and to use the simulator on PPC machines.
    • The file is located into “/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications/”.
  4. Change /usr/bin/codesign.
    • This allows to upload signed executable to the iPhone.
    • For some mysterious reasons codesign requires a universal binary, so the trick is to make it believe it got one.
    • You need to rename codesign sudo mv /usr/bin/codesign /usr/bin/codesign.orig.
    • Then replace it by the perl script attached below. Don’t forget to give it executable rights: sudo chmod +x /usr/bin/codesign.

That’s it. It should now work.

Files to Replace

Updates

Update: it works perfectly with the latest version of the SDK i.e.

iphone_sdk_for_iphone_os_2.2.19m2621afinal.dmg, md5=9d0a818f41be507537495920cd0ef9bc

Update: Obviously this trick no longer works for iOS 3 and more recent versions.