Xcode4.5.1破解iOS免證書開發真機調試與ipa發佈

開發環境使用Mac OSX Mountain Lion 10.8 + Xcode 4.5.1,iOS設備需要越獄並從Cydia安裝AppSync。Xcode4.5.1的安裝破解詳細步驟如下:

第一步,創建假證書


圖1 Utilities工具夾

 

打開Finder,左側邊欄裏找到Applications,從中找到Utilities工具夾,如圖1所示。打開該Utilities工具夾並找到Keychain Access(鑰匙串訪問),並將其打開,或是直接在Finder中輸入Keychain Access來搜索。然後在菜單欄裏Keychain Access->Certificate Assistant->Create ACertificate…設置如圖2所示,此處必須把Name改爲iPhone Developer,Certificate類型設置爲Code Signing,並將Let me override defaults選中,以後的步驟就不需要做任何的設置,全部默認或空着即可。


圖2 證書相關設置

第二步,安裝Xcode4.5.1

下載Xcode4.5.1,並安裝。需要注意的是從Xcode4.4.1之後Xcode就變成了獨立運行程序(stand-alone),其安裝變成了Copy。首先將dmg裏的Xcode複製到Applications目錄下,然後運行,此過程中會出現簡單的配置過程。

第三步,修改Xcode的配置文件

需要修改配置文件有兩個SDKSettings.plist和Info.plist,在Xcode4.5以前這兩個文件都是xml格式,而這之後變成了二進制格式,需要用Xcode來編輯這兩個文件。

(1)SDKSettings.plist修改

1) Finder中進入文件所在目錄

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk

2) 找到SDKSettings.plist文件,並鼠標右擊Duplicate一份,在同目錄下產生SDKSettings copy.plist文件。

3)雙擊打開SDKSettings copy.plist文件,默認用Xcode,找到DefaultProperties分支,將下面的CODE_SIGNING_REQUIREDENTITLEMENTS_REQUIRED兩個屬性改爲NO

4)如果需要備份原文件,則將原文件改名爲SDKSettings.plist.bak。然後將SDKSettings copy.plist,改名爲SDKSettings.plist

 

(2)修改Info.plist

1) Finder中進入文件所在目錄

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

或是從(1)中後退到該目錄。

2) 找到Info.plist文件,並鼠標右擊Duplicate一份,在同目錄下產生Info copy.plist文件。

3)雙擊打開Info copy.plist文件,默認用Xcode,將全部的XCiPhoneOSCodeSignContext修改成 XCCodeSignContext,即將其中的iPhoneOS去掉,Xcode4.5.1有三處分別位於DefaultProperties分支下、RuntimeRequirements->ClassesOverrideProperties分支下。

3)如果需要備份原文件,則將原文件改名爲Info.plist.bak。然後將Info copy.plist,改名爲Info.plist

 

第三步,準備自定義的生成後腳本,此步的執行需要聯網打開teminal。

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

 

第四步,修改工程設置

特別注意:本階段之前的修改配置文件、準備腳本等,只需要做一次。但本階段的操作,對每個需要真機調試的工程都要做一遍。

這個步驟的主要作用是支持真機調試,如果不做這個步驟,仍然可以通過步驟5來生成ipa在真機上運行,但是無法使用Xcode內置的調試器對在真機上運行的程序進行單步跟蹤。如果您的程序在點擊Run真機調試時秒退,請檢查此步驟是否正確完成。

(1)禁用Xcode自動的簽名操作,將工程配置中所有的Code Signing選項全部設爲Don't Code Sign,如圖。


(2)添加自定義的生成後腳本,在Build Phases中添加一個Phase,右下角的Add Build Phase,然後單擊Add Run Script,輸入以下腳本:

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

如圖所示:


第五步,生成IPA文件

正常情況下IPA文件是從Xcode的Organizer中輸出的,但是我們沒有證書,這樣輸出會產生錯誤。只能另找他路,先將代碼生成爲Release目標,然後打開工程的輸出文件夾,通常情況下這個目錄是:

/Users/你的用戶名/Library/Developer/Xcode/DerivedData/以工程名打頭的文件夾/Build/Products/Release-iphoneos

這個目錄下有個.app的文件,就是生成的程序了。把這個.app拖到iTunes中,它會出現在應用程序那個列表中,然後再把它從iTunes的那個列表中拖出來(比如拖到桌面),哈哈,它就這樣變成.ipa了!

 

 

此配置只適用在Xcode4.5.1,其他未嘗試。更多詳細內容參見大牛Blog.

http://kqwd.blog.163.com/blog/static/4122344820117191351263/

 

 

輝輝                                  

(FightingBull Studio)                 

 

 

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