但詳細細節還是與現實有些出入,我就打算自己寫一篇比較歸納出來的心得,哪天找不到資源時,勉強可以用上
開始前,得先注意以下幾點
- 手機JB過了?還沒就請參考『iPhone 5 IOS 8.1.2 使用太極v1.2.0一鍵JB』
- JB後有沒有Cydia軟體?沒有就去安裝吧
- 擁有一台白蘋果或黑蘋果的電腦了嗎?還沒就快去想辦法吧
- Xcode下載好了沒?還沒就快去App Store或Apple Developer下載
- 一顆興奮的心準備好了沒?還沒就吃顆興奮劑吧 :)
先至手機,開啟Cydia軟體做更新
接著按下編輯/加入來源『cydia.angelxwind.net』
等待更新完成後,會出現新的來源『Karen's Pineapple Repo』,點擊進去
點到所有套件
找到AppSync Unified,並進行安裝
安裝完畢後重新啟動
網路上有其他的假來源,請小心不要用到啊..
http://cydia.angelxwind.net/
手機在安裝同時先回到電腦上先將Xcode的Project都關閉,並對Xcode點右鍵/Show Package Contents
進入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform 將『OverrideProperties/CODE_SIGN_CONTEXT_CLASS』以及『RuntimeRequirements/Classes/Item 0』和『DefaultProperties/CODE_SIGN_CONTEXT_CLASS』值改為『XCCodeSignContext』,並存檔
接著進入iPhoneOS.platform底下的Developer/SDKs/iPhoneOS.sdk 或是 Developer/SDKs/iPhoneOS8.1.sdk Developer/SDKs/iPhoneOS8.1.sdk是連接Developer/SDKs/iPhoneOS.sdk iPhoneOS.sdk完整路徑:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk iPhoneOS8.1.sdk完整路徑:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk 修改SDKSettings.plist,將ENTITLEMENTS_REQUIRED與CODE_SIGNING_REQUIRED改為NO,並存檔
接著開啟Terminal,輸入
sudo mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements sudo curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt sudo mv gen_entitlements.txt gen_entitlements.py
下載不到原碼的朋友可以將以下程式碼貼到gen_entitlements.py
#!/usr/bin/env python import sys import struct if len(sys.argv) != 3: print "Usage: %s appname dest_file.xcent" % sys.argv[0] sys.exit(-1) APPNAME = sys.argv[1] DEST = sys.argv[2] if not DEST.endswith('.xml') and not DEST.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()
接著我們開始辦憑證,找到Application/Other,點擊Keychain Access
接著點選Certificate Assistant/Create a Certificate
Name:你可以任意打沒關係,不用照網路上打iPhone Developer Identity Type:選擇Self Signed Root Certificate Type:選擇Code Signing Let me override defaults:可點可不點,點了會覆蓋相同Name的簽證以及相關的應用
輸入完畢後按下Create
就完成了一張憑證,接著滑下去找到Trust
將第一個選項改為Always Trust即可,讓該憑證被信任
以下步驟再開新專案都得重複
開啟Xcode,開一個專案,並停留在當前畫面,找到『Project/Project name/Build Settings/Code Signing/Code Signing Identity』,選擇『iPhone Developer』
再選到『Targets/project name/Info/Custom iOS Target Properties/Bundle identifier』改為『my.company.${PROJECT_NAME}』
『Targets/project name/Build Settings/Code Signing/Code Signing Identity』選擇『Don't Code Sign』
『Targets/project name/Build Phases/+/New Run Script Phases』,並將Run Script區塊展開
將以下程式碼貼到該Command,該程式碼請注意如果你的憑證不是叫做iPhone Developer
請將該程式碼內的iPhone Developer改為憑證的名稱即可,不一定要照網路上所說的一定要是iPhone Developer
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
接著再來修改『Targets/{projectname}Tests/Code Signing/Code Signing Identity』選擇『Don't Code Sign』
這樣就大功告成了,接著執行程式看看,順利執行就代表設定都沒有錯誤
執行時,會詢問是否要使用該組Key
選擇Allow之後還會再出現該視窗
選擇Always Allow之後就不會再出現該視窗
接著就可以看到自己的App在手機上執行摟
發生錯誤可能有以下幾點: 沒有安裝AppSync的關係 沒有對應到正確的憑證 沒有正確將plist
參考資料:
http://blog.csdn.net/aboojaner/article/details/40392159
http://blog.udn.com/x20030312/19481550
http://www.grobinson.me/developing-and-debugging-my-own-apps-on-jailbroken-ios8-1-using-xcode-6-1-without-paying-apple/
http://www.cnblogs.com/liuliuliu/p/4030524.html
http://www.xker.com/page/e2014/1028/140722.html