Xcode 3.1.4 证书破解+iphone 3G 3.1.2真机部署(对3.2.1同样有效)
证书伪造:
- 先按照 该教程 的步骤添加证书。注意,原教程选择的是“系统”证书,这里我们用“登录”证书,切记。
![](http://images.weiphone.com/attachments/day_081217/20081217_0aeb2e2378ea0e6c01a9NLuTWqBFv62c.png)
我的環境如下:
IBMX60+iDeneb 10.5.5
iPhone 港版16G+FW2.2+越獄
iPhone SDK 2.2 final
MobileInstallation 已替換(這很重要,不然沒法放到 IP 上,可以參考 weiphone 的這個帖子: http://www.weiphone.com/thread-206698-1-1.html)
注意: SDK 版本最好和 IP 版本一致!
好啦,同學們,課程開始啦!
1. 產生證書
由於 XCode 後面的版本都要求應用程式必須經過簽署,也因此你必須要
多花99美元加入 Developer Program (真是黑呀),反正我又不放到 App Store 賣錢,乾脆自己簽個證書來用不就好了
打開 Key Access 這個工具程式(在應用程式->工具程式內),並建立一個 "iPhone Developer" 名稱的證書(這個名稱不要改,否則你得在專案內改變)
![](http://images.weiphone.com/attachments/day_081218/20081218_fce9300a796ba54b9287vlLeoPKLrCn7.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_d55ef1f1b14a1e1e359cW5IQbNFt8Cct.png)
類型選擇"編碼簽名"
![](http://images.weiphone.com/attachments/day_081213/20081213_dd37b56549784c80151epsQB4CctENwr.png)
輸入憑證資訊
![](http://images.weiphone.com/attachments/day_081213/20081213_ec7621a50a21ce938f9ew83X7UyWxwO3.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_6cc54fd9578df3a5008atrQKGDGETxKt.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_947ba68693fbce714787kntTNRDtACyI.png)
最後選擇存放在"系統"內(不是 "登入",否則會找不到)
![](http://images.weiphone.com/attachments/day_081213/20081213_6d2bc9d53a5b3db3c7376eeIbxZOMDEN.png)
這樣就大功告成了,你已經省下$99了!
2. 打開 XCode 建立 View Based Application
![](http://images.weiphone.com/attachments/day_081213/20081213_5c14d45f10ae7c49bc27VGZbksbIzIgX.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_6f975242196840f4b85085fWHmO6ONQA.png)
2. 專案建立好了後,打開 Project Setting,並在 User-Defined Settings 輸入:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO
![](http://images.weiphone.com/attachments/day_081213/20081213_d3a0c3be9925f5a92ba4FRVwLg27kUbM.png)
3. 打開 Info.plist,這個檔案主要存放應用程式的相關描述,按右鍵 Add Row,新增 SignerIdentity = "Apple iPhone OS Application Signing" (要一樣的,亂輸好像不行)
![](http://images.weiphone.com/attachments/day_081213/20081213_7ca886cbbea212de33faCqSk1lQ09imb.png)
4. 打開 MainWindow.xib 檔案,並雙擊 Window 這個圖標,我們可以看到 iPhone 內唯一的一個 Window
![](http://images.weiphone.com/attachments/day_081213/20081213_28f6d2729d858a9414c6EL5vUyVTp0do.png)
5. 加入我們自己的 View,在 Class Identity(切換到最右邊的 Tab) 輸入 MyView 按下回車鍵
![](http://images.weiphone.com/attachments/day_081213/20081213_d374c0b027da7f82849bZJrCs76LFe2C.png)
6. 同樣的我們拉進一個 UILabel 和 UIButton,並調整一下 Label 的屬性,這邊 Autosizing 的調整還蠻容易懂的,大家可以試著調整看看就知道了
![](http://images.weiphone.com/attachments/day_081213/20081213_11e3775846959465a000Uti3JamNMEie.png)
7. 畫面弄好了,但是還沒有把我們的 View 和 ViewController 建立連接,點選 HelloWorld View Controller 後可以在菜單內的 Tools->Connections Inspector 看到和 View Controller 連接的 Outlet(也就是類裡面的變量),連接的方法是把 outlet 內的view 拖拉到我們實際建立的 View
![](http://images.weiphone.com/attachments/day_081213/20081213_0f81951eafe1d8efa094VfP1VMnfQSuh.png)
8. 接著我們在建立好的 View 新增一個 outlet(lbl) 和 action(clickMe),這樣我們才可以改變 Label 這個物件,並分別把 outlet 連接到 HelloWorld 這個實際的 Label,action 連接到 "點我" 這個按鈕,並選擇 Touch Down 的事件,稍後我們會用到這個事件來改變 Label
![](http://images.weiphone.com/attachments/day_081213/20081213_a954178e82e4c44ce11dU5JYd7mZ3kIo.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_79c849775a71c7115337BpG0prvY7GbX.png)
9. 連接關係都建立好了,我們要產生實體的類,XCode 會幫我們把必要的 code 產生,產生的方法是在 File->Write Class Files
![](http://images.weiphone.com/attachments/day_081213/20081213_f3cea94c6d54a932c021Dyibsz86KeV5.png)
10.接下來我們加上一些代碼,分別打開MyView.h(注意要在 MyView 後面輸入 UIView,Xcode 不會加上)和MyView.m並輸入下面代碼
![](http://images.weiphone.com/attachments/day_081218/20081218_6a6c2e057ff4630cb262RkE7mz3a3oxu.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_4a6c442d533ae329e1b7OwYFrLxl1277.png)
![](http://images.weiphone.com/attachments/day_081213/20081213_6baaf50d5a221873742dq1U5AMhX2OHK.png)
值得一提的是你可以在寫的過程中按 CTRL+"<" 看到提示
11. 選擇要使用的設備,在此我們選擇 Device - iPhone OS 2.2,XCode 會幫我們簽署,按下"允許"(不能按"總是允許")就可以輸出到你的iPhone了(第一次跑可能會出現 Security policy error,再跑一次
就不會出現了)
![](http://images.weiphone.com/attachments/day_081213/20081213_db9aee3bdaad928ead4aVFlzjCaDmnZn.png)
12. 要刪除模擬器或實體機上的 Ap, 只要按住圖標不放就可以了
![](http://images.weiphone.com/attachments/day_081213/20081213_dfb16642cc5df30b4e71VKbOLmdjV32C.png)
13. 來個實體和虛擬機的合照吧,點"按我"可以改變 Hello World 的顏色
![](http://images.weiphone.com/attachments/day_081213/20081213_c1745d1ec94d88f2a6e1kpgLNPbBIlJU.jpg)
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
- 执行完后再复制粘贴下面的代码到命令行终端:(需要internet网络连接)
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
- 执行完脚本后修改”/Developer/Platforms/iPhoneOS.platform/Info.plist”文件,做如下修改:
新增如下两项:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO
- 再用文本编辑器打开”/Developer/Platforms/iPhoneOS.platform/Info.plist”文件,将所有“XCiPhoneOSCodeSignContext”替换为“XCCodeSignContext”,(非常重要,不进行此步骤会导致打开项目文件Xcode会崩溃报错退出)保存退出。
- 打开Xcode,打开你的项目,Project>>Edit Project Setting,选择“Build”页面,Configurations和Show都选择All,找到Code Signing Identity项,删除其子项,并将“Code Signing Identity”赋值为“iPhone Developer”(其实是个选项)。
- 然后找到你项目的xxx-Info.plist文件,添加“SignerIdentity”项,其值为“Apple iPhone OS Application Signing”.保存。
- 将iPhone接入电脑,在Xcode的Window>>Organizer中会侦测到你的iPhone.查看iPhone和你的Xcode识别正常后退出Organizer,选择编译环境为“iPhone Device-3.1.2|Release”,点击"Build and Go",期间会出现让我们选择签名证书,点选“允许”后,祈祷你的iPhone屏幕亮起吧。
- 你的程序会自动下载到你的iPhone中。点触运行无任何错误提示。