织梦CMS - 轻松建站从此开始!

罗索实验室

iphone 3.1.2开发环境搭建——mac mini平台

jackyhwei 发布于 2010-11-06 21:31 点击:次 
如果是希望做比较“严肃”一些的iphone研究和开发,还是使用mac mini比较好,主要是可以借助于apple提供的xcode工具来很方便地进行单步调试,以及变量和内存查看(这一点太重要了,毕竟打印log这种开发方式对于大多数应用开发者来说都有点太原始了)。
TAG:

上篇文章中提到了在linux下面搭建iphone sdk 3.1.2编译环境的方法。但是那只是hack级别的方法——“可以“工作,但不能“高效”地工作。其实如果是希望做比较“严肃”一些的iphone研究和开发,还是使用mac mini比较好,主要是可以借助于apple提供的xcode工具来很方便地进行单步调试,以及变量和内存查看(这一点太重要了,毕竟打印log这种开发方式对于大多数应用开发者来说都有点太原始了)。

当然,在此之前仍然需要提醒大家,如果公司有条件申请iphone developer的授权(也就是交纳那99美金/年),那自然是最好不过了,可以很轻松地进行真机联机调试(如此奢侈的方法暂且按下不表)。如果希望对iphone开发的投资只到mac mini和iphone 3g/3gs为止的开发者,可以参考偶下面描述的方法(又是“即使自宫未必成功”之类的方法了,呵呵),也完全可以实现真机上的单步调试和运行。

下面就是偶做实验时候使用的步骤(折腾得差点连iphone都要重新刷机,这篇文章真是来之不易阿):

1、下载iphone 3.1.2的sdk(注意,不是3.1.3或者3.2的,那些都是有米人用的)
iphone_sdk_3.1.2_with_xcode_3.2.1__snow_leopard__10m2003.dmg
下载地址参见偶的上一篇文章《iphone 3.1.2开发环境搭建——linux平台》即可。

2、在mac mini上面安装这套sdk(具体方法,不再聒噪)
安装成功后,可以新建一个小程序在iphone的模拟器里面玩玩,确认你的sdk安装没有问题。(当然了,很快就会发现使用xcode是无法生成“iphone device 3.1.2 | release”的,会一直提示codesign error的。)

3、开始破解xcode一体化集成环境:
(1)伪造根证书
第一步,打开Key Access(钥匙串访问)工具(具体位置在“应用程序”->“实用工具”->“钥匙串访问”),如下图所示(Finder里面的路径):

第二步,打开“钥匙串访问”程序左上角菜单中的“证书助理”->“创建证书”,如下图所示:

第三步,利用向导创建根证书(注意,从这里开始,所有的操作务必与偶的操作严格一致,没有提示图的话,请沿用其默认的配置,否则,“即使自宫未必成功”喔,切切!!)。

(a)创建自签名根证书,如下图所示:

(b)电子邮件地址可以随意,但是名称一定要是“iPhone Developer“,如下图所示:

(c)这一步很关键,证书存储位置一定要选择"登录",如下图所示:

(d)证书创建完毕后的样子,不出意外的话,应该如下图所示:

ok,到此为止,伪造的根证书应该已经创建出来了。

(2)开始破解xcode
第一步,运行以下的命令(注意,这里面对于curl的操作,需要连接internet,所以请保证网络连接正常):
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf “\x8f\x2a\x00\x00″ >> working
dd if=iPhoneOS\ Build\ System\ Support of=working bs=1 skip=127504 seek=127504
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
mkdir /Developer/iphoneentitlements30
cd /Developer/iphoneentitlements30
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py

第二步,修改iphone os的info.plist文件
文件路径为:/Developer/Platforms/iPhoneOS.platform/Info.plist
使用常规文本编辑器(偶个人是推荐emacs拉,当然vi也可以)为此文件添加如下两项:
PROVISIONING_PROFILE_ALLOWED = NO
PROVISIONING_PROFILE_REQUIRED = NO

第三步,将第二步中的Info.plist文件中的所有“XCiPhoneOSCodeSignContext”替换为 “XCCodeSignContext”
(这一点非常重要,如果不进行此步骤会导致打开项目文件的时候,Xcode崩溃)

到此为止,iphone sdk的签名和xcode的破解已经基本完成,可以开始做实验了。

(3)开始享受破解的胜利果实
第一步、打开Xcode,打开项目,Project->Edit Project Setting,选择“Build”页面,Configurations和Show都选择All。


第二步、找到Code Signing Identity项,删除其子项,并将“Code Signing Identity”赋值为“iPhone Developer”(其实是个选项)。

第三步,找到项目的xxx-Info.plist文件,添加“SignerIdentity”项,其值为“Apple iPhone OS Application Signing”.保存。

第四步、将iPhone接入电脑,不出意外的话,会从Xcode的Window->Organizer中会侦测到你的iPhone。
查看iPhone和你的Xcode识别正常后退出Organizer。

第四步、将编译环境设置为“iPhone Device-3.1.2|Release”,点击"Build and Go",
期间会出现让偶选择签名证书,点选“允许”后,就是“自宫”后的等待。。。

好了,看到手机上出现了久违了的程序,就代表可以进行iphone真机上的调试了。

预祝大家都能够练成神功!

呵呵,又到了“有图有真相”时间:

1、下面是偶测试用的一个open gles的小程序在iphone真机上的运行效果:
(1)应用程序安装上的样子,如下图所示(就是那个白色的图标拉):

(2)程序在手机上运行时候的样子,如下图所示:

2、同样的程序在symbian s60真机上的运行效果(可恨的symbian emulator,不能够在emulator上运行open gles的程序):

3、同样的程序在android平台上的运行效果(呵呵,自然nexus one比较好啦!):

(陈罡)
本站文章除注明转载外,均为本站原创或编译欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,同学习共成长。转载请注明:文章转载自:罗索实验室 [http://www1.rosoo.net/a/201011/10421.html]
本文出处:北京理工大学 20981 作者:陈罡
顶一下
(1)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
将本文分享到微信
织梦二维码生成器
推荐内容