文档章节

Xcode5免证书真机调试

mickelfeng
 mickelfeng
发布于 2014/09/21 13:47
字数 1392
阅读 78
收藏 3

接续前篇《Xcode 3.2.5免证书开发调试》,推出Xcode 5 免证书真机调试

更新于2014年3月15日,适用 Xcode5.1及iOS7.1

Xcode如果不破解,无法真机调试, 也无法编译真机Release文件,只有付费开通Apple开发者账号,才能申请真机调试。而Xcode进行破解后,结合越狱的iPhone或iPad, 即可免官方证书开发调试了!

生成本机证书

应用程序->其他->钥匙串访问

菜单:钥匙串访问->证书助理->创建证书, 然后按以下图片顺序操作即可:

Xcode 5免证书开发调试_打开创建证书菜单

Xcode 5免证书开发调试_打开创建证书菜单

Xcode 5免证书开发调试_输入证书名称iPhone Developer并选择覆盖默认值

Xcode 5免证书开发调试_输入证书名称iPhone Developer并选择覆盖默认值

Xcode 5免证书开发调试_确定继续

Xcode 5免证书开发调试_确定继续

Xcode 5免证书开发调试_输入序列号有效期,有效期不要超过365天

Xcode 5免证书开发调试_输入序列号有效期,有效期不要超过365天

Xcode 5免证书开发调试_输入电子邮件地址

Xcode 5免证书开发调试_输入电子邮件地址

Xcode 5免证书开发调试_输入密钥对信息

Xcode 5免证书开发调试_输入密钥对信息

Xcode 5免证书开发调试_密钥使用扩展扩展选择:签名

Xcode 5免证书开发调试_密钥使用扩展扩展选择:签名

Xcode 5免证书开发调试_已扩展的密钥使用扩展选择:代码签名

Xcode 5免证书开发调试_已扩展的密钥使用扩展选择:代码签名

Xcode 5免证书开发调试_基本约束扩展不选择

Xcode 5免证书开发调试_基本约束扩展不选择

Xcode 5免证书开发调试_主题备用名称扩展输入RFC822名称,填入邮箱名即可

Xcode 5免证书开发调试_主题备用名称扩展输入RFC822名称,填入邮箱名即可

Xcode 5免证书开发调试_用于该证书的位置选择钥匙串类型为登录

Xcode 5免证书开发调试_用于该证书的位置选择钥匙串类型为登录

Xcode破解

保证Xcode处于关闭状态,命令行终端,复制粘贴下面的代码:

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
sudo dd if=iPhoneOS\ Build\ System\ Support of=~/working bs=500 count=255
sudo chown mac:staff ~/working
printf "\x8f\x2a\x00\x00" >> ~/working
dd if=iPhoneOS\ Build\ System\ Support of=~/working bs=1 skip=127504 seek=127504
sudo /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
sudo /bin/mv ~/working iPhoneOS\ Build\ System\ Support
sudo chmod a+x iPhoneOS\ Build\ System\ Support
sudo chown root:wheel iPhoneOS\ Build\ System\ Support

然后复制粘贴下面的代码到命令行终端:
sudo mkdir /Applications/Xcode.app/Contents/Developer/iphoneentitlements
    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
    sudochmod777 gen_entitlements.py




    #第6行这个位置,很多资料都说要执行gen_entitlements.py,但实际上在这里执行没有意义,在后面会提到在project设置中会设置执行gen_entitlements.py,生成项目专用的配置文件

修改SDKsettings.plist文件
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk (iPhoneOS后跟iOS版本号)
打开该目录下的SDKSettings.plist,文件会因为权限禁止修改,可命令行移动到用户目录,修改完成后再移动回原处)
1    sudo mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/SDKSettings.plist ~/
2    sudochownmac(你登陆系统的用户名,我的用户名是mac):staff ~/SDKSettings.plist

权限处理完成后,把CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED的值改成NO

Xcode5免证书真机调试-修改SDKSettings.plist

Xcode5免证书真机调试-修改SDKSettings.plist


修改保存后再将文件移回原处:
1sudo mv ~/SDKSettings.plist /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/
2sudochownroot:wheel /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/SDKSettings.plist

执行完脚本后修改"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist"文件(权限处理同上),做如下修改:

1sudo mv /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist ~/ #文件移动到用户目录
2sudochownmac(你登陆系统的用户名,我的用户名是mac):staff ~/Info.plist

新增如下两项(告知项目编译无需证书):

1PROVISIONING_PROFILE_ALLOWED = NO
2PROVISIONING_PROFILE_REQUIRED = NO
Xcode5免证书真机调试-修改Info.plist

Xcode5免证书真机调试-修改Info.plist

然后将该文件中所有的"XCiPhoneOSCodeSignContext"替换为"XCCodeSignContext",即去掉中间的"iPhoneOS" 。如果不进行此步,编译Device Release版本时會报错:

1Code Sign error: a valid provisioning profile matching the application's Identifier 'com.yourcompany.xxxx' could not be found
Xcode5免证书真机调试-修改Info.plist替换标识

Xcode5免证书真机调试-修改Info.plist替换标识

sudo mv ~/Info.plist /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ #文件移回原处
sudochownroot:wheel /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

修改项目属性 (每次新建项目都要执行)

A. 点击项目图标,找到"BuildSettings"选项下的"Code Sign Identity",将其值全部改为"Don't Code Sign"

Xcode5免证书真机调试-选择target

Xcode5免证书真机调试-选择target


Xcode5免证书真机调试-修改Code Signing Identity

Xcode5免证书真机调试-修改Code Signing Identity

B. 切换到Build Phases选项,点击菜单Editor->Add Build Phase->Add Run Script 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



Xcode5免证书真机调试-Add Run Script Build Phase

Xcode5免证书真机调试-Add Run Script Build Phase


Xcode5免证书真机调试-写入脚本

Xcode5免证书真机调试-写入脚本

Xcode破解完成,或者更准确的讲,是配置完成!

Xcode真机调试

将 iPhone接入电脑,在Xcode的Window->Organizer中会检测到你的iPhone.查看iPhone和你的Xcode识别正常 后退出Organizer,选择编译环境为"iPhone Device-4.2|Release",点击"Build and Go",期间会出现让我们选择签名证书,点选"允许"后,等待你的iPad/iPhone屏幕点亮就ok了。

你的程序会自动下载到你的iPhone中,可以进行真机调试了

Xcode升级破解

如果是在原Xcode的版本上升级到5,并且之前已经破解过,那么只需要再做如下步骤即可:

在/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist中新增如下两项(告知项目编译无需证书):

PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO



然后将该文件中所有的"XCiPhoneOSCodeSignContext"替换为"XCCodeSignContext",即去掉中间的"iPhoneOS" 。如果不进行此步,编译Device Release版本时會报错:

1Code Sign error: a valid provisioning profile matching the application's Identifier 'com.yourcompany.xxxx' could not be found

本文转载自:http://www.opensoce.com/4190.html

mickelfeng

mickelfeng

粉丝 237
博文 2785
码字总数 604219
作品 0
成都
高级程序员
私信 提问
iOS真机调试 for Xcode 5

由于Xcode5的到来,关于iOS软件进行真机调试方面,有了一些变化,苹果在Xcode 5中修改了一些规则,一方面是阻止以往破解的方式进行调试(免证书).另一方面是添加了自动生成证书的功能特性,来加快我...

千山万水
2014/11/16
1K
3
ios申请真机调试( xcode 5)详细解析

已经有开发证书的直接跳过第一步 第一步:申请“开发证书” 进入苹果开发者99美元账号: 选择:Certificates, Identifiers & Profiles 关于 Certificates,Identifiers,Profiles 的介绍请看 ...

lady-奕奕
2014/01/27
43.9K
26
ios申请真机调试( xcode 5)详细解析

第一步:申请“开发证书” 进入苹果开发者99美元账号: 选择:Certificates, Identifiers & Profiles 关于 Certificates,Identifiers,Profiles 的介绍请看 ”Certificates, Identifiers ,P...

谁家的阿毛
2014/04/18
3K
2
【技能提升】想知道如何免证书打包ipa

要想将程序放到iPhone上调试,并最终发布ipa用于分享,需要以下几个步骤: 一、创建证书 二、修改Xcode的配置文件 3.下面修改另外一个文件: 4.添加文件: 三、修改工程设置(真机调试闪退的,...

创意总监
2016/03/26
138
0
iOS Provisioning Profile(Certificate)与Code Signing

关于开发证书配置(Certificates & Identifiers & Provisioning Profiles),相信做iOS开发的同学没少被折腾。对于一个iOS开发小白、半吊子(比如像我自己)抑或老兵,或多或少会有或曾有过以...

豆花饭烧土豆
2016/03/21
48
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
1K
12
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
22
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
17
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
29
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部