Juggling iOS versions

Busy times for those downloading Apple iOS SDK releases. After releasing the first beta for iOS 4.1 to developers yesterday Apple today has released the iOS 4.01 SDK. This was inevitable after Apple issued an update for iPhone devices earlier today with the “new and improved” formula for the signal strength display. They also pushed out 3.2.1 for the iPad at the same time to address wireless connectivity and other issues. All this and a hastily called press conference tomorrow….

I have not yet downloaded either of these updates and I have learnt from experience that it is best not to rush to do so. Of course if you have already updated your one “development” device to 4.0.1 or 3.2.1 you may not have much choice. My lessons learned on juggling multiple iOS versions (in random order) as follows:

  • Never install a beta into your /Developer directory. Keep your current production version installed in /Developer and install beta versions in a separate directory (e.g. /ios41b1).
  • Always ensure you have a full backup of your disk before installing anything in case something bad happens. Of course backups are always a good idea but make it part of your routine before installing an Xcode update.
  • It can get very expensive for independent developers but try to avoid using your own, personal iPhone or iPod as your development device. Consider buying a used device to dedicate as a development device. That way you can take your time about upgrading. A used iPod Touch can be a cheaper option for a development device in many cases if you are not developing for the camera, GPS, etc. Note that if you want to test for multi-tasking ensure you get at least a 3rd Gen device.
  • Don’t be the first to download and install any new release. Be especially careful with early beta releases. Watch the Apple discussion forums for reported problems. Some of the early 4.0 beta releases had a lot of installation problems. Give it a day or two for the dust to settle and let others find the problems.

If you have any other hints or suggestions on managing upgrades let me know in the comments.