天天看點

Xcode5&4.6.3 + iOS 7&6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

前提:

        衆所周知,在Xcode上開發的程式隻能在模拟器中運作,如果要放到真機上則要花費99美金購買開發者證書iDP。本文介紹的是在上一代Xcode4.6.3上示範的,Xcode5配合iOS7已經親測完美使用,是以在沒有iDP的情況下,要想将程式放到iPhone上調試,并最終釋出ipa用于分享,需要以下幾個步驟: 1.自己為自己頒發一個證書用于為生成的程式簽名; 2.修改工程配置以及Xcode的配置檔案和二進制檔案以阻止其驗證和簽名; 3.通過自定義生成步驟,用僞造的證書為應用程式簽名; 4.使用一點小技巧來生成ipa檔案; 5.需要先越獄您的ios7&6系統的裝置并通過Cydia安裝AppSync for ios4/5/6,iOS7請完美越獄并添加pp助手源app.二五pp.com,二五請寫數字,添加iOS7ipa破解更新檔。 工具:iphone4 iOS7&6.1.2已完美越獄(二選一),MacBook Pro13inch,Xcode5&4.6.3(二選一),Plist Editor(編輯plist檔案使用)。 正式進入正題: 一、建立證書         打開實用工具-鑰匙串通路。然後在菜單欄裡點選鑰匙串通路-證書助理-建立證書來打開向導。第一個步驟比較重要,必須要把名稱命名為iPhone Developer,将類型設定為代碼簽名,将"讓我覆寫這些預設值"選中。之後的步驟無需更改,一路點選“确定”和“繼續”來完成這個向導就可以!

Xcode5&4.6.3 + iOS 7&6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

二、修改Xcode的配置檔案 1.請先将Xcode按Command+Q完全關閉。 2.修改配置檔案: 按照該路徑找到SDKSettings.plist然後進行編輯: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/SDKSettings.plist 将以下兩段中的YES改為NO <key>CODE_SIGNING_REQUIRED</key> <string>YES</string> 和 <key>ENTITLEMENTS_REQUIRED</key> <string>YES</string> 3.下面修改另外一個檔案: 按照該路徑找到Info.plist然後進行編輯: Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 将Info.plist中全部的XCiPhoneOSCodeSignContext 修改成 XCCodeSignContext,他們分别在DefaultProperties分支下、OverrideProperties分支下和RuntimeRequirements分支下。 4.添加檔案: 連接配接網際網路後在終端執行: mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py

如果沒有聯網,可以在/Applications/Xcode.app/Contents/Developer檔案夾下建立一個iphoneentitlements檔案夾,然後在該檔案夾下手動建立一個gen_entitlements.py檔案,并授予其執行權限(指令:sudo),這個檔案的内容為: #!/usr/bin/env python import sys import struct if len(sys.argv) != 3: print "Usage: %s appnamedest_file.xcent" % sys.argv[0] sys.exit(-1) APPNAME = sys.argv[1] DEST = sys.argv[2] if not DEST.endswith('.xml') and notDEST.endswith('.xcent'): print "Dest must be .xml (for ldid) or.xcent (for codesign)" sys.exit(-1) entitlements = """ <?xml version="1.0"encoding="UTF-8"?> <!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN" " http://www.apple.com/DTDs/PropertyList-1.0.dtd "> <plist version="1.0"> <dict>    <key>application-identifier</key>    <string>%s</string>    <key>get-task-allow</key>     <true/> </dict> </plist> """ % APPNAME f = open(DEST,'w') if DEST.endswith('.xcent'): f.write("\xfa\xde\x71\x71") f.write(struct.pack('>L', len(entitlements)+ 8)) f.write(entitlements) f.close()

三、修改工程設定(真機調試閃退的,請仔細的看此步驟,這步就是關鍵問題所在)         特别注意:本階段之前的修改配置檔案、準備腳本等,隻需要做一次。但本階段的操作,對每個需要真機調試的工程都要做一遍。         這個步驟的主要作用是支援真機調試,如果不做這個步驟,仍然可以通過步驟5來生成ipa在真機上運作,但是無法使用Xcode内置的調試器對在真機上運作的程式進行單步跟蹤。如果您的程式在點選Run真機調試時秒退,請檢查此步驟是否正确完成。 1.禁用Xcode自動的簽名操作 将工程配置中所有的Code Signing選項全部設為Don't Code Sign,如圖。可能需要先點選“All”讓這個選項顯示出來。

Xcode5&amp;4.6.3 + iOS 7&amp;6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

2.添加自定義的生成後腳本(Xcode5配置請看後文PS部分) 在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 如圖所示:

Xcode5&amp;4.6.3 + iOS 7&amp;6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

        至此配置全部完成,下面就可以插上iPhone,重新選擇生成目标來測試一下線上調試了!如果是第一次使用該裝置調試,請先在Organizer中将裝置切換為開發模式(iPhone右部的小綠點亮)。

四、生成IPA檔案         如果我的程式調試好了,怎麼才能發給别人用呢?正常情況下ipa檔案是從Xcode的Organizer中輸出的,但是我們沒有證書,這樣輸出會産生錯誤。我們隻能用個小技巧來完成這個操作了。         先将代碼生成為Release目标,然後打開工程的輸出檔案夾,通常情況下這個目錄是/Users/使用者名/Library/Developer/Xcode/DerivedData/以工程名打頭的檔案夾/Build/Products/Release-iphoneos這個目錄下有個xxx.app的檔案,就是生成的程式了。把這個xxx.app拖到iTunes中,它會出現在應用程式那個清單中,然後再把它從iTunes的那個清單中拖出來(比如拖到桌面),它就這樣變成xxx.ipa了!把這個.ipa發給别人,大家就可以跟您一起分享這個程式了。 PS:Xcode5在添加自定義的生成後腳本時,步驟不是按照Xcode4.6.3的配置,應該是在Xcode5裡Build Phases界面下,點選Xcode導航欄裡的Editor,然後選擇Add Build Phase--Add Run Script Build Phase,添加方法同上。

Xcode5&amp;4.6.3 + iOS 7&amp;6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

下載下傳專區:

Xcode4.6.3下載下傳位址:

http://pan.baidu.com/s/1wwZWI

Xcode5正式版下載下傳位址:

http://pan.baidu.com/s/1DXWGl

Plist檔案編輯器PList Editor下載下傳 : 

Xcode5&amp;4.6.3 + iOS 7&amp;6免證書開發+真機調試+生成ipa全攻略(提供Xcode下載下傳)!

  PList Editor.zip (80.07 KB, 下載下傳次數: 124921)