IOS 7 Xcode 5 免IDP證書 真機調試 【修改自無心圓的博客】


修改自 IOS 7 Xcode 5 免IDP證書的真機調試。

注意:雖然可以用這個方法實現真機調試,不過不能實現向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

Mac OS X-2013-12-28-16-08-35

二,設備越獄。略,自己Google 記得裝AppSync。

三,破解Xcode。

1.僞造簽名證書:

這步是整個過程中最簡單的一步了,按照下面的圖一步步做就可以了。

注意:名稱 務必填寫 iPhone Developer 注意大小寫和空格,其次如果你本身有Apple的develop證書,比如是公司的或者是其他團隊的,建議你先在鑰匙串訪問中 將他們全部導出,然後刪除。以免不必要的影響。

1363073133_8245

1363073137_9554

?1363073140_7463

image

?1363073145_8350

?1363073148_9886

?1363073156_9370

?1363073161_3561

?1363073170_1965

?1363073173_1931

1363073176_2789

2.修改Xcode 的配置文件。

注意:

//路徑中涉及到的Xcode.app名稱必須和你電腦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

1363073180_1160

2)修改Info.plist文件

//路徑中涉及到的Xcode.app名稱必須和你電腦xcode名稱上得相同

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

打開該目錄下的Info.plist文件,右擊--Add Row,增加兩項:

PROVISIONING_PROFILE_ALLOWED 值爲 NO

PROVISIONING_PROFILE_REQUIRED 值爲 NO

1363073183_3426

3)將上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替換成"XCCodeSignContext"(共3處)

1363073187_7391

OK到這來配置文件就改好了,說白了就改了兩個配置文件,這來有我改好的配置文件,如果你係統環境和我一樣可以直接下載覆蓋,不過我建議你自己修改。Info.plistSDKSettings.plist

3.設置gen_entitlements.py腳本 //路徑中涉及到的Xcode.app名稱必須和你電腦xcode名稱上得相同

這個腳本會在你每次生成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"

Mac OS X-2013-12-28-17-08-11

2)點擊Project項目圖標,找到"BuildSettings"選項下的"Code Signing",將其值全部改爲"iPhone Developer"

Mac OS X-2013-12-28-17-09-59

3)//路徑中涉及到的Xcode.app名稱必須和你電腦xcode名稱上得相同

點擊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

Mac OS X-2013-12-28-17-13-52

注意my.company.${PROJECT_NAME} 最好替換爲你APP的Bundle Identifier,以免不必要的的麻煩。

注意代碼codesign? 後面 s,f 前面的一個 - 符號,entitlements 前面是兩個-- 符號

可以點擊這裏下載這份代碼,直接複製進去

5. 連接設備

點Windows – Organizer ,然後選中你的設備,在右邊窗口中點擊“Use for Development” 即可,此時你的設備名稱旁邊應該顯示黃色的小燈,重新拔插數據線,Organizer中會出現一個進度條,等這個進度條跑完,小燈就會變成綠色,開發模式 已經啓用。

Mac OS X-2013-12-28-17-28-30

選擇你的設備運行即可.

Mac OS X-2013-12-28-17-31-32?

四, 常見錯誤

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 的版本。

好了,還有什麼問題可以留言,我盡力回答.

發佈了25 篇原創文章 · 獲贊 3 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章