您好,登錄后才能下訂單哦!
最近轉開發了,真的很久沒有更新博客了,今天有空寫一篇吧。
今天帶來的是 IOS 7 Xcode 5 免IDP證書的真機調試。說白了就是窮,不想給蘋果交那$99的錢。
注意:雖然可以用這個方法實現真機調試,不過不能實現向Apple store 發布APP,其次向Notification這種需要去Apple 下載證書的應該也不行。其次你調試的設備必須越獄, 不越獄調試不了,還好IOS7的越獄前幾天已經出來了。
操作系統OS X 10.8.5, Xcode 5.0.2 (我是個窮,用的虛擬機), 設備Iphone 4, IOS 7.0.4 用前幾天出來的 evasi0n7 越獄的,期間還失敗了一次刷成了白蘋果,大家自己小心哦。還有設備越獄以后請用Cydia 安裝 AppSync, 具體方法 自己Google
1.偽造簽名證書:
這步是整個過程中最簡單的一步了,按照下面的圖一步步做就可以了。
注意:名稱 務必填寫 iPhone Developer 注意大小寫和空格,其次如果你本身有Apple的develop證書,比如是公司的或者是其他團隊的,建議你先在鑰匙串訪問中 將他們全部導出,然后刪除。以免不必要的影響。
2.修改Xcode 的配置文件。
注意:
下面的修改中如果有權限問題可以先復制一份,修改后在拷貝回去。
請右鍵用Xcode打開要修改的文件,進行編輯。網上也有人是用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到這來配置文件就改好了,說白了就改了兩個配置文件,這來有我改好的配置文件,如果你系統環境和我一樣可以直接下載覆蓋,不過我建議你自己修改。Info.plist SDKSettings.plist
3.設置gen_entitlements.py腳本
這個腳本會在你每次生成APP的時候被調用,主要作用是生成一個簽名用的entitlements文件,在后面簽名的時候會用到。
在命令終端中執行如下命令,我將在每個命令后說明 如果你的環境執行命令失敗,你就自己操作吧。
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
在 /Applications/Xcode.app/Contents/Developer/ 目錄下創建一個 名為iphoneentitlements的目錄
cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
進入剛剛創建的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
修改這個文件的權限,加上任意人可執行(此處可能要求你輸入系統賬號密碼)
4. 修改項目屬性 (每次新建項目都要執行)
1)點擊TARGETS項目圖標,找到"BuildSettings"選項下的"Code Signing",將其值全部改為"Don't Code Sign"
2)點擊Project項目圖標,找到"BuildSettings"選項下的"Code Signing",將其值全部改為"iPhone Developer"
3)點擊TARGETS項目圖標, 切換到Build Phases選項,點擊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 前面是兩個-- 符號
可以點擊這里下載這份代碼,直接復制進去
5. 連接設備
點Windows – Organizer ,然后選中你的設備,在右邊窗口中點擊“Use for Development” 即可,此時你的設備名稱旁邊應該顯示×××的小燈,重新拔插數據線,Organizer中會出現一個進度條,等這個進度條跑完,小燈就會變成綠色,開發模式 已經啟用。
選擇你的設備運行即可.
1."BuildSettings"選項下的"Code Signing",無法選擇為"iPhone Developer",只能選擇 IOS Developer 或者 Mac Developer, 重啟一下Xcode 或者重啟一下系統,新建的證書可能沒有很好的識別出來.
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 是否真確。
手工在終端中執行 如下命令 注意替換 ${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 命令可以手動執行,注意 –s –f 等參數的位置。
3.能編譯過,但是運行會出一個failed to get the task for process **** 這樣的錯誤,APP在設備上閃退,在Xcode上無法進行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. 這個錯誤請檢查設備是否越獄,越獄設備是否安裝了AppSync 7 的版本。
好了,還有什么問題可以留言,我盡力回答.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。