目前在XCode上開發的iOS程式隻能在模拟器Simulator中運作,如果要放到真機上測試,需要蘋果官方認證的開發者賬号,購買開發者證書iDP,99美金一年啊!
作為剛開始學習iOS程式設計的菜鳥,這麼大手筆花錢實在是肉疼。。。經過一番折騰,借鑒各種大神的文章,終于成功在真機上編譯運作成功!
這裡将方法與大家分享。
我的運作環境是:【電腦】XCode6.0.1 + OS X 10.9.5 【真機iPod Touch】iOS6.1
準備工作:
1. 首先,你要有一個已經越獄的iPhone/iPod/iPad,越獄方法此處不提供。
2. 在用來測試的真機Cydia中添加源:http://apt.weiphone.com,下載下傳适合真機系統版本的AppSync。
3. 在電腦上建立一個證書,用于為生成的程式簽名。
建立證書
建立證書的過程比較簡單,在電腦上打開“其他-鑰匙串通路”。然後在菜單欄裡點選“鑰匙串通路-證書助理-建立證書...”來打開向導。注意這裡的三個地方,必須要把名稱命名為iPhone Developer,将類型設定為代碼簽名,将”讓我覆寫這些預設值”選中。之後的步驟什麼都不用改,一路點選“确定”和“繼續”,最後完成這個向導就可以了。

4. 如果Xcode在運作狀态,請先 Command+Q将其 完全關閉。然後打開“其他-終端”,我們需要用到一些UNIX指令,可能看起來會比較繁瑣,但是相信我,這可是在每年節省99美金啊!
① 進入iPhone SDK目錄,指令如下:
1 | |
備注:不同版本的Xcode最後的版本号不同。在Xcode 6.0中是 iPhoneOS8.0.sdk,未來版本可能版本高一些,早期版本的就低一些。請根據實際情況自己改動。(如果實在不知道自己的版本号,可以用“ls”指令檢視所有檔案。)
② 備份原檔案,如果電腦設有密碼,系統會提示你輸入密碼(輸入後不會顯示出來,敲回車即可)
1 | |
③ 編輯配置檔案SDKSettings.plist
為了友善修改,我們可以直接用Xcode打開這個檔案。首先要打開這個檔案所在目錄:
1 | |
在彈出的Finder視窗中輕按兩下 SDKSettings.plist ,會啟動Xcode的圖形界面,展開 DefaultProperties 分支,将下面的ENTITLEMENTS_REQUIRED和CODE_SIGNING_REQUIRED兩個屬性改為 NO。
備注:這裡可能會遇到系統提示【“SDKSettings.plist” is locked for editing......】,這是因為檔案讀寫的權限問題,解決辦法如下:
首先,修改檔案夾權限,此時我們所在目錄是iPhoneOS8.0.sdk,如果輸入指令“cd ..”傳回上級目錄,“ls -al”檢視所有檔案,會發現系統顯示iPhoneOS8.0.sdk -> iPhoneOS.sdk,這表示iPhoneOS8.0.sdk是指向iPhoneOS.sdk的快捷方式,是以我們要修改的真正檔案夾是iPhoneOS.sdk,指令如下:
1 | |
然後,修改檔案夾内所有檔案的讀寫權限:
1 | |
現在輕按兩下打開 SDKSettings.plist, 你會發現,剛才不能修改的屬性可以修改了!
④ 編輯另外一個配置檔案Info.plist
1 2 3 | |
在彈出的Finder視窗中輕按兩下打開 Info.plist 。分别在 DefaultProperties 分支下、 RuntimeRequirements 分支下和 OverrideProperties 分支下,共有3處,将全部的 XCiPhoneOSCodeSignContext 修改成 XCCodeSignContext 。
備注:同第③步,可能會遇到權限問題,修改Platforms 檔案夾權限和該檔案夾内所有檔案的權限 即可,步驟同上。
5. 準備自定義的生成後腳本(此步驟需在聯網狀态下進行)
1 2 3 4 5 | |
6. 修改工程設定
備注:本階段之前的修改配置檔案、準備腳本等,隻需要做一次。但本階段的操作,對每個需要真機調試的工程都要做一遍。
① 禁用Xcode自動的簽名操作
将工程配置“Build Settings”中所有的Code Signing選項全部設為Don’t Code Sign,如圖。
② 添加自定義的生成後腳本 在Build Phases中,點選左上角的”+“号,添加一個”New Run Script Phase“,輸入以下腳本:
1 2 3 4 5 | |
至此配置全部完成!!!連上你的iPhone/iPod/iPad,編譯運作,看見真機螢幕上程式跑起來的時候,99美金就省下了!!!
在此感謝大神貼,提供的Xcode 5 + iOS 7免證書(iDP)真機調試與生成IPA全攻略。