iPhone Development on Jailbroken Device

If you are just starting out on iPhone development, or are considering starting but don’t feel like dropping $99 without getting your hands wet first, then you’ll need to jailbreak your device.

For me, this was great at first as it was far easier to set up than XCode provisioning profiles, and it let me see if I was felt confident enough playing around in Objective C to really take the dive and pay for a developer account.

In case you somehow don’t know where to jailbreak, head to Dev-Team Blog and download the appropriate torrent.

A quick note: I own one of the new Aluminum MacBooks and still have not successfully jailbroken my iPhone using it, due to some error/bug/whatever with the USB drivers failing to put the device into DFU mode. Just find a windows computer to use for 15-25 minutes and use QuickPwn on it.

After you jailbroken your device, you still need to do some tricky steps to get your own compiled iPhone app running on your device. You can find a walkthrough of how to do this here.

iPhone SDK Provisioning Walkthrough

By far the most helpful single resource I found during the long and difficult course of properly signing my code and getting it running on my iPhone is locaded at 24100.net. And the title of the post is very helpful, because those two errors, 0xE800003A and 0xE8000001, are the curse of provisioning on iPhone development.

To sum up my own experience with XCode signing, I learned a few things which have really improved my development experience.

  • I delete provisioning profiles out of XCode as soon as I’m done with them. I will head to ~/Library/MobileDevice/Provisioning Profiles and delete everything in there, and then close XCode.
  • Drag the one .mobileprovision file you want to work with to your XCode icon in the dock, XCode loads it, renames it and puts it back in the above directory, and then I close XCode again. I know, it seems crazy, but XCode gets confused easily, and I’ve found restarting XCode helps.
  • If I’m building for AppStore or Ad Hoc, I literally just load the one provision, clean the entire build (with both checkboxes checked), build it, and then delete the provision profile out of the XCode directory.
  • I spend most of my time with my single development profile sitting in the directory. Even still, XCode spits errors at me sometimes, and a clean build + XCode restart fixes it. I’ve even had to restart my iPhone once when it was still giving me errors after the above steps.