準備工作:iphone需要越獄。
一. 制作假證書
1、 打開 Finder->應用程式->實用工具 -> 鑰匙串通路
2、單擊:"鑰匙串通路"選擇 "證書" 再選擇"建立證書"過程如下圖:
隻能建立一個iPhone Developer,如有多個,請全删除後再建立。
證書名稱必須填寫為:"iPhone Developer" ,(不能随便填寫)然後點選"建立"。(如圖)
有效期填數不要超過365天。 (如圖)
郵件就随便寫一個落
二 修改Xcode配置檔案
注意:由于這些配置檔案是系統檔案,修改系統檔案需要管理者權限才可以進行操作,是以儲存的時候不能直接儲存,會遇到系統提示“你沒有修改此檔案得權限”,但可以先複制一個副本。先修改這個副本,然後再複制到原先的目錄,系統會提示你是否修改替換,選擇"替換",這時候是需要管理者密碼才可以覆寫原來的檔案,輸入密碼後,修改完成。
1. 修改SDKsettings.plist檔案。找到“/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk ”下的 SDKSettings.plist 檔案,修改“Default Properties ”項下面的"CODE_SIGNING_REQUIRED "值為:NO。
2 修改 "/Developer/Platforms/ iPhoneOS.platform / Info.plist " 檔案(用文本編輯器或者 Xcode 打開)
增加兩項:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO
效果如下圖所示:
然後将所有"XCiPhoneOSCodeSignContext"替換為"XCCodeSignContext"。
此步的執行需要聯網,打開終端執行以下指令行。
注意:該步驟的作用是在Xcode的目錄下生成gen_entitlements.py檔案,Xcode目錄有保護寫的權限,有的時候生成不了目錄和檔案,如果生成不了的話,請大家再别的目錄生成檔案,再複制到Xcode的相應目錄下,指令行的路徑需要大家看得懂修改下。
mkdir/Applications/Xcode.app/Contents/Developer/iphoneentitlements
cd/Applications/Xcode.app/Contents/Developer/iphoneentitlements
curl -Ohttp://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txtgen_entitlements.py
chmod 777 gen_entitlements.py
mac機連接配接iPhone後,用Xcode打開項目,模拟器選擇連接配接的iPhone。點選 項目圖示,找到“Build Settings” 找到 “Code Sign Identity” ,都設定為不用證書簽名。 按照下面得方式設定一下就可以了。
添加自定義的生成後腳本,在Build Phases中添加一個Phase,右下角的Add Build Phase,然後單擊Add Run Script(以後每次你要真機調試都要這個步驟),輸入以下腳本:
(對于Xcode 4.1/4.2) export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then /Developer/iphoneentitlements401/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
(對于Xcode 4.3/4.4/4.5) 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