SDK3.0免证书(iDP)联机调试教程,更新到3.12版本

本文介绍了一种在SDK3.0环境下进行免证书(iDP)联机调试的方法,适用于xcode3.13及越狱后的iPhone3.0系统。调试过程包括制作证书、打补丁、配置XCode等步骤。

转自:http://www.cocoachina.com/bbs/read.php?tid-6040-keyword-%D6%A4%CA%E9.html

SDK3.0免证书(iDP)联机调试教程,更新到3.12版本

管理提醒: 本帖被 gagaga 执行加亮操作(2009-11-09)
009.10.15更新
在leopard下,最新sdk3.12 xcode 3.14,安装完成后,重新执行步骤3,打补丁.对应在snow leopard 系统下,系统是64位了,补丁要改,具体参考下面英文参考2.
其他步骤如果已经做过,不用重新做.步骤6要改一下,改成:文本编辑方式打开/Developer/Platforms/iPhoneOS.platform/Info.plist,把其中的三处XCiPhoneOSCodeSignContext替换成XCCodeSignContext保存即可.
大家可以测试下,反正我的到了检测iphone机子连接那一步了.


///////////下面是老的3.0的内容
经过看网上的资料,和我几个小时的试验,已经成功,联机调试.

环境:pc+mac os 10.5.7+sdk3.0(xcode 3.13,iphone3.0 7A341),iphone 用官方3.0+越狱.
1.在之前的2.x版本下,我一般编译程序到机子的做法是修改xproject去掉iPhone Developer的方法,(参考 http://www.cocoachina.com/bbs/read.php?tid-1822-fpage-4.html)
如果以前这样修改过xproject文件的,要先恢复到原始状态,把iPhone Developer那句话加回去(随意找个2.x时期的官方sample就有)
2.制作自己的 证书,制作方法参考 http://www.weiphone.com/thread-222380-1-1.html,说明的是,最后的存放位置据说应该是登录(login)而不是系统,反正我现在用的就是登录.
3.打开终端,执行如下代码,这个是XCode的补丁,因为在3.13的xcode修补了3.12的免签名漏洞,打这个补丁才行
#!/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

或者你懒的去执行,也可以下载这个文件(要解压下)    zip.gifpatch.sh.zip (1 K) 下载次数:502 放在用户根目录,执行
sudo sh ./patch.sh

4.在终端执行如下命令

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

5.XCode中打开你的project,在菜单project->New Build Phase > New Run Script Build Phase,那个script空白框,拷贝如下代码进去

export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements30/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --resource-rules "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/ResourceRules.plist" \
         --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"  "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi


6.修改"/Developer/Platforms/iPhoneOS.platform/Info.plist"文件,默认是用Property List Editor打开,然后添加:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO

7.在你的project的info.list里面增加一行,也就是你之前步骤2建的自定义的 证书名字啦.
SignerIdentity=iPhone Developer

8.把你的iphone连接到电脑,提示连接成功,后 xcode菜单,window->Organizer里面,把iphone设为调试设备.
对了,我忘记了我做的一个步骤,不知道是不是必须的,这里补上
9.iphone要安装MobileInstallation Patch ,安装步骤:打开cydia,进入manage->sources->edit->Add,在网址输入框里面输入 www.iphone.org.hk/adp/
完成后,进入sources 可以看到 www.iphone.org.hk/apt/这个网站,然后进去,可以找到MobileInstallation Patch,点击安装即可.
安装完成重启手机.

以上步骤,并非按顺序做,只是充分条件,我没有完全测试,可能有些步骤不是必须的,大家可以根据自己的实际情况来看.

参考资料:
(中文部分)
1, http://www.weiphone.com/thread-394723-1-1.html(这个较早,3.12版本,也比较复杂,不建议使用)
2, http://www.weiphone.com/thread-421187-1-1.html(后续,3.13版本的xcode,不完整,不能联机调试,其实这个教程加上我所说的步骤4应该可以了调试)
(英文部分)
http://www.alexwhittemore.com/?p=270
http://www.iphonedevsdk.com/forum/iphone-sdk-tools-utilities/20983-sdk-3-0-xcode-3-1-3-build-go-jailbroken-device.html

转载于:https://www.cnblogs.com/shanghaif/archive/2010/07/14/1777156.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值