Vital iPhone stats for this post:
iPhone OS version: 2.2 UPDATE 7/11/09: OS 3.0 procedure here
Jailbreak status: Jailbroken using Pwnage Tool 2.2, old baseband preserved (see post here, coral cache)
The Goal: Get live on-device XCode debugging without being a paying ADC member.
Abstract: The iPhone uses code-signing to restrict what gets run on the device. Under normal conditions, this means that John-developer signs up with ADC (Apple Developer Connection) and gets, among other credentials, a code signing identity. He downloads a certificate, plugs all the info into XCode, and when he compiles his project for debugging or release, it gets signed with this certificate. When it gets transferred to an iPhone (say, for debugging) or released to the App Store, this signature gets checked to ensure that the code came from a registered, trusted ADC member.
What WE want to do is run our own code, developed in XCode, on our iPhone without this valid certificate from Apple. Part of this process allows code from OTHER non-ADC-signed developers to run on other phones, but that’s not the real point. The goal of THIS tutorial is to make the Build and Go live-on-device debugging work on a jailbroken iPhone without the proper signature, in other words without the need to pay. Note: this does not allow you to develop for the App Store. This is only good if you’re only developing for yourself or you plan to distribute only for jailbroken phones/iTouches.