【转载】Xcode4.2 破解真机调试

        由于开发的需要,有部分的功能并不能在模拟器上进行Debug,所以需要进行真机的调试。而在还没有购买开发者权限而又想在真机上调试,于是只好上网去找破解方法了。

所以本文大部分是转载,主要作用是做下记录,方便以后需要的时候使用。要在免证书的情况下,在真机上调试,首先ios device 必须的越狱。

1.创建证书。打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以。

             2.修改Xcode 配置文件和二进制文件。(双击配置文件就可以打开,不过SDKSetting.plist有权限控制)

     修改/Developer/Platforms/iPhoneOS.platform目录下的Info.plist文件,将其中的 XCiPhoneOSCodeSignContext 都改为XCCodeSignContext。(Xcode4.2中应该有3处)  

修改/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk目录下的SDKSettings.plist文件,修改如下字段:

<key>CODE_SIGNING_REQUIRED</key>
<string>NO</string>

<key>ENTITLEMENTS_REQUIRED</key>
<string>NO</string>
(因为有权限控制,此处建议在终端进入root权限用vim进行编辑修改。或者用sudo vim SDKSettings.plist)

3.破解Xcode二进制文件。创建一个shell 脚本。内容如下。

#!/bin/bash
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "xc3x26x00x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv -n working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
复制代码

然后执行 chmod +x crack

执行./crack,没错误就正常。(此处注意最好在root用户下执行,不然可能又会提示,权限不够。同时shell脚本中'\'是转义符,用来正常输出后面的空格)

4.修改Xcode 工程配置文件

1)下载脚本。

打开终端,执行如下操作

cd  /Developer
mkdir xcode-crack
cd xcode-crack
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。

#!/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()
 
2)禁用Xcode的签名操作。

将工程配置中所有的Code Signing选项全部设为Don't Code Sign,如图。可能需要先点击“All”让这个选项显示出来



            5.添加自定义的生成脚本。

在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本(如图)

export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/xcode-crack/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
复制代码


5.打包应用程序,生成ipa文件

在xcode上选择product菜单,选择Build For ---> Build for Achiving。(注意要将break point 旁边的目标设备,改为iOS Device,而不是iphone5.0 simulator).

然后把iphone4s连上Mac,直接Run,应用就会直接被放到了iphone4s上。


-----

附加说明:使用越狱的iphone进行真机调试的时候,一般先去Cydia上装一款用于下载MoblieInstallation file的软件。可以解决在以上步骤正常完成之后出现的0xE8008018错误。安装软件的步骤是,Manage-->Source-->click Edit-->Add-->输入cydia.hackulo.us,add source-->文件下载完成之后,去搜索Appsync-->安装该软件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值