本方法是結合網上一些朋友的文章,然後加上自己的理解寫的,在ML OS X 10.8環境下用XCode4.4/4.4.1 + IOS5.1實測可行!
ps:使用無認證調試,也意味著你的裝置要越獄!
第一步:製作認證
1)開啟 Finder->應用程式->工具 + 生產力 -> 鑰匙串訪問
2)單擊:"鑰匙串訪問"選擇 "認證" 再選擇"建立認證"過程如:
注意:認證名稱必須填寫為 iPhone Developer
第二步:修改XCode設定檔
註:如遇到檔案無法解鎖沒有許可權不能修改,可以複製一份出來,修改好之後將原來的替換掉
1)修改SDKsettings.plist檔案
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
開啟該目錄下的SDKSettings.plist檔案,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO
2)修改Info.plist檔案
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
用XCode開啟該目錄下的Info.plist檔案,右擊--Add Row,增加兩項:
PROVISIONING_PROFILE_ALLOWED 值為 NO
PROVISIONING_PROFILE_REQUIRED 值為 NO
3)將上面Info.plist檔案中的 "XCiPhoneOSCodeSignContext" 替換成 "XCCodeSignContext"(共3處)
第三步:設定gen_entitlements.py指令碼許可權
註:如果你的電腦連網了,那麼執行1)的命令後會在相應的目錄自動建立iphoneentitlements檔案夾及其下的gen_entitlements.py檔案,如執行後沒有產生指定檔案,請重複執行下面的命令或者換第二種方法,兩種產生指令檔的方法任選一種。
1)在終端執行如下命令:
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlementscd /Applications/Xcode.app/Contents/Developer/iphoneentitlementscurl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txtmv gen_entitlements.txt gen_entitlements.py
sudo chmod 777 gen_entitlements.py
2)上面的命令執行成功之後,會在/Applications/Xcode.app/Contents/Developer/目錄下產生一個iphoneentitlements檔案夾和其下的gen_entitlements.py檔案,如果你的電腦沒有連網或者不能自動產生相關目錄檔案,那麼需要手動在相應的目錄建立指定的檔案,隨後需要給gen_entitlements.py設定許可權。
gen_entitlements.py指令檔的內容如下:
#!/usr/bin/env pythonimport sysimport structif len(sys.argv) != 3:print "Usage: %s appname dest_file.xcent" % sys.argv[0]sys.exit(-1)APPNAME = sys.argv[1]DEST = sys.argv[2]if not DEST.endswith('.xml') and not DEST.endswith('.xcent'):print "Dest must be .xml (for ldid) or .xcent (for codesign)"sys.exit(-1)entitlements = """<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>application-identifier</key> <string>%s</string> <key>get-task-allow</key> <true/></dict></plist>""" % APPNAMEf = open(DEST,'w')if DEST.endswith('.xcent'):f.write("\xfa\xde\x71\x71")f.write(struct.pack('>L', len(entitlements) + 8))f.write(entitlements)f.close()
在終端給gen_entitlements.py設定許可權(可能會要你輸入密碼)
sudo chmod 777 /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py
第四步:修改項目屬性
1)點擊項目表徵圖,找到"Build Settings"選項下的"Code Sign Identity",將其值全部改為"Don't Code Sign"
2)切換到Build Phases選項,點擊右下角的Add Build Phase,然後單擊Add Run Script,然後在Run Script中輸入以下指令碼:
export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocateif [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; 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
第五步:串連裝置(iphone/ipad)
點XCode右上方的Organizer表徵圖,然後選中你的裝置,在右邊視窗中點擊“Use for Development” 即可,此時你的裝置名稱旁邊應該顯示黃色的小燈,重新拔插資料線,Organizer中會出現一個進度條,等這個進度條跑完,小燈就會變成綠色,開發模式已經啟用。
測試真機調試:
建立一個Page-based Application工程,修改Build Settings和Build Phases下面的相關配置(參考第四步)
1)選擇你的裝置
2)隨便拖一個button,然後點擊運行(Run)
3)iphone運行效果
分類: Mac/IOS綠色通道: 好文要頂 關注我 收藏該文與我聯絡
Mr.Sjun
關注 - 1
粉絲 - 2+加關注00(請您對文章做出評價)« 博主前一篇:特性(@property、@synthesize)
» 博主後一篇:類別(category)、委託(delegate)、非正式協議(informal
protocol)、正式協議(formal protocol)
posted on 2012-08-04 06:58 Mr.Sjun 閱讀(298) 評論(6) 編輯 收藏
評論#1樓 您好,我到了第二步:修改XCode設定檔
1)修改SDKsettings.plist檔案這裡,
已經開啟了SDKsettings.plist,但無法把YES改成NO,我是管理者許可權,但修改檔案時顯示資訊,請問如何解決,謝謝
支援(0)反對(0)2012-08-05 13:33 | zpy2012 #2樓[樓主]
@zpy2012
那你把那個檔案複製出來修改一下,然後再覆蓋替換看看支援(0)反對(0)2012-08-05 13:36 | Mr.Sjun #3樓 終於搞定,多謝樓主。樓主感謝您啊支援(0)反對(0)2012-08-06 00:06 | 扶風父 #4樓[樓主]
@扶風父
搞定就好,你的錯誤應該是Run Script沒有輸入正確吧?支援(0)反對(0)2012-08-06 00:43 | Mr.Sjun #5樓 謝謝您,這個問題解決了,但還是沒能成功,請幫幫我。
我在第三步:設定gen_entitlements.py指令碼許可權時
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/
Developer裡沒有iphoneentitlements檔案夾及gen_entitlements.py指令碼,自己添加了,不知道對不對。
然後開啟終端,拷貝命令運行
後面完全按步驟進行,小燈已變綠色
手機上也出現了新的表徵圖,但無法運行。
電腦上顯示資訊分別為
第一次實機運行時要求署名
實裝時第一次顯示錯誤
再實裝時顯示錯誤
支援(0)反對(0)2012-08-06 08:18 | zpy2012 #6樓 @Mr.Sjun
不是,是建立簽名的時候都是預設設定,所以會出現這個提示