图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)

本方法是结合网上一些朋友的帖子,然后加上自己的理解写的,在ML OS X 10.8环境下用XCode4.4/4.4.1 + IOS5.1实测可行!

ps:使用无证书调试,也意味着你的设备要越狱!

 

第一步:制作证书

1)打开   Finder->应用程序->实用工具 ->  钥匙串访问 

2)单击:"钥匙串访问"选择  "证书" 再选择"创建证书"过程如下图:

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第1张图片

注意:证书名称必须填写为 iPhone Developer

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第2张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第3张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第4张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第5张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第6张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第7张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第8张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第9张图片

 

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第10张图片

 

第二步:修改XCode配置文件

注:如遇到文件无法解锁没有权限不能修改,可以复制一份出来,修改好之后将原来的替换掉

1)修改SDKsettings.plist文件

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk

打开该目录下的SDKSettings.plist文件,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第11张图片

2)修改Info.plist文件

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/

用XCode打开该目录下的Info.plist文件,右击--Add Row,增加两项:

PROVISIONING_PROFILE_ALLOWED 值为 NO

PROVISIONING_PROFILE_REQUIRED 值为 NO

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第12张图片

3)将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成 "XCCodeSignContext"(共3处)

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第13张图片

 

第三:设置gen_entitlements.py脚本权限

注:如果你的电脑联网了,那么执行1)的命令后会在相应的目录自动创建iphoneentitlements文件夹及其下的gen_entitlements.py文件,如执行后没有生成指定文件,请重复执行下面的命令或者换第二种方法,两种生成脚本文件的方法任选一种。

1)在终端执行如下命令:

复制代码
mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements

cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements

curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt mv gen_entitlements.txt gen_entitlements.py
sudo chmod 777 gen_entitlements.py
复制代码

2)上面的命令执行成功之后,会在/Applications/Xcode.app/Contents/Developer/目录下生成一个iphoneentitlements文件夹和其下的gen_entitlements.py文件,如果你的电脑没有联网或者不能自动生成相关目录文件,那么需要手动在相应的目录创建指定的文件,随后需要给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()
复制代码

在终端给gen_entitlements.py设置权限(可能会要你输入密码)

sudo chmod 777 /Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py

 

 

第四步:修改项目属性

1)点击项目图标,找到"Build Settings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第14张图片

 

2)切换到Build Phases选项,点击右下角的Add Build Phase,然后单击Add Run Script,然后在Run Script中输入以下脚本:

复制代码
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
复制代码

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第15张图片

 

第五步:连接设备(iphone/ipad)

点XCode右上角的Organizer图标,然后选中你的设备,在右边窗口中点击“Use for Development” 即可,此时你的设备名称旁边应该显示黄色的小灯,重新拔插数据线,Organizer中会出现一个进度条,等这个进度条跑完,小灯就会变成绿色,开发模式已经启用。

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第16张图片

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第17张图片

 

测试真机调试

创建一个Page-based Application工程,修改Build Settings和Build Phases下面的相关配置(参考第四步)

1)选择你的设备

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第18张图片

 

2)随便拖一个button,然后点击运行(Run)

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第19张图片

 

3)iphone运行效果截图

图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第20张图片图文并茂 在ML OS X 10.8 + XCode4.4/4.4.1下实现无证书真机调试IOS5.1.1(亲测,附调试截图)_第21张图片

分类:  Mac/IOS
绿色通道:  好文要顶  关注我  收藏该文 与我联系 
Mr.Sjun
关注 - 1
粉丝 - 2
+加关注
0
0
(请您对文章做出评价)
« 博主前一篇: 特性(@property、@synthesize)
» 博主后一篇: 类别(category)、委托(delegate)、非正式协议(informal protocol)、正式协议(formal protocol)

posted on 2012-08-04 06:58 Mr.Sjun 阅读(298) 评论(6) 编辑 收藏

评论

#1楼   

您好,我到了第二步:修改XCode配置文件
1)修改SDKsettings.plist文件这里,
已经打开了SDKsettings.plist,但无法把YES改成NO,我是管理者权限,但修改文件时显示信息如图,请问如何解决,谢谢
支持(0) 反对(0)
2012-08-05 13:33 |  zpy2012   

#2楼[楼主]   

@zpy2012
那你把那个文件复制出来修改一下,然后再覆盖替换看看
支持(0) 反对(0)
2012-08-05 13:36 |  Mr.Sjun   

#3楼   

终于搞定,多谢楼主。楼主感谢您啊
支持(0) 反对(0)
2012-08-06 00:06 |  扶风父   

#4楼[楼主]   

@扶风父
搞定就好,你的错误应该是Run Script没有输入正确吧?
支持(0) 反对(0)
2012-08-06 00:43 |  Mr.Sjun   

#5楼   

谢谢您,这个问题解决了,但还是没能成功,请帮帮我。

我在第三步:设置gen_entitlements.py脚本权限时
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/
Developer里没有iphoneentitlements文件夹及gen_entitlements.py脚本,自己添加了,不知道对不对。

然后打开终端,拷贝命令运行


后面完全按步骤进行,小灯已变绿色

手机上也出现了新的图标,但无法运行。

电脑上显示信息分别为
第一次实机运行时要求署名

实装时第一次显示错误

再实装时显示错误
支持(0) 反对(0)
2012-08-06 08:18 |  zpy2012   

#6楼   

@Mr.Sjun
不是,是创建签名的时候都是默认设置,所以会出现这个提示

你可能感兴趣的:(OS,xcode,Build,wrapper,XCode4,ios5)