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

来源:互联网 发布:网络教育本科怎么报考 编辑:程序博客网 时间:2024/06/05 10:46

http://www.devdiv.com/iOS_iPhone-%E5%9B%BE%E6%96%87%E5%B9%B6%E8%8C%82_%E5%9C%A8ML_OS_X_10.8___XCode4.4%E4%B8%8B%E5%AE%9E%E7%8E%B0%E6%97%A0%E8%AF%81%E4%B9%A6%E7%9C%9F%E6%9C%BA%E8%B0%83%E8%AF%95IOS5.1.1_%E4%BA%B2%E6%B5%8B%EF%BC%8C%E9%99%84%E8%B0%83%E8%AF%95%E6%88%AA%E5%9B%BE_-thread-131478-1-2.html


第一步:制作证书
1)打开   Finder->应用程序->实用工具 ->  钥匙串访问 
2)单击:"钥匙串访问"选择  "证书" 再选择"创建证书"过程如下图:
1.png 
注意:证书名称必须填写为 iPhone Developer
2.png 
3.png 
4.png 
5.png 
6.png 
7.png 
8.png 
9.png 
10.png 

第二部:修改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
11.png 

2)修改Info.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
用XCode打开该目录下的Info.plist文件,右击--Add Row,增加两项:
PROVISIONING_PROFILE_ALLOWED 值为 NO
PROVISIONING_PROFILE_REQUIRED 值为 NO
12.png 

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

第三部:设置gen_entitlements.py脚本权限
1)文件的内容为:
/Applications/Xcode.app/Contents/Developer/iphoneentitlements/

01#!/usr/bin/env python
02 
03import sys
04import struct
05 
06if len(sys.argv) != 3:
07 print "Usage: %s appname dest_file.xcent" % sys.argv[0]
08 sys.exit(-1)
09 
10APPNAME = sys.argv[1]
11DEST = sys.argv[2]
12 
13if not DEST.endswith('.xml') and not DEST.endswith('.xcent'):
14 print "Dest must be .xml (for ldid) or .xcent (for codesign)"
15 sys.exit(-1)
16 
17entitlements = """
18<?xml version="1.0" encoding="UTF-8"?>
19<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
20<plist version="1.0">
21<dict>
22    <key>application-identifier</key>
23    <string>%s</string>
24    <key>get-task-allow</key>
25    <true/>
26</dict>
27</plist>
28""" % APPNAME
29 
30f = open(DEST,'w')
31if DEST.endswith('.xcent'):
32 f.write("\xfa\xde\x71\x71")
33 f.write(struct.pack('>L', len(entitlements) + 8))
34f.write(entitlements)
35f.close()


2)在终端执行如下命令:
1mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
2cd /Applications/Xcode.app/Contents/Developer/iphoneentitlements
3curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
4mv gen_entitlements.txt gen_entitlements.py
5sudo chmod 777 gen_entitlements.py



第四部:修改项目属性
1)点击项目图标,找到"Build Settings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"
14.png

2)切换到Build Phases选项,点击右下角的Add Build Phase,然后单击Add Run Script,然后在Run Script中输入以下脚本:
1export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
2 
3if "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "ipados" ]; then
4 
5/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py"my.company.${PROJECT_NAME}""${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
6 
7codesign -f -s "iPhone Developer" --entitlements"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent""${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
8fi

15.png

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

测试程序:
创建一个Page-based Application工程,修改Build Settings和Build Phases下面的相关配置(参考第四步)
1)选择你的设备
18.png

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

3)我的iphone运行截图
20.png 
21.png 


原创粉丝点击