OS X 10.10.3 + XCode6.3.1 + IOS7越獄機真機調試

  最近在開發一款IOS應用,開發者帳號是借來的,因此程序只能在模擬器中調試。後來在網上找到一些真機調試教程,可是有的語焉不詳,有的實踐下來行不通。通過摸索並綜合幾篇文章的內容,後來總算搞定了。爲防止之後再用到的時候走彎路,也爲了幫助有一樣須要的人,此處記下了個人整個過程。shell

  1. 建立證書

      打開實用工具-鑰匙串訪問。而後在菜單欄裏點擊鑰匙串訪問-證書助理-建立證書來打開向導。第一個步驟比較重要,必需要把名稱命名爲iPhone Developer,將類型設定爲代碼簽名,將"讓我覆蓋這些默認值"選中。以後的步驟無需更改,一路點擊「肯定」和「繼續」來完成這個嚮導就能夠!app

  2.  修改XCode配置curl

  a)SDKSettings.plistiphone

  打開應用程序,找到XCode,右鍵顯示包內容。依次進入/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/目錄(對應不一樣版本的XCode SDK版本目錄有所不一樣)。能夠看到SDKSettings.plist文件。將它複製到本身平時經常使用的工做目錄進行以下修改:工具

  在DefaultProperties屬性下,找到CODE_SIGNING_REQUIRED字段,屬性改成NO;找到ENTITLEMENTS_REQUIRED字段,也將其屬性值改成NOui

  修改完以後將保存後的文件複製到上面目錄下覆蓋源文件。url

  b)Info.plistspa

  一樣的,打開應用程序,找到XCode,右鍵顯示包內容。依次進入/Contents/Developer/Platforms/iPhoneOS.platform/目錄。能夠看到Info.plist文件。將它複製到本身平時經常使用的工做目錄下進行以下修改:調試

  查找到全部的CODE_SIGN_CONTEXT_CLASS字段,將其屬性值修改成XCCodeSignContextcode

  修改完以後將保存後的文件複製到上面目錄下覆蓋源文件。

  3.  添加腳本文件

  打開終端,輸入下面的命令

  mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements

  cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements

  curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt

  mv gen_entitlements.txt gen_entitlements.py

  chmod 777 gen_entitlements.py

  4.  修改工程配置(須要針對每一個須要真機調試的工程進行設置)

  a) 禁用自動簽名

  打開XCode工程文件,將BuildSettings裏面的Code Signing Identity中的所有選項設置爲Don't Code Sign

  b) 添加自定義生成腳本

  選中XCode工程後,選擇XCode->Editor->Add Build Phase->Add Run Script Build Phase,加入如下腳本

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi  

  好了,萬事大吉,接上你的5s,調試試試。

  5.  可能出現的問題

  出現cannot find code object on disk錯誤,若是代碼沒有問題而編譯的時候出現此問題,通常是最後腳本處出現了問題。工程中添加的run script代碼中有兩處涉及到腳本的路徑,請仔細查看此處的路徑和你的路徑是否一致。

  出現shell script invocation error錯誤,此處也是run script中出現了問題,若是是手動輸入的,請複製個人代碼試試。

相關文章
相關標籤/搜索