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:
- Install the iPhone SDK. The installer will install XCode but it will not let you select the iPhone components.
- 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 byiPhone
.
- Those packages are located inside the
- 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/”.
- 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
Links to Original Authors
- http://discussions.apple.com/thread.jspa?threadID=1455699&tstart=0
- http://www.tbradford.org/2008/03/iphone-sdk-beta-2-possible-ppc-fix.html
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.