更新日期: 2011/03/11
適用範圍: Xcode 4 (只需更改相對應的 iOS 版本目錄位置)
參考資料:
1. Developing for a Jailbroken iPhone A to Z (iOS 4.0.1) « alexwhittemore.com
http://www.alexwhittemore.com/?p=398
2. Xcode 3.2.1 假認證,將自己的Apps放上iphone運行
http://xspace.uwantx.com/space.php?uid=1&do=blog&id=264
一. 環境:
1. Device: iPod touch 3rd generation (Jailbroken)
2. iOS: 4.2.1
3. Mac OS X: 10.6.6 Snow Leopard
4. Xcode: Xcode 4 and iOS SDK 4.3 Final
二. 步驟:
1. 在 Mac OS X 上, 開起終端機(Terminal), 執行以下的輸入﹕
(1). 進入對應的 iOS 版本位置:
cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk/
(2). 備份屬性設定檔; 會要求輸入密碼:
sudo cp SDKSettings.plist SDKSettings.plist.backup
(3). 使用 vi 來編輯:
sudo vi SDKSettings.plist
2. 承上, 找到:
CODE_SIGNING_REQUIRED
YES
…. 與 ....
ENTITLEMENTS_REQUIRED
YES
=> 將 YES 改成 NO 後, 儲存後離開 (按 esc 後輸入 :wq ). // :wq => write & quit
3. 承上, 然後輸入﹕
(1). cd /Developer/Platforms/iPhoneOS.platform/
(2). sudo cp Info.plist Info.plist.backup
(3). sudo vi Info.plist
=> 找到所有的 XCiPhoneOSCodeSignContext(有 3個),
並將其改成 XCCodeSignContext
4. 承上, 然後輸入﹕
(1). cd ~/Desktop(2). vi script (輸入 i 鍵,進入文本修改狀態)
(3). 將下面的內容複製到終端中 (Terminal)
#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf “\xc3\x26\x00\x00〃 >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
(4). 儲存後離開 (按 esc 後輸入 :wq ).
(5). 調整權限: chmod 777 script
(6). 執行 ./script, 可看到類似以下的輸出: (如果沒有的話可以嘗試 sudo ./script)
231+1 records in
231+1 records out
115904 bytes transferred in 0.021222 secs (5461534 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000014 secs (0 bytes/sec)
5. Xcode Organizer:
(1). 在 iPod touch 連接 Mac 情況下開啓 Xcode 4, 將 iPod touch 設成開發使用:
a. 點擊右上角的 "Organizer".
b. 接著, 在跳出式窗的 DEVICES 項目下, 選擇自己的 iPod touch 名稱.
c. 按下中間的 "Using for Development" 按鈕.
d. 接著,當要你輸入付費開發者的帳號密碼時, 按取消即可.
按下 Collect 即可.
說明: 後來我移除 Xcode 後, 並在終端機下移除了 iOS 4.2.1 (8C148) 的相關資料:
cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport
sudo rm -rf 4.2.1\ \(8C148\)/
再重裝 Xcode 時, 接上 iPod touch 後, 就會再出現 Unknown iOS detected
的訊息, 這時若是按下 "Cancel", Build 時就會出現訊息:
Xcode cannot run using the selected device.
NO provisioned iOS device are available. Connect an iOS device or
choose a an iOS simulator as the destination.
所以還是要按下 Collect 按鈕.
6. Xcode Build Settings:
(1). 開啓/建立 一個專案 => 點二下 PROJECT 下的專案名稱
=> 切換到 Build Settings Tab(頁籤).
(2). 檢查 / 設定 Base SDK: iOS 4.3
(3). 檢查 / 設定 Code Signing Identity:
Debug:
Any iOS SDK: Don't Code Sign
Release:
Any iOS SDK: Don't Code Sign
(4). 檢查 / 設定 Deployment:
Targeted Device Family: iPhone
iOS Deployment Targete: iOS 4.2
三. 開始測試:
1. 設定 active scheme 為 iPod touch 的名稱:
2. 執行 Run: Build 成功.
3. app 在實機上跑是正常的, 但是會出現錯誤訊息:
Error Starting Executable "your app name":
四. 調整 active scheme: (讓錯誤訊息不再出現)
1. 點下 active scheme 的下拉式選單, 選擇 Edit Scheme...
2. 在跳出來的選單中, 左邊選擇 Run xxx.app, 將右邊的 Info Tab 下的 Debugger 項目,
值由預設的 GDB 改選成 None.
Debug:
Any iOS SDK: Don't Code Sign
Release:
Any iOS SDK: Don't Code Sign
Targeted Device Family: iPhone
iOS Deployment Targete: iOS 4.2
三. 開始測試:
1. 設定 active scheme 為 iPod touch 的名稱:
2. 執行 Run: Build 成功.
Error Starting Executable "your app name":
四. 調整 active scheme: (讓錯誤訊息不再出現)
1. 點下 active scheme 的下拉式選單, 選擇 Edit Scheme...
值由預設的 GDB 改選成 None.














