溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS 7 Xcode 5 免IDP證書 真機調試

發(fā)布時間:2020-07-17 15:51:04 來源:網絡 閱讀:19655 作者:bobzhangyong 欄目:移動開發(fā)

最近轉開發(fā)了,真的很久沒有更新博客了,今天有空寫一篇吧。

今天帶來的是 IOS 7 Xcode 5 免IDP證書的真機調試。說白了就是窮,不想給蘋果交那$99的錢。

注意:雖然可以用這個方法實現真機調試,不過不能實現向Apple store 發(fā)布APP,其次向Notification這種需要去Apple 下載證書的應該也不行。其次你調試的設備必須越獄, 不越獄調試不了,還好IOS7的越獄前幾天已經出來了。


一, 環(huán)境:

操作系統(tǒng)OS X 10.8.5, Xcode 5.0.2 (我是個窮,用的虛擬機), 設備Iphone 4, IOS 7.0.4 用前幾天出來的 evasi0n7 越獄的,期間還失敗了一次刷成了白蘋果,大家自己小心哦。還有設備越獄以后請用Cydia 安裝 AppSync, 具體方法 自己Google

IOS 7 Xcode 5 免IDP證書 真機調試

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

三,破解Xcode。

1.偽造簽名證書:

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

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

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

IOS 7 Xcode 5 免IDP證書 真機調試

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_REQUIREDENTITLEMENTS_REQUIRED的值改成NO

IOS 7 Xcode 5 免IDP證書 真機調試

2)修改Info.plist文件

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

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

PROVISIONING_PROFILE_ALLOWED 值為 NO

PROVISIONING_PROFILE_REQUIRED 值為 NO

IOS 7 Xcode 5 免IDP證書 真機調試

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

IOS 7 Xcode 5 免IDP證書 真機調試

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

3.設置gen_entitlements.py腳本

這個腳本會在你每次生成APP的時候被調用,主要作用是生成一個簽名用的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

   進入剛剛創(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

   修改這個文件的權限,加上任意人可執(zhí)行(此處可能要求你輸入系統(tǒng)賬號密碼)

4. 修改項目屬性 (每次新建項目都要執(zhí)行)

1)點擊TARGETS項目圖標,找到"BuildSettings"選項下的"Code Signing",將其值全部改為"Don't Code Sign"

IOS 7 Xcode 5 免IDP證書 真機調試

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

IOS 7 Xcode 5 免IDP證書 真機調試

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

IOS 7 Xcode 5 免IDP證書 真機調試

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

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

可以點擊這里下載這份代碼,直接復制進去

5. 連接設備

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

IOS 7 Xcode 5 免IDP證書 真機調試

選擇你的設備運行即可.

IOS 7 Xcode 5 免IDP證書 真機調試

四, 常見錯誤

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 等參數的位置。

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


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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI