最近轉(zhuǎn)開發(fā)了,真的很久沒有更新博客了,今天有空寫一篇吧。
專業(yè)從事成都網(wǎng)站建設(shè)、網(wǎng)站制作,高端網(wǎng)站制作設(shè)計,小程序設(shè)計,網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊竭力真誠服務(wù),采用H5場景定制+CSS3前端渲染技術(shù),成都響應(yīng)式網(wǎng)站建設(shè)公司,讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項小組,與您實(shí)時在線互動,隨時提供解決方案,暢聊想法和感受。今天帶來的是 IOS 7 Xcode 5 免IDP證書的真機(jī)調(diào)試。說白了就是窮,不想給蘋果交那$99的錢。
注意:雖然可以用這個方法實(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 (我是個窮,用的虛擬機(jī)), 設(shè)備Iphone 4, IOS 7.0.4 用前幾天出來的 evasi0n7 越獄的,期間還失敗了一次刷成了白蘋果,大家自己小心哦。還有設(shè)備越獄以后請用Cydia 安裝 AppSync, 具體方法 自己Google
1.偽造簽名證書:
這步是整個過程中最簡單的一步了,按照下面的圖一步步做就可以了。
注意:名稱 務(wù)必填寫 iPhone Developer 注意大小寫和空格,其次如果你本身有Apple的develop證書,比如是公司的或者是其他團(tuán)隊的,建議你先在鑰匙串訪問中 將他們?nèi)繉?dǎo)出,然后刪除。以免不必要的影響。
2.修改Xcode 的配置文件。
注意:
下面的修改中如果有權(quán)限問題可以先復(fù)制一份,修改后在拷貝回去。
請右鍵用Xcode打開要修改的文件,進(jìn)行編輯。網(wǎng)上也有人是用VI編輯的,不過我用VI編輯亂碼。
每個文件編輯前最好備份,以免意外。
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,增加兩項:
PROVISIONING_PROFILE_ALLOWED值為 NO
PROVISIONING_PROFILE_REQUIRED 值為 NO
3)將上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替換成"XCCodeSignContext"(共3處)
OK到這來配置文件就改好了,說白了就改了兩個配置文件,這來有我改好的配置文件,如果你系統(tǒng)環(huán)境和我一樣可以直接下載覆蓋,不過我建議你自己修改。Info.plist SDKSettings.plist
3.設(shè)置gen_entitlements.py腳本
這個腳本會在你每次生成APP的時候被調(diào)用,主要作用是生成一個簽名用的entitlements文件,在后面簽名的時候會用到。
在命令終端中執(zhí)行如下命令,我將在每個命令后說明 如果你的環(huán)境執(zhí)行命令失敗,你就自己操作吧。
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
在 /Applications/Xcode.app/Contents/Developer/ 目錄下創(chuàng)建一個 名為iphoneentitlements的目錄
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
進(jìn)入剛剛創(chuàng)建的iphoneentitlements目錄
curl -O http://www.bobzy.cn/xcode/gen_entitlements.txt
下載這個文件 到 iphoneentitlements 目錄
mv gen_entitlements.txt gen_entitlements.py
重命名剛剛下載的文件,命名為gen_entitlements.py
sudo chmod 777 gen_entitlements.py
修改這個文件的權(quán)限,加上任意人可執(zhí)行(此處可能要求你輸入系統(tǒng)賬號密碼)
4. 修改項目屬性 (每次新建項目都要執(zhí)行)
1)點(diǎn)擊TARGETS項目圖標(biāo),找到"BuildSettings"選項下的"Code Signing",將其值全部改為"Don't Code Sign"
2)點(diǎn)擊Project項目圖標(biāo),找到"BuildSettings"選項下的"Code Signing",將其值全部改為"iPhone Developer"
3)點(diǎn)擊TARGETS項目圖標(biāo), 切換到Build Phases選項,點(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 前面的一個 - 符號,entitlements 前面是兩個-- 符號
可以點(diǎn)擊這里下載這份代碼,直接復(fù)制進(jìn)去
5. 連接設(shè)備
點(diǎn)Windows – Organizer ,然后選中你的設(shè)備,在右邊窗口中點(diǎn)擊“Use for Development” 即可,此時你的設(shè)備名稱旁邊應(yīng)該顯示×××的小燈,重新拔插數(shù)據(jù)線,Organizer中會出現(xiàn)一個進(jìn)度條,等這個進(jìn)度條跑完,小燈就會變成綠色,開發(fā)模式 已經(jīng)啟用。
選擇你的設(shè)備運(yùn)行即可.
1."BuildSettings"選項下的"Code Signing",無法選擇為"iPhone Developer",只能選擇 IOS Developer 或者 Mac Developer, 重啟一下Xcode 或者重啟一下系統(tǒng),新建的證書可能沒有很好的識別出來.
2. Build 的時候報錯 /bin/sh failed with exit code 2, Run Script Build Phase 腳本有問題,檢查一下腳本粘貼的時候有沒有多了空格或者少了空格的問題. 可以在 fi 前面加上
echo ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent; 來輸出xcent文件了路徑,然后到這個路徑下看看是不是有這個文件,如果沒有請檢查 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";
如果存在這個文件依舊保持 檢查 codesign 命令可以手動執(zhí)行,注意 –s –f 等參數(shù)的位置。
3.能編譯過,但是運(yùn)行會出一個failed to get the task for process **** 這樣的錯誤,APP在設(shè)備上閃退,在Xcode上無法進(jìn)行debug,請檢查
TARGETS 和Project 下面"BuildSettings"選項下的"Code Signing" 是否配置正確。
4.Please verify that your device's clock is properly set, and that your signing certificate is not expired. 這個錯誤請檢查設(shè)備是否越獄,越獄設(shè)備是否安裝了AppSync 7 的版本。
好了,還有什么問題可以留言,我盡力回答.
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。