Xcode 免证书开发调试 想写 IPAD 程序需要 MacOSX 操作系统和 Xcode 开发环境。在 PC 上把这两个东西装好绝对是体力活,那几天我把各种版 本的 Mac OSX(10.6.X)在 win7 的 Vmware7 的虚拟机下来来回回装了不知道多少遍。直到安装成功时,我已经忘了我 究竟装的是哪个论坛推出的版本了(光盘影像文件叫 iAntares_v3.iso 对应 MaxOSX 10.6.5,Xcode 为 3.2.4,虽然仅 支持 IOS3.2 和 IOS4.0,但足以了)。整个过程基本上是按照各种教程安装下来的,如果你也打算搭建个这样的环境, 其中有几点需要特别注意: 1.各种版本的教程连同他们的组合都要尝试,在 PC 下装 MacOSX 哪一个教程都不是 100%成功(和硬件相关性较大)。 2.建议用虚拟机,不然经不起折腾。Vmware7 是很好的选择,因为它支持 dmg 的映像文件,不必把 dmg 用 UltraISO 转 换为 iso(Xcode 的安装映像很多时候就是 dmg 格式)。 3.安装前,鼠标和键盘的驱动选项一定要调整。安装完毕后也许不能正常启动(启动后定格在灰色苹果处或黑屏), 将启动光盘映像换成 darwin300.iso 多半就可以了。 安装完毕就可以用 Xcode 开始写代码了(还需要突破 Xcode 自身的代码签名过程,否则就需要 $99/年 的证 书,因此还需要参考教程配置 Xcode 和操作系统环境)。“用 XCode 3.2.5 为越狱的 iPhone 免证书开发调试”,这篇 文章参考价值很大,参看时需要改动个别版本号。至于 IPAD 的 helloword,就更好找了。自此开发的环境就设定好了, 连线就能在 Xcode 里面编译并传送程序到 IPAD 里面了。
Xcode 编译遇到过 Code Sign error: a valid provisioning profile matching the application’s Identifier ‘com.yourcompany.xxxx’ could not be found 吗?且往下看: 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 3.2.5 免证书开发调试_打开创建证书菜单
Xcode 3.2.5 免证书开发调试_输入证书名称 iPhone Developer 并选择覆盖默认值
Xcode 3.2.5 免证书开发调试_确定继续
Xcode 3.2.5 免证书开发调试_输入序列号有效期,有效期不要超过 365 天
Xcode 3.2.5 免证书开发调试_输入电子邮件地址
Xcode 3.2.5 免证书开发调试_输入密钥对信息
Xcode 3.2.5 免证书开发调试_密钥使用扩展扩展选择:签名
Xcode 3.2.5 免证书开发调试_已扩展的密钥使用扩展选择:代码签名
Xcode 3.2.5 免证书开发调试_基本约束扩展不选择
Xcode 3.2.5 免证书开发调试_主题备用名称扩展输入 RFC822 名称,填入邮箱名即可
Xcode 3.2.5 免证书开发调试_用于该证书的位置选择钥匙串类型为登录 Xcode 破解 保证 Xcode 处于关闭状态,命令行终端,复制粘贴下面的代码: 1 2 #!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/ 3 dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255 4 printf "\x8f\x2a\x00\x00″ >> working 5 dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504 6 /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original 7 /bin/mv working iPhoneOS\ Build\ System\ Support 8 chmod a+x iPhoneOS\ Build\ System\ Support 然后复制粘贴下面的代码到命令行终端: 1 mkdir /Developer/iphoneentitlements30 2 cd /Developer/iphoneentitlements30 3 curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt 4 mv gen_entitlements.txt gen_entitlements.py 5 chmod 777 gen_entitlements.py 6 ./gen_entitlements.py 执行完脚本后修改”/Developer/Platforms/iPhoneOS.platform/Info.plist”文件,做如下修改: 新增如下两项(告知项目编译无需证书):
1 PROVISIONING_PROFILE_ALLOWED = NO 2 PROVISIONING_PROFILE_REQUIRED = NO 然 后 将 该 文 件 中 所 有 的 ”XCiPhoneOSCodeSignContext” 替 换 为 ”XCCodeSignContext” , 即 去 掉 中 间 的”iPhoneOS” 。如果不进行此步,编译 Device Release 版本时會报错: 1 Code Sign error: a valid provisioning 'com.yourcompany.xxxx' could not be found profile matching the application's Identifier
打开 Xcode,打开你的项目,Project>>Edit Project Setting,选择”Build”页面,Configurations 和 Show 都选择 All,找到 Code Signing Identity 项,删除其子项,并将”Code Signing Identity”赋值为”iPhone Developer”(其实是个选项) 然后找到你项目的 xxxInfo.plist 文件,添加”SignerIdentity”项,其值为”Apple iPhone OS Application Signing”.保存。 Xcode 破解完成,或者更准确的讲,是配置完成!