XCode免證書開發環境是本文要介紹的内容,如果你和我一樣,是一名愛好iOS開發的開發者,并且又舍不得花費99美金去購買一個合法的開發License,這篇部落格則非常适合你。如果,您是一位已經獲得Apple開發者證書的開發者,則可以完全無視該篇Blog。
在沒有證書的情況下,開發iOS應用程式隻能在功能有限的模拟器環境中運作你的應用程式(x86環境)。對于那些與硬體平台關系不大的iOS應用程式開發來說,模拟器環境可以模拟大多數功能,但是一旦你的應用需要涉及實際的硬體裝置(比如:攝像頭,感應器等),則模拟器就無法滿足您的開發需求。拜股溝大神所賜,網路上已經早已有開發者用自簽名證書的方式,繞開XCode的證書檢查,可以将XCode編譯的應用程式部署到實際的iOS裝置上進行測試和調試。
Xcode如果不破解,一方面無法真機調試, 也無法編譯真機Release檔案,隻能付費開通Apple開發者賬号,才能申請真機調試。而Xcode進行破解後,接合越獄的iPhone或iPad, 即可免官方證書開發調試了!目前測試對于最新的iOS 4.2 SDK/iOS 4.2.1 SDK的Xcode 3.2.5一樣适用!當然,對iOS 3.2.2/iOS 4.1 SDK的Xcode 3.1.2同樣保持相容。
生成自簽名開發證書
啟動證書鍊管理工具(應用程式->實用工具->鑰匙串通路)建立證書
XCode免證書開發環境XCode免證書開發環境 1.設定證書名稱設定為iPhone Developer(該名稱需要和XCode編譯簽名時使用的證書名稱一緻,下文會提到),身份類型選擇自簽名根證書,證書類型選擇S/MIME (電子郵件),并且在覆寫這些預設值選項上打勾。 XCode免證書開發環境XCode免證書開發環境 選擇繼續制作自簽名證書 XCode免證書開發環境XCode免證書開發環境 2. 設定證書有效期365天(時長不要超過365天) XCode免證書開發環境XCode免證書開發環境 3. 輸入使用者資訊 XCode免證書開發環境XCode免證書開發環境 4. 選擇密鑰大小和算法(2048位和采用RSA算法) XCode免證書開發環境XCode免證書開發環境 XCode免證書開發環境XCode免證書開發環境 5. 設定密鑰擴充功能(選擇簽名功能和代碼簽名功能) XCode免證書開發環境XCode免證書開發環境 6. 禁止基本限制擴充 XCode免證書開發環境XCode免證書開發環境 7. 設定主題裝置用名稱擴充,RFC822輸入郵箱即可 XCode免證書開發環境XCode免證書開發環境 8. 設定鑰匙串類型為登陸類型 XCode免證書開發環境XCode免證書開發環境 至此,自簽名證書建立完畢
Xcode破解
保證Xcode處于關閉狀态,指令行終端,複制粘貼下面的代碼:
#!/bin/bash cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 printf “\x8f\x2a\x00\x00″ >> working dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504 /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original /bin/mv working iPhoneOS\ Build\ System\ Support chmod a+x iPhoneOS\ Build\ System\ Support 然後複制粘貼下面的代碼到指令行終端: mkdir /Developer/iphoneentitlements30 cd /Developer/iphoneentitlements30 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py chmod 777 gen_entitlements.py ./gen_entitlements.py 執行完腳本後修改”/Developer/Platforms/iPhoneOS.platform/Info.plist”檔案,做如下修改:
新增如下兩項(告知項目編譯無需證書):
PROVISIONING_PROFILE_ALLOWED = NO PROVISIONING_PROFILE_REQUIRED = NO 共兩處需要修改,如下所示: <key>ARCHSkey> <string>armv6string> <key>CODE_SIGN_CONTEXT_CLASSkey> <string>XCiPhoneOSCodeSignContextstring> <key>COMPRESS_PNG_FILESkey> <string>YESstring> <key>DEBUG_INFORMATION_FORMATkey> <string>dwarf-with-dsymstring> <key>EMBEDDED_PROFILE_NAMEkey> <string>embedded.mobileprovisionstring> <key>INFOPLIST_OUTPUT_FORMATkey> <string>binarystring> <key>NATIVE_ARCHkey> <string>armv6string> <key>PLIST_FILE_OUTPUT_FORMATkey> <string>binarystring> <strong><key>PROVISIONING_PROFILE_ALLOWEDkey> <string>NOstring> <key>PROVISIONING_PROFILE_REQUIREDkey> <string>NOstring>strong> <key>SDKROOTkey> <string>iphoneos2.2.1string> <key>STRINGS_FILE_OUTPUT_ENCODINGkey> <string>binarystring> <key>CODE_SIGN_CONTEXT_CLASSkey> <string>XCiPhoneOSCodeSignContextstring> <key>DEBUG_INFORMATION_FORMATkey> <string>dwarf-with-dsymstring> <key>EMBEDDED_PROFILE_NAMEkey> <string>embedded.mobileprovisionstring> <key>SDKROOTkey> <string>iphoneos2.2.1string> <strong><key>PROVISIONING_PROFILE_ALLOWEDkey> <string>NOstring> <key>PROVISIONING_PROFILE_REQUIREDkey> <string>NOstring>strong> 加粗部分為要加入的内容。儲存。
然後将該檔案中所有的”XCiPhoneOSCodeSignContext”替換為”XCCodeSignContext”,即去掉中間的”iPhoneOS” 。如果不進行此步,編譯Device Release版本時會報錯:
Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourcompany.xxxx’ could not be found 1. 使用XCode打開你的項目檔案,在Project->Edit Project Setting中選擇Build頁面,找到Code Signing Identifty選項,将簽名設定成iPhone Developer
2. 然後找到你項目的xxx-Info.plist檔案,添加”SignerIdentity”項,其值為”Apple iPhone OS Application Signing”.儲存。[我加了這一步編譯時就總出錯,不加沒問題,不知道為啥子。。。]
Xcode破解完成,或者更準确的講,是配置完成!
Xcode真機調試
将 iPhone接入電腦,在Xcode的Window->Organizer中會偵測到你的iPhone.檢視iPhone和你的Xcode識别正常後退出Organizer,選擇編譯環境為”iPhone Device-4.2|Release”,點選”Build and Go”,期間會出現讓我們選擇簽名證書,點選”允許”後,等待你的iPad/iPhone螢幕點亮就ok了。
你的程式會自動下載下傳到你的iPhone中,可以進行真機調試了。
Xcode更新破解
如果是在原Xcode的版本上更新到3.2.5,并且之前已經破解過,那麼隻需要再做如下步驟即可:
新增如下兩項(告知項目編譯無需證書):
PROVISIONING_PROFILE_ALLOWED = NO PROVISIONING_PROFILE_REQUIRED = NO 然後将該檔案中所有的”XCiPhoneOSCodeSignContext”替換為”XCCodeSignContext”,即去掉中間的”iPhoneOS” 。如果不進行此步,編譯Device Release版本時會報錯: Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourcompany.xxxx’ could not be found 小結:XCode免證書開發環境的内容介紹完了,希望本文對你有所幫助!!! Xcode開發環境 了解 Xcode 工程 Xcode 4實作基于WebService使用者登入iPhone程式 執行個體 詳解XCode構造成iOS應用程式如何啟動 Xcode學習筆記 給WindowBase程式添加View 修改Xcode配置并支援iPhone上dylib工程 執行個體 淺談Xcode 交叉開發程式設計中選項 Xcode 使用 新手必看