本方法是結(jié)合網(wǎng)上的帖子,自己理解了一下,結(jié)合一些小命令,做的。
最后有個(gè)附件,可以方便你的操作過程。有不合適的地方自己修改一下吧。
我在 OSX10.8 環(huán)境下 配合 IOS7 SDK,XCode5.0 調(diào)試成功。
注意,無證書調(diào)試,需要保證你的設(shè)備需要越獄!!!!First!
第一步,制作證書。
1. 注意證書的名字必須是:iPhone Developer,注意大小寫。
2. 注意密鑰使用擴(kuò)展那個(gè)選項(xiàng)一定要保證“簽名”被選中。 已擴(kuò)展的密鑰使用擴(kuò)展,代碼簽名要保證選中。
具體操作就不再贅述,實(shí)在不會(huì)的去百度一下吧。
第二步, 修改XCode破解程序。
1. 打開一個(gè)shell終端,敲一下命令 sudo su ,回車,可能會(huì)要求輸入密碼,root密碼。
2. 打開路徑: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk ,找到SDKSettings.plist文件,修改兩個(gè)項(xiàng)目:
把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改 成NO
如果是用VI修改的話,直接查找,然后把值改成NO即可。而且可以直接保存。
如果是使用xcode打開,可能保存不了,先另存到另一個(gè)地方,然后拷貝回去,覆蓋原來的文件即可。
3. 修改Info.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ 用XCode打開該目錄下的Info.plist文件,右擊Add Row,增加兩項(xiàng): PROVISIONING_PROFILE_ALLOWED 值為 NO PROVISIONING_PROFILE_REQUIRED 值為 NO
同樣,如果無法保存,只需要拷貝,修改,再拷貝回去覆蓋即可。
注意,這個(gè)文件還有地方要改。把 “XCiPhoneOSCodeSignContext” 替換成 “XCCodeSignContext”(共3處)
4. 設(shè)置腳本。gen_entitlements.py,權(quán)限為777,放到/Applications/Xcode.app/Contents/Developer/iphoneentitlements 文件夾下,如果沒有,創(chuàng)建它。
。腳本的內(nèi)容如下:
#!/usr/bin/env python
import sys import struct
if 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=”UTF8″?>
<!DOCTYPE plist PUBLIC “//Apple//DTD PLIST 1.0//EN” “
http://www.apple.com/DTDs/PropertyList 1.0.dtd”>
<plist version=”1.0″>
<dict>
<key>applicationidentifier</key> <string>%s</string> <key>gettaskallow</key> <true/>
</dict> </plist>
“”" % APPNAME
f = 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()
好吧,我知道你懶得復(fù)制粘貼,甚至創(chuàng)建文件。
這里還有命令行方法:
sudo mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
sudo cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
sudo curl -O
http://www.alexwhittemore.com/iphone/gen_entitlements.txtsudo mv gen_entitlements.txt gen_entitlements.py sudo chmod 777 gen_entitlements.py
sudo chmod 777 /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py
這就好了。
我會(huì)提供一個(gè)腳本鏈接的,放心哈。
最后一步(經(jīng)過測(cè)試,第一個(gè)項(xiàng)目好像必須有,從網(wǎng)上下載或者新建的項(xiàng)目不用改也能真機(jī)調(diào)試???)
打開項(xiàng)目,在Build Settings里邊找到Code Sign Identity,全都改成“Don’t Code Sign”
在Build Phases 選項(xiàng)中,點(diǎn)擊右下角的 Add Build Phase,選擇類型為Run Script。
在Script中輸入以下腳本:
xport CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Devel oper/usr/bin/codesign_allocate
if [ "${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
OK,以下是文件鏈接:
(注意修改屬性為可執(zhí)行)
gen_entitlements
(只要復(fù)制內(nèi)容貼到對(duì)應(yīng)的XCode框里邊)
RunScript
Info (這個(gè)跟XCode以及IOS SDK的版本有關(guān)系,如果不是SDK7.0 + XCode5不要直接下載覆蓋)
SDKSettings (這個(gè)跟XCode以及IOS SDK的版本有關(guān)系,如果不是SDK7.0 + XCode5不要直接下載覆蓋)