shitou's blog 

  • Home
  • About
  • Feed
  • 十人族
  • MIX BOY
  • 塌客

Category "iPhone"

12
Apr

iPhone上的HelloWorld终于跑起来了

为了把 HelloWorld的测试程序放在touch上跑起来,已经快搞了一个星期了,今天终于成功了,要泪奔了,哭泣, 查了无数的资料,网上这方面的资料非常少,感觉现在搞iphone开发的好像都直接花99刀搞定了,没人关注怎样在jailbreak的iphone上来运行测试app了,shitou就等有拿得出手的app了再花那99刀吧

 

下面是怎样在jailbreak的iphone上运行HelloWorld的完整过程:

 

环境:

  • 我这里是touch 2.2.1, jailbreak, iphone一样
  • Max OS 10.5.x, 官方SDK,  Xcode 3.1.2
  • 如果你已经jailbreak了,我想你肯定已经替换了MobileInstallation了,jailbreak的iphone没有替换MobileInstallation是没有任何意义的,你还是任何破解程序都运行不了,如果真的没有替换,就自己先搜下MobileInstallation吧,这里不说了。


说明:

  • 下面的步骤有的地方操作可能有重复,shitou还没有一一测试哪些是不必要操作的,不过你还是老老实实的按照下面的步骤执行吧,不然运行不起来就痛苦了。
  • 需要修改的文件,修改前切换成root用户并先做个备份,cp file fle.bak 就行了。

 

 

开始:

修改文件/Developer/Platforms/iPhoneOS.platform/Info.plist, 共两处需要修要,如下所示:

 

                <key>ARCHS</key>
                <string>armv6</string>
                <key>CODE_SIGN_CONTEXT_CLASS</key>
                <string>XCiPhoneOSCodeSignContext</string>
                <key>COMPRESS_PNG_FILES</key>
                <string>YES</string>
                <key>DEBUG_INFORMATION_FORMAT</key>
                <string>dwarf-with-dsym</string>
                <key>EMBEDDED_PROFILE_NAME</key>
                <string>embedded.mobileprovision</string>
                <key>INFOPLIST_OUTPUT_FORMAT</key>
                <string>binary</string>
                <key>NATIVE_ARCH</key>
                <string>armv6</string>
                <key>PLIST_FILE_OUTPUT_FORMAT</key>
                <string>binary</string>
                <key>PROVISIONING_PROFILE_ALLOWED</key>
                <string>NO</string>
                <key>PROVISIONING_PROFILE_REQUIRED</key>
                <string>NO</string>

                <key>SDKROOT</key>
                <string>iphoneos2.2.1</string>
                <key>STRINGS_FILE_OUTPUT_ENCODING</key>
                <string>binary</string>

 

                <key>CODE_SIGN_CONTEXT_CLASS</key>
                <string>XCiPhoneOSCodeSignContext</string>
                <key>DEBUG_INFORMATION_FORMAT</key>
                <string>dwarf-with-dsym</string>
                <key>EMBEDDED_PROFILE_NAME</key>
                <string>embedded.mobileprovision</string>
                <key>SDKROOT</key>
                <string>iphoneos2.2.1</string>
                <key>PROVISIONING_PROFILE_ALLOWED</key>
                <string>NO</string>
                <key>PROVISIONING_PROFILE_REQUIRED</key>
                <string>NO</string>

 

加粗部分为要加入的内容。保存。

 

修改另一个文件/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.1.sdk/SDKSettings.plist, 根据你当前的开发版本进入具体的版本号目录,修改该文件中所有*_REQUIRED定义的行,把对应的值,即下一行的值改成NO, 保存退出。

 

下面开始建立自己的授权key, 这个官方有具体的步骤怎样操作的,参考这里:摸我, 把第一部分 Obtaining a Signing Identity 看完就行了。 在建立的第一步给key命名时最好填iPhone Developer。

 

然后就可以打开Xcode了,建立一个新项目,创建一个简单的HelloWorld, 然后就是关键了:

选择Project -> Set Active SDK -> Device - 2.2.1

你还可以设置当前的开发模式(Project -> Set Active Build Configuration)是Debug还是Release, 两种不同的模式配置文件也是不一样的,这里选择的是Debug

 

在Group & Files下你的HelloWorld项目上点右键,点Get Info, 打开项目的配置文件,选择Build选单,

滚动到Code Signing部分, 点开Code Signing Identity,  设置成如下所示:

Any iPhone OS Device   值为 iPhone Developer

后面的iPhone Developer就是你刚创建的key的名称。

 

然后再滚动到最上面,选择show下拉选单, 选中User-Defined Setting

点击最下面的齿轮, 选择Add User-Defined Setting, 加入两组数据, 如下:

PROVISIONING_PROFILE_ALLOWED       NO

PROVISIONING_PROFILE_REQUIRED      NO

关闭当前配置窗口。

 

下面展开HelloWorld ->  Resources -> Info.plist

编辑Info.plist, 增加一项:

SignerIdentity   值为 Apple iPhone OS Application Signing

保存。

 

然后就可以build了, Build -> Build, 中间会提示你是否允许使用你刚创建的key, 当然允许了,此时Xcode窗口的最下面会报告Build的状态,如果出现红色的error的话, 说明你刚才的操作有问题,黄色的代表警告,可能会出现:

CodeSign warning: provisioning is not applicable for product type 'Application' in SDK 'Device - iPhone OS 2.2.1'; ignoring...

这个警告不用管它,只要出现Build succeeded就行了,

 

最后就是把HelloWorld.app放到iphone上了,这里你可以使用ssh的方法复制到iphone的/Applications下,不过这里使用这个方法并没有成功,即使使用ldid进行签证也不行,所以就放弃使用ssh这个方法了,你应该:

首先连接你的iphone或者touch, 然后在Xcode下, Window -> Organizer, 这时你的iphone或者touch会出现在窗口里,点击它, 下面的Applications中会显示你现在已安装的所有app, 点击+按钮,选择刚才已经编译成功的HelloWorld.app,在HelloWorld/build/Debug-iphoneos下边, 然后就传到你的iphone/touch上了,现在就可以在你iphone/touch上运行HelloWorld了,呵呵,大功告成, 下面就可以正式你的iphone开发了。

 

Tags:

2009-04-12 15:16:07, 11034 reviews, comment

send to mailbox

Your email:

TOP

Tags

json Impactjs Canvas fun gen_server superfly PS3 Webgame HTML5 jquery SSH tenerer MooseFS gearman-ruby Gearman MongoDB MochiChat TCP U-ka saegusa IN db command Mai Kuraki Norah Jones log iPhoneException ACG Mac Safari objective-c CouchDB LVS AJAX debian 推荐 AMQP google mail bug gettext Erlang 北京 iptables 架构 tips mysql backup function 我看 postfix 监控 SEO cache Etag memcache thread 进程 线程 无锡 yield file column mixboy xml rss gems ruby shitou shell lighttpd 安全 csrf 公司 nginx linux 模块 apache webserver 朋友 大学 生活 尼古拉斯凯奇 movie 文件同步 笑笑 歌词 auto complete plugin rails music ubuntu blog

Category

  • HTML5[3]
  • iPhone[17]
  • Erlang[11]
  • google[13]
  • 生活[45]
  • 音乐[13]
  • 电影[11]
  • linux[29]
  • web server[6]
  • mail server[3]
  • cluster[1]
  • system manage[9]
  • ruby[20]
  • ruby on rails[28]
  • 开源[4]

Episode

  • MongoDB
  • MochiChat
  • iPhoneException
  • shell
  • thread
  • memcache


Popular Posts

  • 准备开始学习Erlang了(恶狼, 二郎..)
  • Ruby遍历MemCached的key
  • 服务器监控小脚本
  • MySQL Innodb备份
  • [转载]5个有用的ruby gems

Recommended Posts

  • Tri-survive - HTML5 Game
  • Cut the rope - HTML5版
  • json_formatter
  • 在gen_server中spawn新的进程
  • Superfly - Wildflowers
  • 继续凸墙 for Mac OS
  • MongoDB Beijing 2011
  • MongoDB删除map_reduce生成的tmp collection
  • Mai Kuraki - Future Kiss
  • Erlang OOP
  • 用SSH tunnel凸墙
  • Google的语法高亮工具包
  • 大量数据的批量操作
  • 再次被和谐-_-
  • 十人族: 上线了

Friends' blogs

  • levy
  • sphance
  • andreas
  • yangkunlun
  • {:dev=>:wxianfeng}
  • bheye
  • joeydarko

Login

   注册

留言 查看留言

留言

   取消

留言 查看留言


Statistics

  • 访问次数: 316245
  • 今天访问: 40
  • 日志: 213
  • 评论: 4967
  • 音乐: 9
  • 用户: 1758


少女,不点下广告吗!

 

all by shitou

blog comments powered by Disqus

close