天堂向右,我依然向左

天下之大,虽离家千里,何处不可往!何事不可为!
生活之路,纵坎坷曲折,当奋斗不息,则精彩纷呈!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::


 http://www.unfish.net/archives/471-20090601.html

 

1、如果你有自己的Mac电脑,跳过这一步。如果没有,可以去下载这个:http://www.verycd.com/topics/2746139/,是个vmware镜像,非常完美,安装上vmware,解压就可以运行,速度不错(硬件当然要够,可以上网)。不过似乎AMD的CPU不行,如果你用的是AMD的,就别浪费带宽了。

2、启动进去以后就想办法去下载SDK,官方的下载速度还不错,用迅雷两个小时就搞定了,想办法传到Mac里面去(我是在windows里建了个serv-u的FTP,在Mac里面用ftp命令上传下载东西,很方便,以后要经常用到)。

3、安装SDK,双击下载的dmg包,自动加载成磁盘镜像,双击里面的安装文件自动安装好,然后打开磁盘目录,到/Develop的目录下去运行xcode,能启动就算成功了。

4、你需要一本好书,《IPhone开发基础教程》这本书是一定要买的,讲解非常细致,适合我们这种从来没有接触过Mac开发的人,每一步细节都没有省略,绝对不会出现按照书上的步骤操作完却发现结果跟书上不一致的情况。虽然翻译的有个别不到位,但是整体翻译水平是可以得80分以上的。我也没必要把里面的教程再在这里写一遍,写的也没人家好。这本书上有些高级的内容没必要一次看完,什么时候用到什么时候看就可以了。

5、你还需要知道Object C的语法跟其它语言的不同,如果你一门语言也不会,那还是从头学C语言去吧。如果你已经用过其它编程语言,看看这本就够了。http://www.weiphone.com/viewthread.php?tid=149737

6、万事俱备,可以开始动手了。照书上的课程练习几章,打打代码,写两个程序在模拟器里跑起来。

7、需要构思自己想要开发的程序的架构,分几个界面(View),界面间怎样相互调用,每个界面上放什么,然后找一章类似的教程,照着做,加入自己的内容就行了。

8、编译完成测试通过,想放到IPhone上去运行,还需要个证书,当然现在是不太可能去花99美元买一个了,成熟了再买也不迟。照这个做:http://www.weiphone.com/thread-222380-1-3.html,自己做个证书,添加到Project setting和info.plist里面去,再编译成IPhone平台版本就可以用了。(这哥们的第四篇文章我照做都没有成功,不知道哪一步写的有问题)。

至此,你的第一个程序就可以发布出去见人了。 

 

 

激情的力量真是不可估量。从5月27号拿到《IPhone开发基础教程》,后面用了两天的假期写了两个程序,先是一个普通的数据库阅读程序(被威锋论坛删了)。为了找到一个合适的程序结构,测试了几种不同的方式,最后选定了Navigation方式。

每个IPhone程序拥有一个Window和多个View,Windows可以理解为就是这个屏幕,Window上必须要放一个View才能显示内容给用户。程序启动的时候调用一个程序级的Delegate,打开这个Window并加载一个View。

一个View由一个ViewController来实现其功能代码,而View的界面如果你愿意的话也可以完全用代码来生成,每个控件都是View,都可以在初始化的时候确定自己的起始位置和大小,用代码来生成和显示也没问题,但是通常更合适的方式是用一个xib文件,该文件可以使用Interface Builder来构造,就像VB一样拖放控件。

所有需要同控件调用的方法,比如需要指定给按钮的方法,或者文本框里的事件需要执行的函数等等,都需要先在ViewController类里面声明为IBAction返回值的方法,然后通过在Interface Builder里面按住控件的事件名拖到Controller所属的First Owner上然后选定那个方法来建立关联。

所有需要用代码来修改其属性或调用其方法的控件,比如要启用禁用的按钮,要取值的文本框,都需要先在ViewController类里面声明IBOutlet类型的变量,然后按住Control键把First owner拖到控件上再选这个变量来给变量和文本框建立关联,然后你在代码中操作的这个变量,就是实际的这个文本框了。

《IPhone开发基础教程》这本书作为入门非常不错,可是它缺少很多高级内容,不能作为参考书,这个时候就需要这一本了《The iPhone Developer’s Cookbook-Building Applications with the iPhone SDK》,里面有许多高级用法,甚至SDK文档里没有提到过的隐藏内容。

开发过程中遇到了相当多的问题,幸亏还有Google。即使如此,仍然走了相当多的弯路。比如为了在Navigation顶部的导航栏右边加两个按钮,花了半天的时间,最后还是放弃了。始终没有办法做到彩信软件SwirlyMMS阅读界面上那个按钮效果,一开始用自定义View,放入两个按钮,再把这个View指定为rightButtonItem的CustomView,按钮是成功的放上去了,但是按钮是平板样式,跟左边的工具栏按钮的样式大相径庭。后来使用一个Toolbar,加上按钮,按钮的样式倒是正常了,但是这个Toolbar怎么也无法放到rightButtonItem那个位置,一放上去,Toolbar就占到最左边,而不是最右边,最后只能把Toolbar放到Title的位置,结果就无法显示Title了,而且Toolbar的顶部边框跟NavigationBar的边框不一样,有一条很明显的线,cookbook的教程里的图片也有这个问题。最后还是放弃了,在最下面又加了一条单独的Toolbar。还有为了播放声音,也搞了几个小时,用SoundServices库代码很简单,结果播放没声音,就是出现一点点的噪音,后来换了AVAudio库,还是只放一点点噪音。还以为是声音文件的问题,结果换了Windows自带的声音进去也不行。最后才发现是因为声音播放的代码是非独占的,刚刚开始播放就走到了下面一行release上,结果就停止了。改成全局变量搞定。

这个release在Object C里面是个很头疼的问题,当我程序出现了一个EXC_BAD_ACCESS的错误的时候,根本无从定位错误的位置,虽然知道是由于过度release造成的,但是要在众多代码中找出哪个变量是不应该release的,着实费了些功夫。

另外,程序比较大(数据库比较大,程序其实是很小的),每次放到真机上测试都要花很多时间,建议开发过程中还是使用一个特殊的数据库,弄小一点,发布的时候再换成正常的。大部分情况下用模拟器测试就够了,但是,模拟器不能发声,因为我的MAC是虚拟机。

编译出来的程序是个后缀名为.app的文件夹,在Mac下会自动识别为程序,双击会提示平台不对,不能运行,但是拿到Windows下就是个普通的文件夹。把这个app目录拖到ITunes上会自动生成一个IPA,但是这个IPA在ITunes里没图标。要做成有图标的,还得手动处理,把这个app目录放到一个Payload目录下,在Payload所在的目录放一个iTunesArtwork的文件,这个文件就是一个jpg图标,文件名改成这个就行,没有后缀。然后把这个文件和Payload目录一起压缩成zip文件,再把zip后缀改成ipa就可以了,双击就会加载到iTunes,点同步就可以安装到手机上。Apple居然不提供一个方便一点的打包工具。

基本上感受就是这些了,连续开发了几天,也在威锋上连续发布了几个大版本,程序还算比较受欢迎,等明天去申请个开发者账号,放到程序商店里看看。 

 

 

用传真机试过N次,又用faxzero试过N次以后,全部都提示失败。但是,世事如此难料,今天凌晨收到了信用卡境外消费99美元的短信提醒,早上起来信箱里就已经收到了激活码,点击链接就激活了自己的开发者账号。也不知道是哪一次传真发成功了。

登录开发者中心,右侧有个Portal的链接,点击进去就是自己账号的管理中心,初次进入有个向导,可以帮你创建一个开发者证书。最好是下载它的完整的向导说明书,是一个PDF,7M多,步骤还是挺详细的。但是这本手册在网上没有见过中文版的说明,所以在这里简单介绍一下。

这个开发者中心的用户权限分三种类型:Agent,Admin,Developer。Agent拥有完整的管理权限,Admin也可以管理用户和证书,Developer只能管理自己的证书和设备。只有Agent有上传软件到App Store的权利。(但是我没有看到添加其它用户的功能,可能需要299美元的账号类型才会有,我自己的账号登录进来就是个Agent了)。

对于个人开发者,你需要完成以下几个过程:

申请一个Development证书 > 设置你的IPhone手机 > 创建一个App ID > 创建并下载安装一个Development Provisioning Profile。经过这几步,你写的程序就可以跑在自己的手机上了(否则只能在虚拟机里面运行)。

然后申请一个Distribution证书 > 创建并安装一个Distribution Provisioning Profile > 编译你的程序 > 就可以发布到App Store了。

下面详细介绍一下:(不知道有没有必要,毕竟买了证书的人都可以下载到这篇很简单的英文文档),所有的介绍以中文版的Mac OS X的菜单和程序名为准

开发者证书安装步骤:

打开应用程序中的“钥匙串访问”,在菜单里点击“证书助理”下面的“从证书代理请求证书”,注意下面不要选中任何行,否则菜单会变。输入自己的注册Email,常用名称可以写详细一点,比如“Unfish Dev Key”,下面选中“存储到磁盘”,点继续,可能会出现未知错误,多试几次就OK了。然后在浏览器中进入开发者中心的Certificaties导航页面,在Development页面中最下面选择刚才创建的证书文件,点上传。然后证书就会显示出来,还要再点一下后面的Approve按钮,页面刷新后这个证书就可以下载了。下来是个cer文件,双击会自动导入,导入类型选择“登录”就可以。

然后是添加自己的手机设备到xcode。把手机连到电脑上,在xcode的windows菜单下打开Organizer,左边的devices下面会列出你的手机,右边的Identifier项就是你的手机的udid,复制下来,待会要用。如果这个手机还没有设置过作为开发机,这个界面上应该会有两个按钮,点一下就可以把它设为开发机,在xcode里点Build and go的时候就可以自动的安装你的程序到手机上,不需要通过ITunes了。在开发者中心的左边Devices导航页里点Add Device,起个自己认识的名字,把udid粘贴进去就可以了。(这一步只是开发证书有用,发布证书是不需要这个东西的。)

然后需要创建一个App ID,在开发者中心的App IDs导航页创建一个新的App ID,这个App ID需要跟程序的info.plist里面定义的程序Identifier相对应,如果这里只输入一个*,那么info.plist那里写什么都可以,建议用*。

然后进入开发者中心的Provisioning菜单,在Development页面创建一个新的Provisioning,需要选择所使用的证书,App ID,和对应的设备,生成以后下载这个provisioning文件,把下载下来的文件拖到Dock上的Xcode的图标上就会自动安装进去。然后退出xcode重新打开,打开你的项目,打开Project菜单下面的Edit Project Settings,进入Build页面,找到下面的Code Signing Identity,把Any iPhone OS Device项后面选中你的开发者证书,然后就可以把项目的编译目标设为Device(而不是模拟器),试一下Build and Go了。程序应该会编译完并自动安装到你的手机上,并自动启动了。

发布证书安装步骤:

再使用钥匙串访问里面的“从证书代理请求证书”功能,输入自己的Email,名称要写购买证书时登录的公司名或者个人名,下面选中“保存到磁盘”和“让我自己选择私钥”,下一步,把证书保存下来。

进入开发者中心Certificates里面的Distribution页面,选择前面保存的文件上传,然后Approve一下,下载这个证书,双击导入,类型选登录。

进入开心者中心Provisioning里面的Distribution页面,添加新的Provisioning,类型选App Store,(如果选了Ad Hoc,就只有你添加过udid的手机才能安装这个程序了),证书应该是自动出现的,App ID选好,创建完成,下载这个文件,拖到xcode的图标上安装完成。退出xcode再重新打开,否则加载不了你刚刚添加的那个证书,会出现Provisioning无效的提示。

然后打开你的项目,进入“Edit Project Settings”,进入Configuration页面,选中Release点击下面的Duplicate,复制一个新的配置项出来,命名为Distribution。然后进入Build页面,顶上的Configuration下拉框选中Distribution,下面的Code Signing Identity里面的Any iPhone OS Device后面对应的值选中你的那个Distribution的证书。然后就可以编译程序了。

如果你之前按照类似这个教程http://www.weiphone.com/thread-222380-1-3.html自己生成过证书并且改过Project Settings和info.plist,需要把这两个地方改回去,否则编译的时候会出现一个warning,CodeSign warning: provisioning is not applicable for product type ‘Application‘ in SDK ‘Device – iPhone OS 2.2′。删掉Project Setting里面的PROVISIONING_PROFILE_ALLOWED = NO和PROVISIONING_PROFILE_REQUIRED = NO,以及info.plist的SignerIdentity,再编译,应该就不会出错了。

程序发布到应用程序商店的步骤:

在开发者中心的Distribution导航里面的App Store页面,在下面的App Store下面的Learn More展开,就可以看到Go to iTunes Connect的链接。进入以后点击Manage My Application,就可以添加自己的程序了。

需要选择程序的语言,国家,介绍等等基本信息,然后下一步上传程序和其它图片。这个地方上传的程序,就是把你的项目编译以后生成的那个.app的目录直接压缩成zip上传,(这个.app目录里面的任何文件都不可以更改,否则签名就不对了)。你需要准备一张512×512的png图片作为大Logo,还需要准备5张程序运行的界面截图,在这个页面上挨个选Choose file,再点击upload file,出现对号就没问题了。然后选择程序的价格,默认有很多可以选,free是免费,1是0.99美元,2是1.99美元,诸如此类。如果非免费程序,你还得准备一份购买协议。

再点下一步,就可以等待程序审核了。

感觉似乎很复杂,不过只要按教程上的步骤一步一步的做,肯定是没有问题的。 

posted on 2010-08-06 15:02  老舟  阅读(593)  评论(0编辑  收藏  举报