用Xcode3將程式放上iPhone的程序:2009年11月03日星期二
由"No provisioned iPhone OS device is connected!"一文可知,在歷經千辛苦後,終於經由Xcode將程式放上iPhone了,這一個程序的不確定性,值得為文記之。
首先,依照Erica的iPhone SDK開發範例大全所述,共有三種方式可以讓程式放上iPhone,如下:
以上三階段,逐步困難,終極目標當然是--->3.開發程式放到Apple Store上,要到達Apple Store,阿羯以為另有以下兩階段:
0. 用Xocde在Mac上開發程式後,在Mac上用iPhone Simulator測試。
1.5. 自己開發的程式,將souce code給另一位已加入iPhone開發者計劃(交了$99美金)的人,而且此人有自己的iPhone及Mac,他可以用其Mac上的Xcode將收到的程式 load上他自己的iPhone。
所以,總結,真正的開發過程有五段:
0. 用iPhone simulator。
1. 用Xcode load自己的程式上iPhone。
1.5 用Xcode load別人的程式上iPhone。
2. 程式經由Ad Hoc 方式上99支iPhone。
3. 程式上Apple Store上任何iPhone。
本文要講的是上述的1及1.5的程序。
先講----1. 自己開發的程式,經由Xcode load上iPhone:
第一步是要上iPhone Developer Program參加Apple的iPhone開發者計劃(iPhone SDK開發範例大全1-10, p40有簡略說明)。
參加開發者計劃有兩步驟,一是登記,二是繳費(個人是美金$99元)。自身的經驗好像不是一登記就好了,Apple會要求一些有的沒的,與幾位參加了開發者計劃的人交換意見,似乎大家都有各自不同卻類似的情形。
第二步是到iPhone Dvelopement Portal去取得provision profile。
圖二:provision file 20091029.mobileprovision在Macitosh HD/admin/下載項目內。見下圖中的20091029.mobileprovision。
圖三:Personal Profile 。
圖四:Keychain、鑰匙圈存取。對不熟悉MAC的人,有些挑戰。要打開鑰匙圈存取,打開MAC桌面上的Macitosh HD,再順著"應用程式/工具程式/鑰匙圈存取"即可。或用ctrl-space打開MAC的Spotlight,再鍵入"鑰匙圈存取"就會找到鑰匙圈存取。
第三步,將iPhone連上MAC,一連上,iPhoto、iTunes都會自動打開,這時最重要的是--千萬別upgrade OS,維持OS3.0,iPhoto、iTunes會一陣同步,等到這一切做完,將iPhoto、iTunes都關掉,再將Xcode打開。
圖五:將iPhone連上MAC,第一次開Xcode,這張圖取自Erica的iPhone SDK開發範例大全p41,阿羯的iPhone第一次連上MAC、開Xcode忘了留下來,所以只好用書上的,可能不完全一樣。重點是:別按下"Continue Using for Development"鍵。按Ignore。
圖六:出現iPhone已經連上的畫面,按下Use for Development畫面後,會出現圖七。
圖七:再將provision file拉入provisioning,本例的provision file name是20091029.mobileprovision(見圖二)。Provision file 20091029成功地拉入organizer/provisioning後, 圖六provisoning右方的框內時,DEVICES下jesselue右的燈號會轉為綠色,如下圖。
圖八:double click Target下的Camera(左下星號處、本程式是Camera),出現右半邊Target "Camera" Info,選Build,往下看Code Signing/Code Signing Identity/Any iPhone OS Device,按 Any iPhone OS Device,選20091029(記得provision file是20091029.mobileprovision?)下的iPhone Developer(其後有名字及號碼)。
圖九:Double click Camera-Info.pist,將Bundle identifier改為一串自己的identifier,這串identifie在第二步是到iPhone Dvelopement Portal去取得provision profile時需鍵入,我在那兒鍵入com.jesselue.*,依iPhone規定,我在這裡必需鍵入com.jesselue.隨便什麼,*表示隨便什麼,所以此處我鍵入com.jesselue.camera。
圖十:將Xcode左上的Device-3.0|Debug改成iPhone Device 3.0(Base SDK),如下圖上方。 再check Project/Set Active SDK時,會發現自動改成iPhone Device 3.0(Base SDK)了,如下圖中段。再Build/ Build and Go(Run),這時,程式就會load上iPhone了。別太高興,若這時急著在iPhone跑程式,會不成功,因為Xcode仍連著iPhone,需停止Xcode上這程式即可。一切大功告成。
再講:1.5 用Xcode load別人的程式上iPhone。
假設你已有provision file, 取得別人的程式source code後,執行以上圖八、圖九、圖十即可將別人的程式load上自己的iPhone玩樂了。