Aymeric on Software

Because we needed another of these blogs...

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.

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 work.

Files to replace:

Links to original authors:

Update: it works perfectly with the latest version of the SDK ie 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.