XCode 4.2(4.1)真機(jī)調(diào)試及生成IPA全攻略 網(wǎng)上有不少關(guān)于xocde3.x真機(jī) 調(diào)試 的文章,但鮮有 xcode 4.2相關(guān)的資料。參考了一些文章,終于可以在xcode4.2上進(jìn)行 真機(jī)調(diào)試 了,在此 記錄 下。 眾所周知,在Xcode上 開(kāi)發(fā) 的 程序 只能在 模擬器 中運(yùn)行,如果要放
網(wǎng)上有不少關(guān)于xocde3.x真機(jī)調(diào)試的文章,但鮮有xcode4.2相關(guān)的資料 。參考了一些文章,終于可以在xcode4.2上進(jìn)行真機(jī)調(diào)試了,在此記錄下 。
眾所周知,在Xcode上開(kāi)發(fā)的程序只能在模擬器中運(yùn)行,如果要放到真機(jī)上則要花費(fèi)99美金購(gòu)買(mǎi)開(kāi)發(fā)者證書(shū)iDP 。這嚴(yán)重阻礙了我等草根開(kāi)發(fā)者探索的腳步 。寫(xiě)個(gè)小程序,同學(xué)間分享一下這個(gè)小小的愿望都不能滿足,自然不能善罷甘休 。
在沒(méi)有iDP的情況下,要想將程序放到iPhone上調(diào)試,并最終發(fā)布IPA用于分享,需要以下幾個(gè)步驟:
1.自己為自己頒發(fā)一個(gè)證書(shū)用于為生成的程序簽名
2.修改工程配置以及Xcode的配置文件和二進(jìn)制文件以阻止其驗(yàn)證和使用這個(gè)偽造的證書(shū)
3.使用自定義的步驟為應(yīng)用程序簽名
4.使用一點(diǎn)小trick來(lái)生成IPA文件
1.創(chuàng)建證書(shū)
我會(huì)分幾步來(lái)說(shuō)明 。值得說(shuō)明的是,要想真機(jī)調(diào)試,ios device必須事先越獄.創(chuàng)建證書(shū)的過(guò)程比較簡(jiǎn)單,打開(kāi)實(shí)用工具-鑰匙串訪問(wèn) 。然后在菜單欄里點(diǎn)擊鑰匙串訪問(wèn)-證書(shū)助理-創(chuàng)建證書(shū)來(lái)打開(kāi)向?qū)?。第一個(gè)步驟比較重要,必須要把名稱命名為iPhone Developer,將類型設(shè)定為代碼簽名,將"讓我覆蓋這些默認(rèn)值"選中 。之后的步驟無(wú)需更改,一路點(diǎn)擊“確定”和“繼續(xù)”來(lái)完成這個(gè)向?qū)Ь涂梢?。
1.創(chuàng)建證書(shū),這個(gè)沒(méi)什么好說(shuō)的,網(wǎng)上資料一大堆,只要?jiǎng)e寫(xiě)錯(cuò)名字就好,證書(shū)名一定要為 iPhone Developer
2.破解ios sdk及其xcode的相關(guān)配置文件(雙擊配置文件就可以打開(kāi),注意SDKSettings.plist有權(quán)限控制)
修改/Developer/Platforms/iPhoneOS.platform目錄下的Info.plist文件,將其中的 XCiPhoneOSCodeSignContext 都改為XCCodeSignContext
修改/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk目錄下的SDKSettings.plist文件,修改如下字段:
CODE_SIGNING_REQUIREDkey> NOstring> ENTITLEMENTS_REQUIREDkey> NOstring>
3.破解xcode二進(jìn)制文件 。建立一個(gè)crack文件,內(nèi)容如下:
- #!/bin/bash
- cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
- dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
- printf "xc3x26x00x00" >> working
- /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
- /bin/mv -n working iPhoneOS\ Build\ System\ Support
- chmod a+x iPhoneOS\ Build\ System\ Support
然后執(zhí)行 chmod +x crack執(zhí)行./crack,沒(méi)錯(cuò)誤就正常
4.修改xcode工程配置文件
1) 下載腳本
打開(kāi)終端,執(zhí)行如下操作
- cd /Developer
- mkdir xcode-crack
- curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
- mv gen_entitlements.txt gen_entitlements.py
- chmod 777 gen_entitlements.py
2) 禁用Xcode自動(dòng)的簽名操作
將工程配置中所有的Code Signing選項(xiàng)全部設(shè)為Dont Code Sign,如圖 。可能需要先點(diǎn)擊“All”讓這個(gè)選項(xiàng)顯示出來(lái)
3)添加自定義的生成后腳本
在Build Phases中添加一個(gè)Phase,右下角的Add Build Phase,然后單擊Add Run Script,輸入以下腳本(如圖)
- export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
- if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
- /Developer/xcode-crack/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
5 。打包應(yīng)用程序,生成ipa文件
在xcode上選擇product菜單,選擇Build For ---> Build for Achiving,就能成ipa文件了 。如圖:
可以將這個(gè)文件拖到itunes,就可以生成一個(gè)ipa文件,如圖:
至此,我們就可以隨心所欲地開(kāi)發(fā)并調(diào)試ios程序了,并可以將打包好的ipa文件分享給他人
按照上面的步驟導(dǎo)入3.x的工程成功運(yùn)行,但是如果用XCode 4.2創(chuàng)建新工程,則會(huì)報(bào)錯(cuò),需要做如下修改:
1、將【Objective-C Automatic Reference Counting】的默認(rèn)值由【YES】改為【NO】;
2、輸入下面的代碼注意沒(méi)有特殊字符
- export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
- if [ "${PLATFORM_NAME}" == "iphoneos" ]; 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
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com