Xcode 4.5.2免证书(iDP)开发

标签: xcode 证书 idp | 发表时间:2013-02-16 13:26 | 作者:svrsimon
出处:http://blog.csdn.net

操作系统:os x lion 10.8.2

xcode: 4.5.2

ios:6.0

在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布IPA用于分享,需要以下几个步骤:
1.自己为自己颁发一个证书用于为生成的程序签名
2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和签名
3.通过自定义生成步骤,用伪造的证书为应用程序签名
4.使用一点小trick来生成IPA文件

 

第一步:创建证书
创建证书的过程比较简单,打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须 要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以。

第二步,修改Xcode的配置文件

需要修改配置文件有两个SDKSettings.plist和Info.plist,在Xcode4.5以前这两个文件都是xml格式,而这之后变成了二进制格式,需要用Xcode来编辑这两个文件。

(1)SDKSettings.plist修改

1) 从Finder中进入文件所在目录

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk

2) 找到SDKSettings.plist文件,并鼠标右击Duplicate一份,在同目录下产生SDKSettings copy.plist文件。

3)双击打开SDKSettings copy.plist文件,默认用Xcode,找到DefaultProperties分支,将下面的CODE_SIGNING_REQUIRED和ENTITLEMENTS_REQUIRED两个属性改为NO

4)如果需要备份原文件,则将原文件改名为SDKSettings.plist.bak。然后将SDKSettings copy.plist,改名为SDKSettings.plist。

 

(2)修改Info.plist

1) 从Finder中进入文件所在目录

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

或是从(1)中后退到该目录。

2) 找到Info.plist文件,并鼠标右击Duplicate一份,在同目录下产生Info copy.plist文件。

3)双击打开Info copy.plist文件,默认用Xcode,将全部的XCiPhoneOSCodeSignContext修改成XCCodeSignContext,即将其中的iPhoneOS去掉,Xcode4.5.1有三处分别位于DefaultProperties分支下、RuntimeRequirements->Classes和OverrideProperties分支下。

3)如果需要备份原文件,则将原文件改名为Info.plist.bak。然后将Info copy.plist,改名为Info.plist。

 

第三步,准备自定义的生成后脚本,此步的执行需要联网,打开teminal。

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

chmod 777 gen_entitlements.py


第四步,修改工程设置

特别注意:本阶段之前的修改配置文件、准备脚本等,只需要做一次。但本阶段的操作,对每个需要真机调试的工程都要做一遍。

这个步骤的主要作用是支持真机调试,如果不做这个步骤,仍然可以通过步骤5来生成ipa在真机上运行,但是无法使用Xcode内置的调试器对在真机上运行的程序进行单步跟踪。如果您的程序在点击Run真机调试时秒退,请检查此步骤是否正确完成。

(1)禁用Xcode自动的签名操作,将工程配置中所有的Code Signing选项全部设为Don't Code Sign,如图。


(2)添加自定义的生成后脚本,在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add 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


第五步,生成IPA文件

正常情况下IPA文件是从Xcode的Organizer中输出的,但是我们没有证书,这样输出会产生错误。只能另找他路,先将代码生成为Release目标,然后打开工程的输出文件夹,通常情况下这个目录是:

/Users/你的用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphoneos

这个目录下有个.app的文件,就是生成的程序了。把这个.app拖到iTunes中,它会出现在应用程序那个列表中,然后再把它从iTunes的那个列表中拖出来(比如拖到桌面),哈哈,它就这样变成.ipa了!

此配置只适用在Xcode4.5.2,其他未尝试。

注意一下:沈阳斌子自己用的时候,发现那个脚本不好用,编译不过去,将脚本删除后就好了,如果哪位牛人知道为什么麻烦告诉一下,谢谢了。

参考文章地址:http://www.cnblogs.com/yuanxiaoping_21cn_com/archive/2012/11/15/2772388.html

                        http://blog.sina.com.cn/s/blog_00ccd240010181r9.html

2013年第一篇文章,是摘抄,也是祝各位同仁蛇年快乐,工资节节高。

       ------沈阳斌子


作者:svrsimon 发表于2013-2-16 13:26:19 原文链接
阅读:0 评论:0 查看评论

相关 [xcode 证书 idp] 推荐:

Xcode 4.5.2免证书(iDP)开发

- - CSDN博客推荐文章
操作系统:os x lion 10.8.2. 在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布IPA用于分享,需要以下几个步骤:. 1.自己为自己颁发一个证书用于为生成的程序签名. 2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和签名. 3.通过自定义生成步骤,用伪造的证书为应用程序签名.

Xcode 5、Xcode 6 免证书真机调试

- - CSDN博客推荐文章
      我们都知道,在iOS开发中,如果要进行真机调试的话是需要苹果开发者账号的,否则Xcode就不能够进行真机调试,只能够在模拟器上运行;这就带来了很多问题,比如iCloud编程的话你不能够用模拟器、要用到拍照功能的话你不能够用模拟器、要用到陀螺仪功能的话你也不能够用模拟器等,也就是说跟硬件密切相关的话就不能够用模拟器了,只能够用真机来进行开发.

Xcode 证书生成、设置、应用。

- - 博客园_首页
 转载请注明出处,希望多多交流,谢谢. 1         点击钥匙图标. 2         在菜单栏中依次选择:钥匙串访问⟶偏好设置⟶证书选项卡,下面两项全部选关闭. 3         生成证书请求:钥匙串访问⟶证书助理⟶从证书颁发机构请求证书. 4         输入两个电子邮件地址和常用名称.

XCode 4.0 iOS SDK 4.3 iPhone证书破解 完全教程

- Pei - 博客园-首页原创精华区
参考资料: http://www.alexwhittemore.com/?p=398&cpage=7#comments. 一、创建 self-signed cert(自签名证书). 启动钥匙串,选择 钥匙串访问=》证书助理=》创建. 创建以 iPhone Developer 为名字的证书. 证书类型好像不重要,我就是随便选的;名字好像也不重要,“iPhone Developer"好像纯粹是为了和 XCode的默认值一致,你也可以使用自己的名字.

苹果Xcode 4开发环境发布

- 阿贡 - ITeye资讯频道
伴随着iOS 4.3的发布,苹果推出了新版开发环境Xcode 4. Xcode 4最早于去年6月的WWDC 2010开发者大会上宣布,经过近一年的测试后才终于问世. Xcode 是为Mac、iPhone、iPad、iPod touch开发软件的必备工具. Xcode 4包含Xcode IDE、Instruments调试工具、iOS模拟器以及最新版Mac OS X/iOS SDK.

使用 Xcode 5创建 Hello World App

- - 移动开发 - ITeye博客
当xcode 5发布后,相比之前的版本变化很大,大家可能会有一些疑问:. 我跟随教程学习但是发现程序在 Xcode 5 中不再受支持.. Interface Builder在哪儿?. 我如何去创建一个XIB 文件?. Xcode 5 推荐使用Storyboard 而不是 Interface Builder.

使用xctool自动打包,测试xcode项目

- - 某人的栖息地
xctool是facebook开源的一个命令行工具,用来替代苹果的xcodebuild工具. 彩色且方便阅读的编译内容输出. 最简单的办法是通过homebrew安装 xctool.

Cocos开发中性能优化工具介绍之Xcode中Instruments工具使用

- - 移动开发 - ITeye博客
Instruments是动态分析工具,它与Xcode集成在一起,可以在Xcode中通过菜单Product→Profile启动. 启动如图所示,Instruments有很多跟踪模板可以动态分析和跟踪内存、CPU和文件系统. 每个跟踪模板都有不同的用途,其中Leaks可以检测内存泄漏点,Allocations跟踪模板可以查看内存的使用情况.

签名与证书

- - Lizhi Blog
TCP:通过三次握手,四次挥手,保证连接的可靠性;. SSL(安全套接层)&TLS(传输层安全):在传输层对网络连接进行加密;通过Client生成的随机数R1,R3 + Server生成的随机数R2 根据算法生成对称秘钥;. SSL双向握手:Server端请求Client发送证书和公钥,Client发送私钥加密后的Hash信息,Server用公钥验证.

保证书的世界

- lynn - Solidot
玩聚网数次被关站,时光网、Techweb、Blogbus网站被停止解释,豆瓣社区积极的自阉,饭否回归尚能饭否. Solidot的matrix帐号何以消失了. 网站备案、实名制、自我审查……因为网络世界到处都是错误,这里到处都是保证书. 经营活动还没开始,首先就要签订各类保证书,其中的逻辑是,开办网站就会很容易犯错误—就算现在还没有,也不能保证以后就没有.