XCode5 免证书真机调试,开发IOS7应用程序

本方法是结合网上的帖子,自己理解了一下,结合一些小命令,做的。

最后有个附件,可以方便你的操作过程。有不合适的地方自己修改一下吧。

我在 OSX10.8 环境下 配合 IOS7 SDK,XCode5.0 调试成功。

注意,无证书调试,需要保证你的设备需要越狱!!!!First!

第一步,制作证书。

1. 注意证书的名字必须是:iPhone Developer,注意大小写。

2. 注意密钥使用扩展那个选项一定要保证“签名”被选中。 已扩展的密钥使用扩展,代码签名要保证选中。

具体操作就不再赘述,实在不会的去百度一下吧。

第二步, 修改XCode破解程序。

1. 打开一个shell终端,敲一下命令 sudo su ,回车,可能会要求输入密码,root密码。

2. 打开路径:  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk ,找到SDKSettings.plist文件,修改两个项目:

把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改 成NO

如果是用VI修改的话,直接查找,然后把值改成NO即可。而且可以直接保存。

如果是使用xcode打开,可能保存不了,先另存到另一个地方,然后拷贝回去,覆盖原来的文件即可。

3. 修改Info.plist文件

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

同样,如果无法保存,只需要拷贝,修改,再拷贝回去覆盖即可。

注意,这个文件还有地方要改。把 “XCiPhoneOSCodeSignContext” 替换成 “XCCodeSignContext”(共3处)

4. 设置脚本。gen_entitlements.py,权限为777,放到/Applications/Xcode.app/Contents/Developer/iphoneentitlements 文件夹下,如果没有,创建它。

。脚本的内容如下:

#!/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()

好吧,我知道你懒得复制粘贴,甚至创建文件。

这里还有命令行方法:

sudo mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements

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

sudo curl ­-O http://www.alexwhittemore.com/iphone/gen_entitlements.txt

sudo mv gen_entitlements.txt gen_entitlements.py sudo chmod 777 gen_entitlements.py

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

这就好了。

我会提供一个脚本链接的,放心哈。

最后一步(经过测试,第一个项目好像必须有,从网上下载或者新建的项目不用改也能真机调试???)

打开项目,在Build Settings里边找到Code Sign Identity,全都改成“Don’t Code Sign”

在Build Phases 选项中,点击右下角的 Add Build Phase,选择类型为Run Script。

在Script中输入以下脚本:

xport CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Devel oper/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

 

OK,以下是文件链接:
(注意修改属性为可执行)

gen_entitlements

(只要复制内容贴到对应的XCode框里边)

RunScript

Info  (这个跟XCode以及IOS SDK的版本有关系,如果不是SDK7.0 + XCode5不要直接下载覆盖)

SDKSettings  (这个跟XCode以及IOS SDK的版本有关系,如果不是SDK7.0 + XCode5不要直接下载覆盖)

 

 

 

 

 

 

写在前面:之前写了一篇申请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运行效果截图

  


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值