XCode无证书真机调试(只支持越狱机器)
2014-02-21 20:09
393 查看
写在前面:之前写了一篇申请IDP的教程(http://blog.csdn.net/it_magician/article/details/8658670),整个过程最长可能会在半个月左右。对于那些等不及需要联机调试,或者不打算申请IDP的个人自学者或越狱机开发者,其实还有一个方法可以实现真机调试,那就是破解Xcode的证书限制(前提是iOS设备已越狱)。以下教程是转载的,感谢原作者的分享,本人亲测可行(支持最新Xcode4.6版)。
原文地址:http://blog.csdn.net/vrix/article/details/7851377
本方法是结合网上一些朋友的帖子,然后加上自己的理解写的,在ML OS X 10.8环境下用XCode4.5+ IOS6.0.1实测可行!
ps:使用无证书调试,也意味着你的设备要越狱!
第一步:制作证书
1)打开 Finder->应用程序->实用工具 -> 钥匙串访问
2)单击:"钥匙串访问"选择 "证书" 再选择"创建证书"过程如下图:
注意:证书名称必须填写为 iPhone Developer
第二步:修改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
2)修改Info.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
用XCode打开该目录下的Info.plist文件,右击--Add Row,增加两项:
PROVISIONING_PROFILE_ALLOWED 值为 NO
PROVISIONING_PROFILE_REQUIRED 值为 NO
3)将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成"XCCodeSignContext"(共3处)
第三步:设置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/envpython
import sys
import struct
if len(sys.argv)!= 3:
print "Usage: %s appnamedest_file.xcent" % sys.argv[0]
sys.exit(-1)
APPNAME =sys.argv[1]
DEST =sys.argv[2]
if notDEST.endswith('.xml') and not DEST.endswith('.xcent'):
print "Dest must be .xml (for ldid) or.xcent (for codesign)"
sys.exit(-1)
entitlements ="""
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>application-identifier</key>
<string>%s</string>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
"""% APPNAME
f = open(DEST,'w')
ifDEST.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)点击项目图标,找到"BuildSettings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"
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
第五步:连接设备(iphone/ipad)
点XCode右上角的Organizer图标,然后选中你的设备,在右边窗口中点击“Use for Development” 即可,此时你的设备名称旁边应该显示黄色的小灯,重新拔插数据线,Organizer中会出现一个进度条,等这个进度条跑完,小灯就会变成绿色,开发模式 已经启用。
测试真机调试:
创建一个Page-based Application工程,修改BuildSettings和Build Phases下面的相关配置(参考第四步)
1)选择你的设备
2)随便拖一个button,然后点击运行(Run)
3)iphone运行效果截图
原文地址:http://blog.csdn.net/vrix/article/details/7851377
本方法是结合网上一些朋友的帖子,然后加上自己的理解写的,在ML OS X 10.8环境下用XCode4.5+ IOS6.0.1实测可行!
ps:使用无证书调试,也意味着你的设备要越狱!
第一步:制作证书
1)打开 Finder->应用程序->实用工具 -> 钥匙串访问
2)单击:"钥匙串访问"选择 "证书" 再选择"创建证书"过程如下图:
注意:证书名称必须填写为 iPhone Developer
第二步:修改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
2)修改Info.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/
用XCode打开该目录下的Info.plist文件,右击--Add Row,增加两项:
PROVISIONING_PROFILE_ALLOWED 值为 NO
PROVISIONING_PROFILE_REQUIRED 值为 NO
3)将上面Info.plist文件中的 "XCiPhoneOSCodeSignContext" 替换成"XCCodeSignContext"(共3处)
第三步:设置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/envpython
import sys
import struct
if len(sys.argv)!= 3:
print "Usage: %s appnamedest_file.xcent" % sys.argv[0]
sys.exit(-1)
APPNAME =sys.argv[1]
DEST =sys.argv[2]
if notDEST.endswith('.xml') and not DEST.endswith('.xcent'):
print "Dest must be .xml (for ldid) or.xcent (for codesign)"
sys.exit(-1)
entitlements ="""
<?xmlversion="1.0" encoding="UTF-8"?>
<!DOCTYPEplist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plistversion="1.0">
<dict>
<key>application-identifier</key>
<string>%s</string>
<key>get-task-allow</key>
<true/>
</dict>
</plist>
"""% APPNAME
f = open(DEST,'w')
ifDEST.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)点击项目图标,找到"BuildSettings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"
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
第五步:连接设备(iphone/ipad)
点XCode右上角的Organizer图标,然后选中你的设备,在右边窗口中点击“Use for Development” 即可,此时你的设备名称旁边应该显示黄色的小灯,重新拔插数据线,Organizer中会出现一个进度条,等这个进度条跑完,小灯就会变成绿色,开发模式 已经启用。
测试真机调试:
创建一个Page-based Application工程,修改BuildSettings和Build Phases下面的相关配置(参考第四步)
1)选择你的设备
2)随便拖一个button,然后点击运行(Run)
3)iphone运行效果截图
相关文章推荐
- 破解Xcode实现无证书真机调试(支持Xcode4.6)
- iPhone 开发之二---xcode 4.6 越狱 免证书 真机调试
- Xcode实现无证书真机调试(支持Xcode4.6)
- 破解Xcode实现无证书真机调试(支持Xcode4.6)
- Xcode 6.3 免证书真机调试 已越狱
- 破解Xcode实现无证书真机调试(支持Xcode4.6)
- Xcode 5免证书真机调试
- Xcode 7真机免证书调试
- Xcode免证书真机运行调试记录
- Xcode无证书真机调试过程中出现的小问题
- 执行更新Xcode 4.1~4.6 + iOS 5、iOS 6免证书(iDP)开发+真机调试+生成IPA全攻略
- XE7 & IOS开发之开发账号(1):开发证书、AppID、设备、开发授权profile的申请使用,附Debug真机调试演示(XCode所有版本通用,有图有真相)
- XCode7免证书真机调试
- (转)IOS 7 Xcode 5 免IDP证书 真机调试
- IOS 7 Xcode 5 免IDP证书 真机调试
- Xcode 4.1/4.2/4.3/4.4/4.5 + iOS 5.1.1免证书(iDP)开发+真机调试+生成IPA全攻略
- [iOS] Xcode 5 + iOS 7免证书(iDP)真机调试与生成IPA全攻略
- xCode 4.X 免证书真机发布及调试
- iOS杂谈20—Xcode破解免证书真机调试(包含4.1以上xcode)
- Xcode 4.1/4.2/4.3 免证书(iDP)开发+真机调试+生成IPA全攻略