Thursday, July 9, 2009

Build and deploy iPhone application with offical and unofficial ways

I always call myself a 2 faces man because I accept both 2 things at the same time for everything: black and white, the good and the bad, angel and evil. In my point of view: nothing is only quite 100% good or bad and we must accept that truth in the real life.
As the title of this article, I will share you 1 trick and 1 official way to build your iPhone application. Trick is the bad, and the official way is good (if you accept to pay 99$/month for iPhone developer account).

Section 1: the good - how to build your iPhone application on XCode as official way of Apple

Below is the process to build and distribute your application on the real iPhone
If you have the iPhone developer account, please go to the iPhone developer program portal and access to below link:
http://developer.apple.com/iphone/manage/distribution/index.action

It has very detail guideline to help you in step by step. Just follow them.

Section 2 (the bad) build your iPhone application on XCode without IDP membership

This trick is only used in case you don't want to pay money (99$/month) for the developer account. However, I must warn you about some limitations as below:
1. You can not upload your iPhone application into AppStore. (sure. because it is an unofficial way)
2. You can only deploy and run your build app in iPhone OS <= 2.2. Currently, I can not run it in iPhone OS 3.0.
3. The iPhone SDK you can use for this trick is only from: 2.0 - 2.2

And ... now, below is the link that guide you about the trick:
http://www.vinodlive.com/2009/01/16/how-to-deploy-an-iphone-application-without-an-idp-membership/

Actually, the above trick does below things:


1. Create a Signing Identify on your Mac by following this simple guide from Apple.
In this step, we create a certificate (actually, it is not approved by Apple) in our computer and use it to sign for our code.
2. TextEdit the /Developer/Platforms/iPhoneOS.platform/Info.plist file with some special keys and values to skip checking mapping between the certificate and the provisioning profile.

3. Change the Project Settings . In the Properties List, find the Code-Signing-Identity and Select the Certificate Name(iPhone Developer) you created earlier. This step helps you sign your code with the created certificate.
4.  Add the a snippet on to your projects info.plist using TextEdit to cheat the compiler


If you succeed with above article, you're a lucky man. If you're failed, just do a small step in addition:
Go to Project/Edit project settings - check true for Generate profiling code.

I succeed with both ways.  So I write this article to share with you my experience. If you have any other "bad" or "good" ways, please share me.