更新日期: 2010/10/18
適用範圍: Xcode 3.2.1 ~ Xcode 3.2.4 (只需更改適用的版本目錄位置)
參考來源: Xcode 3.2.1 假認證,將自己的Apps放上iphone運行
http://xspace.uwantx.com/space.php?uid=1&do=blog&id=264
一. 環境:
1. iOS 4.1 (JailBreak)
2. Xcode Version 3.2.4, 64 bit
3. Mac OSX 10.6.4 Snow Leopard
二. 步驟:
1. 在 Mac OS X 上, 開起終端機(Terminal), 輸入﹕
(1). cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.1.sdk/
(2). sudo cp SDKSettings.plist SDKSettings.plist.backup (會要求輸入密碼)
(3). sudo vi SDKSettings.plist
2. 承上, 找到:
CODE_SIGNING_REQUIRED
YES
…. 與 ....
ENTITLEMENTS_REQUIRED
YES
=> 將 YES 改成 NO 後, 保存退出(按 esc 後輸入 :wq ).
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)
223+1 records in
223+1 records out
111648 bytes transferred in 0.071028 secs (1571887 bytes/sec)
0+0 records in
0+0 records out
0 bytes transferred in 0.000009 secs (0 bytes/sec)
5. 調整 Xcode 的設定:
(1). Project > Edit Project Settings > Build
(2). 承上, 將 Code Signing 項目下的 Any iPhone OS Device 設定改成: Don’t Code Sign
(3). 於左上角的編譯環境, 選擇 Device, 接著執行 Build and Run 即可將 App 安裝到 iPhone 上.
(4). iPhone 上如果有裝 AppSync for OS 4.0+ (參考: JailBreak~6: 讓應用程式 (.ipa / .app) 可直接透過 iTunes 安裝) 的話, 亦可將 Xcode 該專案實體目錄下的 build > Debug-iphoneos > xxx.app 檔案, 直接 copy 拖曳到 iTunes 應用程式內, 接著執行 iPhone 的同步, 就會安裝到 iPhone 機器上了.
三. 錯誤處理:
當 Xcode 出現以下訊息: Error Starting Eexcutable: no provisioned iOS device is connected.
並且在 Xcode 左上方 "Action" 旁的下拉式選單中, Active Executable 項目顯示為: no device available.
解決方式: 執行 Xcode 的 Window > Organizer:
在 Device 下點選自己的 iPhone 名稱, 接著按下 "Using for Development" 按鈕.
四. 備註:
1. 可能是因為之前作過 Xcode 3.2.3 假認證後, 將我的 iPod Touch 從 iOS 4.0 升級到 iOS 4.1 並 JB 後, 再安裝新版的 Xcode 3.2.4 才造成此問題的吧.
2. 若遇到編譯舊的 project 產生 "Base SDK Missing" 訊息, 請參考:Xcode 筆記01 的 "3." 項目.
你好:
回覆刪除我的iphone ios是4.0.1,依照你上面的步驟做,電腦顯示
"no provisioned iphone OS device on connected"
不知道這是哪裡出問題?
你好:
回覆刪除我的 iPod Touch 在 JailBreak iOS 4.1.0 後, 也遇到了類似的問題, 請參考本篇新增的 "三. 錯誤處理" 與 "四. 備註 1." 部份, 希望對你的問題有幫助.
您好:)
回覆刪除我們的xcode上出現了"CodeSign error: code signing is required for product type 'Application' in SDK ' Device - iOS 4.1'" 可以請問您這是哪裡出問題了嗎?
非常謝謝!!!
您好~
回覆刪除我之前是沒有遇到這個問題, 所以我作了個測試:
將 Base SDK 改成 iOS Device 3.2 (而我的 iPod Touch 是 iOS 4.1), 然後執行 "Build and Run", 出現以下結果:
CodeSign error: code signing is required for product type 'Application' in SDK 'Device - iPhone OS 3.2'
.... 所以, 我猜你那一台 iPhone 的 iOS 應該不是 4.1
真是謝謝你快速的回覆:)
回覆刪除不過我們的ipod touch設定中的版本與cydia顯示的版本都是4.1沒錯> < 還是我們應該再JB一次?
我們也試過使用Appsync,沒有成功,iTune顯示應用程式未簽署.
現在應該做哪方面的嘗試呢?
非常謝謝!
Hi ~
回覆刪除試試:
Xcode > Project > Edit Project Settings:
Code Signing 項目:
將 "Code Signing Identity" 與 "Any iOS Device" 的 Value 皆選擇: Don't Code Sign
真是太謝謝你了! 剛剛再試一次莫名其妙的成功了:D
回覆刪除對了!你的步驟寫得好詳細:) 幫助很大!
^^
回覆刪除不好意思,在xcode4裡找不到
回覆刪除Xcode > Project > Edit Project Settings:
Code Signing 項目:
請問我該怎麼辦?
Xcode 4 請參考:
回覆刪除I touchs: Xcode 4 Developing for a Jailbroken iOS Device
http://itouchs.blogspot.com/2011/02/xcode4-developing-for-jailbroken-iphone.html