最近轉(zhuǎn)開發(fā)了,真的很久沒有更新博客了,今天有空寫一篇吧。
創(chuàng)新互聯(lián)公司制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為上1000家服務(wù),創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!
今天帶來的是 IOS 7 Xcode 5 免IDP證書的真機(jī)調(diào)試。說白了就是窮,不想給蘋果交那$99的錢。
注意:雖然可以用這個(gè)方法實(shí)現(xiàn)真機(jī)調(diào)試,不過不能實(shí)現(xiàn)向Apple store 發(fā)布APP,其次向Notification這種需要去Apple 下載證書的應(yīng)該也不行。其次你調(diào)試的設(shè)備必須越獄, 不越獄調(diào)試不了,還好IOS7的越獄前幾天已經(jīng)出來了。
操作系統(tǒng)OS X 10.8.5, Xcode 5.0.2 (我是個(gè)窮,用的虛擬機(jī)), 設(shè)備Iphone 4, IOS 7.0.4 用前幾天出來的 evasi0n7 越獄的,期間還失敗了一次刷成了白蘋果,大家自己小心哦。還有設(shè)備越獄以后請(qǐng)用Cydia 安裝 AppSync, 具體方法 自己Google
1.偽造簽名證書:
這步是整個(gè)過程中最簡(jiǎn)單的一步了,按照下面的圖一步步做就可以了。
注意:名稱 務(wù)必填寫 iPhone Developer注意大小寫和空格,其次如果你本身有Apple的develop證書,比如是公司的或者是其他團(tuán)隊(duì)的,建議你先在鑰匙串訪問中 將他們?nèi)繉?dǎo)出,然后刪除。以免不必要的影響。
2.修改Xcode 的配置文件。
注意:
下面的修改中如果有權(quán)限問題可以先復(fù)制一份,修改后在拷貝回去。
請(qǐng)右鍵用Xcode打開要修改的文件,進(jìn)行編輯。網(wǎng)上也有人是用VI編輯的,不過我用VI編輯亂碼。
每個(gè)文件編輯前最好備份,以免意外。
1)修改SDKsettings.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/
打開該目錄下的SDKSettings.plist文件,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO
2)修改Info.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
打開該目錄下的Info.plist文件,右擊--Add Row,增加兩項(xiàng):
PROVISIONING_PROFILE_ALLOWED值為 NO
PROVISIONING_PROFILE_REQUIRED值為 NO
3)將上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替換成"XCCodeSignContext"(共3處)
OK到這來配置文件就改好了,說白了就改了兩個(gè)配置文件,這來有我改好的配置文件,如果你系統(tǒng)環(huán)境和我一樣可以直接下載覆蓋,不過我建議你自己修改。Info.plist SDKSettings.plist
3.設(shè)置gen_entitlements.py腳本
這個(gè)腳本會(huì)在你每次生成APP的時(shí)候被調(diào)用,主要作用是生成一個(gè)簽名用的entitlements文件,在后面簽名的時(shí)候會(huì)用到。
在命令終端中執(zhí)行如下命令,我將在每個(gè)命令后說明 如果你的環(huán)境執(zhí)行命令失敗,你就自己操作吧。
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
在 /Applications/Xcode.app/Contents/Developer/ 目錄下創(chuàng)建一個(gè) 名為iphoneentitlements的目錄
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
進(jìn)入剛剛創(chuàng)建的iphoneentitlements目錄
curl -Ohttp://www.bobzy.cn/xcode/gen_entitlements.txt
下載 這個(gè)文件 到 iphoneentitlements 目錄
mv gen_entitlements.txt gen_entitlements.py
重命名剛剛下載的文件,命名為gen_entitlements.py
sudo chmod 777 gen_entitlements.py
修改這個(gè)文件的權(quán)限,加上任意人可執(zhí)行(此處可能要求你輸入系統(tǒng)賬號(hào)密碼)
4. 修改項(xiàng)目屬性 (每次新建項(xiàng)目都要執(zhí)行)
1)點(diǎn)擊TARGETS項(xiàng)目圖標(biāo),找到"BuildSettings"選項(xiàng)下的"Code Signing",將其值全部改為"Don't Code Sign"
2)點(diǎn)擊Project項(xiàng)目圖標(biāo),找到"BuildSettings"選項(xiàng)下的"Code Signing",將其值全部改為"iPhone Developer"
3)點(diǎn)擊TARGETS項(xiàng)目圖標(biāo), 切換到Build Phases選項(xiàng),點(diǎn)擊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" ] || [ "${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注意my.company.${PROJECT_NAME} 最好替換為你APP的Bundle Identifier,以免不必要的的麻煩。
注意代碼codesign 后面 s,f 前面的一個(gè) - 符號(hào),entitlements 前面是兩個(gè)-- 符號(hào)
可以點(diǎn)擊這里下載這份代碼,直接復(fù)制進(jìn)去
5. 連接設(shè)備
點(diǎn)Windows – Organizer ,然后選中你的設(shè)備,在右邊窗口中點(diǎn)擊“Use for Development” 即可,此時(shí)你的設(shè)備名稱旁邊應(yīng)該顯示×××的小燈,重新拔插數(shù)據(jù)線,Organizer中會(huì)出現(xiàn)一個(gè)進(jìn)度條,等這個(gè)進(jìn)度條跑完,小燈就會(huì)變成綠色,開發(fā)模式 已經(jīng)啟用。
選擇你的設(shè)備運(yùn)行即可.
1."BuildSettings"選項(xiàng)下的"Code Signing",無法選擇為"iPhone Developer",只能選擇 IOS Developer 或者 Mac Developer, 重啟一下Xcode 或者重啟一下系統(tǒng),新建的證書可能沒有很好的識(shí)別出來.
2. Build 的時(shí)候報(bào)錯(cuò) /bin/sh failed with exit code 2, Run Script Build Phase 腳本有問題,檢查一下腳本粘貼的時(shí)候有沒有多了空格或者少了空格的問題. 可以在 fi 前面加上
echo ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent; 來輸出xcent文件了路徑,然后到這個(gè)路徑下看看是不是有這個(gè)文件,如果沒有請(qǐng)檢查 gen_entitlements.py 是否真確。
手工在終端中執(zhí)行 如下命令 注意替換 ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent,觀察是否生成了.xcent文件。
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
如果存在這個(gè)文件依舊保持 檢查 codesign 命令可以手動(dòng)執(zhí)行,注意 –s –f 等參數(shù)的位置。
3.能編譯過,但是運(yùn)行會(huì)出一個(gè)failed to get the task for process **** 這樣的錯(cuò)誤,APP在設(shè)備上閃退,在Xcode上無法進(jìn)行debug,請(qǐng)檢查
TARGETS 和Project 下面"BuildSettings"選項(xiàng)下的"Code Signing" 是否配置正確。
4.Please verify that your device's clock is properly set, and that your signing certificate is not expired. 這個(gè)錯(cuò)誤請(qǐng)檢查設(shè)備是否越獄,越獄設(shè)備是否安裝了AppSync 7 的版本。
好了,還有什么問題可以留言,我盡力回答.