網上能找到的關於Delphi XE系列的移動開發的相關文章甚少,本文盡量以詳細的圖文內容、傻瓜式的表達來告訴你想要的答案。
原創作品,請尊重作者勞動成果,轉載請注明出處!!!
注意,以下討論都是以"合法注冊開發者賬號並支付年費"為前提,利用無證書生成iPA的小朋友請無視本文:
真機調試的開發測試環境:
RAD平台:XE7
MAC平台:OSX10.8.5
Xcode版本:Xcode5.1.1
設備:iPhone 4 ios6.1
特別注意:
1. 本文圖片較多,請於較好的網絡環境下觀看,以免影響用戶體驗並浪費流量,引起罵爹罵娘的連鎖反應。
2. 如果你的MAC平台曾作過無證書真機調試,生成過自簽名證書及修改過Xcode的,請刪除相應證書並還原Xcode設置。
3. 如果你的Xcode版本低於Xcode5或以下(如Xcode4.x),請無視本文,並點擊下面鏈接,參考Xcode通用版本的做法:
XE7 & IOS開發之開發賬號(1):開發證書、AppID、設備、開發授權profile的申請使用,附Debug真機調試演示(XCode所有版本通用,有圖有真相)
1.利用Xcode5或以上版本的新特性,一步到位添加設備並自動生成證書、AppID、Profile。
---------------------------------------------------------------
1.點一下桌面,'Finder'->'前往'->'應用程序'。
2.找到Xcode,雙擊運行。
3.Xcode打開後,點左上角菜單'Xcode',點'Preferences'。
4.在打開的窗口中,點'Accounts',切換到賬號頁,然後點下面的'+'號,在彈出菜單中點擊'Add Apple ID'。
5.在彈出的對話框中,填入你的蘋果開發者賬號和密碼。填完後,點擊'Add'。
6.假如賬號密碼正確的話,Xcode會將賬號添加到賬號列表,點擊左側的賬號,可列出該賬號的開發授權,如iOS Agent表示可開發iOS的App。
我們點擊左上角的叉叉,關閉該窗口。
7.繼續,同樣在Xcode下,點擊'Window'->'Organizer'。
8.點擊'Devices',切換到設備頁,並將真機設備連接到MAC中。
9.右鍵點設備,在彈出菜單中選擇'Add Device to Member Center',或者選中該設備後,直接點下面的'+'號也行。
10.在彈出的對話框中,鉤選一個開發組,點擊'Choose'。
11.完成後,我們繼續左上角的菜單點擊'Xcode',點擊'Preferences'。
12.點一下'Accounts'切換到賬號頁,點一下左側的賬號,點一下右側列出的開發組,並點擊'View Details'(需要選中一個開發組)。
13.在彈出的窗口中,我們點擊左上角的刷新按鈕,讓Xcode自動給我們下載Profile。
14.我們可以看到,下面列表中已出現了Xcode自動為我們提交生成的Profile了。格式都為:iOS Team Provisioning Profile: xxx。
之所以有2個,是由於AppID的Bundle ID決定的,這個東西填'*'和填'com.英文域名.*'有App使用真機權限上的區別。
15.我們來生成開發證書。點一下中間的'+'號,在彈出菜單中選擇'iOS Development'。
16.彈出提示:證書已生成。我們點'OK'。
17.我們再來生成發布證書。點一下中間的'+'號,在彈出菜單中選擇'iOS Distribution'。
18.彈出提示,我們的發布證書也生成了。我們點'OK'。
19.點一下左下角的刷新按鈕,刷新完成後,上方的證書列表會顯示剛才我們申請的2張證書:開發證書和發布證書。
我們去驗證一下證書是否已下回來了。我們點右下角的'Done',關閉窗口。
20.繼續點左上角的叉叉,關閉窗口。
21.我們暫時不用關閉Xcode,點左上角的'-',最小化Xcode,因為等下我們還有用。
22.點一下桌面,回到Finder,點'前往',點'實用工具'。
23.找到'鑰匙串訪問',雙擊打開。
24.在鑰匙串訪問的窗口中,點左側的'登錄',點下面的'我的證書',則可以看到右側列表裡,Xcode已下載並為我們裝上了2張證書。
25.接下來,我們安裝Profile文件,點一下桌面或者背後的文件夾,跳到Finder下,點擊'前往',點擊'前往文件夾'。
26.在彈出的對話框中,輸入以下路徑:/Users/你的用戶名/Library/MobileDevice/Provisioning Profiles ,並點擊'前往'。
注意,該文件夾圖形方式下是找不到的,需要用路徑訪問。
27.直達該文件夾了,我們點一下左上角的第二個小圖標,讓它以列表方式排列。可以看到,Xcode為我們下載回來了開發賬號上的
所有的Profile,其中,10KB的那兩個,就是Xcode為我們自動提交申請並生成的,其余8KB的3個讀者不必關注,如果你們從來沒有
登錄開發者網站去手動生成過的話,是沒有這3個的。
我們將這10KB的2個重命名一下。
28.將10KB的這2個重命名為我們自己容易記的名字。
OSX下的文件重命名操作是這樣的:先點一下文件,在選中狀態下,隔1秒後,再點一下,文件件就會高亮,同時也可以編輯的了。
點得太快的話會被認為是雙擊,這裡不要雙擊安裝這2個Profile。
29.重命名後,點一下桌面下面的Xcode,讓它顯示出來,點一下已連接設備下的'Provisioning Profiles',然後把窗口拖開一點點,
直到可以看到後面的文件夾為止,然後將剛才重命名的文件拖到Xcode的空白處後放手,它將會自己安裝到設備上去。
這2個分別對應的是'*'和'com.英文域名.*',你可以按需要安裝其中一個或全部。
30.安裝完成後(大概也就一瞬間的事情),可以看到它們的詳細信息:名稱、對應平台、有效期、AppID、以及授權文件的狀態。
值得注意的是:使用Xcode自動生成的Profile,已經不用區分'開發或發布'類型了。
證書和Profile文件都OK後,我們就可以使用真機調試了。
31.此時可以觀察到,真機上已裝好2個授權文件。(位置:設置->通用->描述文件)
32.將Xcode關掉,我們已經不需要用它了。
33.回到Finder下,我們點擊左側的'應用程序',去運行PAServer。
34.找到PAServer 15.0,雙擊運行。
35.PAServer運行起來後,我們可以回到WIN下面,進行真機調試了。
2.真機調試,Debug方式。
---------------------------------------------------------------
36.打開XE7,並打開一個工程。
我們先來配置一下工程的授權設置,點擊'Project',點擊'Options'。
37.在Options窗口中,點擊'Provisioning',然後點擊右側的Target,在下拉菜單中的'All configurations'裡選擇'iOS Device platform'。
38.在Build Type中選擇:'iOS Device - Debug'。
39.在'Developer Certificate'中填上Mac裡Xcode自動為我們安裝的開發證書的名字。
開發證書的名字可以在Mac下->'鑰匙串訪問'->'登錄'->'我的證書'中,找到iPhone Developer開頭的就是,請注意大小寫。
40.填好開發證書以後, 我們繼續,點一下'Build Type',在下拉菜單中選擇'iOS Device - Ad hoc'。
我們繼續配置 Ad hoc這種編譯類型。
41.選擇了iOS Device-Ad hoc後,填上發布證書的名字、Profile文件在Mac中的路徑。完成後按'OK'保存。
發布證書的名字可以在Mac下->'鑰匙串訪問'->'登錄'->'我的證書'中,找到iPhone Distribution開頭的就是。
Xcode為我們下載的Profile的默認路徑是:
/Users/你的用戶名/Library/Provisioning Profiles/xxx.mobileprovision。
這裡要注意的是:發布證書的名字在MAC中,第一個D是大寫的,但在XE7中,這裡必須填小寫,如:
Mac下:iPhone Distribution : xxxxx
XE7下:iPhone distribution : xxxxx
否則,XE7的PAServer會因為這一個字母的大小寫原因而報找不到發布證書!
這可能是我這裡的問題,也有可能是XE7的PAServer的一個Bug? 期待更多測試結果及用戶反饋。
42.配置好編譯環境,如設備、尺寸、平台等。我們先來試下Debug編譯。雙擊Debug,變粗後,就可以運行工程了。
43.靜待編譯結果。
當進度在構建72x72的png時停留了一段時間而沒有進展,而下方也沒有給出錯誤信息時,我們可以切換到MAC下去授權程序簽名。
44.切換到Mac下,可以看到彈出了一個對話框,我們點擊'允許'或'總是允許'。然後切換回WIN下面看結果。
區別就是:'總是允許'後,重復編譯這個工程時,該證書對這個App的所有簽名都將一律允許,而XE7也不會在72x72的png停下來。
吃了炫邁,根本停不下來啊!
45.回到XE7下,授權簽名後,編譯繼續進行,如果沒有報錯的話,很快就能在真機上看到我們的App了。
46.運行結果真機截圖。(iPhone4 iOS6.1)
3.真機調試,Ad hoc方式。
---------------------------------------------------------------
47.停止調試後,我們將真機上的App先卸載掉。不卸載看不出新的編譯結果。
然後編譯設置改一下,更改為Ad hoc,其它基本不需要變動。更改完成後,可以運行工程了。
48.由於之前沒有選擇'總是允許'簽名,所以依然是在這裡停下來。我們去Mac裡授權一下。
49.點擊'允許'或'總是允許'。
50.注意,假如上一步點擊'允許',那麼馬上還會出現一次詢問。
這是因為Ad hoc方式,它會有2步操作:在真機上安裝App、生成ipa文件。
51.回到XE7下,允許簽名後,編譯繼續。這裡我們就不貼上真機截圖了。
52.至於ipa文件,可以在以下2個地方找到:
Mac下:/Users/你的用戶名/PAServer/scratch-dir/以(windows用戶名-iOS SDK名稱)命名的文件夾/xxx.ipa
Win下:工程目錄\iOSDevice\Release 或 Debug\xxx.ipa
4.關於Xcode5或以上版本自動替我們在開發者網站上做的那些事。
---------------------------------------------------------------
53.當我們在Xcode下添加了設備到Member Center時,Xcode替我們在開發者網站上添加了我們的設備。
54.同時,Xcode還替我們在開發者網站上添加了AppID。
名稱統一為:Xcode iOS Wildcard App ID。
55.同時,Xcode替我們在開發者網站上添加了Profile授權文件。
共2個,可以很容易識別出,文件的狀態是: Active(Managed by Xcode) 激活,並且由Xcode管理。
名稱統一為:
iOS Team Provisioning Profile: *
iOS Team Provisioning Profile: com.你的英文域名.*
56.當我們在Xcode下生成開發證書、發布證書時,Xcode替我們在開發者網站上添加了這2個證書。
至此,關於Xcode5或以上版本下的XE7 Debug和Ad hoc調試已介紹完畢。
而關於Application Store 的上架方式,我們稍後再介紹,謝謝關注。
PS:
---------------------------------------------------------------
FireMonkey移動開發可加QQ群:165232328 (本人非管理員,僅僅其中一成員,此群高手林立,期待各位Delphi愛好者共同交流)。
\x是十六進制的編碼吧,十六進制裡a,b,c,d,e,f分別就是十進制的10,11,12,13,14,15 ,
\xe5就是十進制的14x16+5=229
哈哈,我整出來這一串的意思了:正在載入%s版本
這是Unicode編碼的非ASCII碼字符,用如下三行代碼就可得到真正的內容(幸好是漢字):
str='\xe6\xad\xa3\xe5\x9c\xa8\xe8\xbd\xbd\xe5\x85\xa5%s\xe7\x89\x88\xe6\x9c\xac'
CODEC = 'utf-8'
print str.decode(CODEC)
看來這個是用三字節表示一個漢字的。