[.NET] 在Windows系统中搭建基于.NET的iPhone应用程序虚机开发环境

看了这个标题,也许很多朋友认为我是标题党,很多人都没听说过.NET开发iPhone,今天就我就来证实了这一点,而且我已经亲身体会了这一点。

在正式开始教程之前,先陈述一下环境搭建的步骤及要点,本环境搭建共需要四个步骤,分别如下:

1. 安装VMWare虚拟环境(你也可以用VBox);

2. 安装Mac OS X(雪豹)操作系统;

3. 安装Xcode和iOS SDK;

4. 安装MonoFramework等.NET iPhone开发框架及工具。

完成以上步骤就一切OK了。

在第一步开始之前还需要注意您的机器配置,建议4G内存,2G也凑合,而CPU必须要支持64位及虚拟化,这是重点,切记,否则装不上Mac OS X。

 

第一步:安装VMWare虚拟环境

 

这里我选择了比较大众的VMWare,这个全看个人喜好,你也可以选择VBox,也没问题。

下载地址:

https://www.vmware.com/tryvmware/?p=default

这里建议安装VMware Workstation 7.1(这里只有试用版,注册方法请自搜),VMware Player 3.1也可以,但是VMware Player有一个致命的弱点就是没法为虚机做快照,这里的弊端我就不细说了。

image

安装过程我这里就不细说了,比较简单,给个图:

image

 

第二步:安装Mac OS X(雪豹)操作系统

 

这一步变数比较多,网上的朋友有各种莫名其妙的问题出现,我也遇到几个问题,简单的列了一下,有其他问题的大家多交流。

我们需要准备一下几个东西:

第一个就是雪豹操作系统了,这里只能下到dmg格式的,这个是Mac系统专用格式,我们要用ISO工具转化一下,让他变成ISO格式,如下图:

clip_image001

dmg文件6.9G,转成ISO的话7.4G左右。

另外还需要一个名为darwin.iso的引导ISO,由于VMware本身不支持Mac OS,所以我们就需要这个ISO来做引导才能顺利进入安装界面以及系统启动界面。

clip_image002

这个文件很小,几十兆。

下载地址:

Mac OS X:

 

http://www.verycd.com/topics/2769321/

darwin.iso:

http://www.verycd.com/topics2818537

好,预备工作完成,接下来就是装虚机了。

首先创建一个新虚机:

clip_image002[5]

选择自己安装操作系统:

clip_image003

操作系统类型选择Other – FreeBSD 64-bit,必须这样选,否则装不成:

clip_image004

硬盘给至少20G:

clip_image005

内存可以先分1G,到了开发的时候2G比较好:

clip_image007

CPU选项注意在虚拟化中选择如下图:

clip_image009

光盘加载选择我们刚才下载的darwin.iso:

clip_image011

保存虚机设置,然后找到虚机文件存储的地方,找到虚机主文件wmx:

clip_image012

用记事本打开,找到guestOS这个设置:

clip_image013

改成darwin10,如下:

clip_image014

OK,保存后启动虚机会进入以下界面:

clip_image016

界面会停在这里,不用管,按一下C键:

clip_image018

然后加载我们下载的Mac OS的ISO版本:

clip_image019

clip_image021

选择链接光驱:

clip_image023

再按C键,即可顺利进入安装引导:

clip_image025

clip_image027

clip_image029

安装的过程不多说,有一点需要注意,需要自己格一下硬盘(这个和装Windows一样),如下,在让你选择安装盘的时候,如果发现没有磁盘分区,选择实用工具中的磁盘工具:

clip_image030

创建一个分区即可,其他默认选择:

clip_image031

clip_image032

clip_image034

完成了,可以看到磁盘:

clip_image036

接下来就是等待安装完成了:

clip_image038

clip_image040

这里写着30多分钟,不过得装1个多小时,我的笔记本是5400转到硬盘,如果7200转到可能快一点。

这里需要提醒一点,很多情况遇到“五国错误”,何为五国错误呢,就是屏幕上出现一个灰色的框,其中用5国语言写着要你重启机器:

clip_image002

这个错误不太清楚是什么原因造成,这是大家重启虚机,在光盘引导结束,系统引导开始的一刹那需要按一下F8,这个时间很短,要抓准,按了F8后进入一个引导参数界面,如下:

image

输入-v来以罗嗦模式启动(和Windows的安全模式像是),但是这个启动会很慢,耐心等待,如不出意外就会正常进入Mac OS了,这个错误除了在启动的时候出现外,在安装的时候也有可能出现,处理方法相同。

正常启动Mac OS X后,我们来装个VMTool,由于VMware自身不支持Mac OS,所以也没有自带的VMTool供大家使用,不用着急,我们找到引导用的darwin.iso加载到虚机中,就可以看到其中有个VMtool的安装包,安装后我们的虚机就可以全屏玩了:

image

image

 

第三步:安装Xcode和iOS SDK

 

下载地址:

http://www.apple.com.cn/

注册一个ID就可以下载了,2.9G。

image

这个步骤开始前需要将Mac OS X更新到10.6.4,我们刚才装好的版本是10.6.3,有一个大概1G的升级包,大家慢慢更新,更新好了看看系统属性:

image

开始安装SDK和Xcode,这个步骤也比较简单,唯一需要注意的是,安装的时候不要让计算机运行的东西过多,这样很容易出现五国错误,我装了4次才装好,最好晚上装,只开一个虚机,慢慢装,大概需要1个多小时。

 

 

 

 

 

装好后再磁盘中的Developer目录中可以找到相关文件:

image

image

image 

打开,创建一个iPhone应用程序,试试iPhone模拟器,真好,对于我这个没有iPhone的穷人,这样已经很满足了:

image

 

 

 

 

第四步:安装MonoFramework等.NET iPhone开发框架及工具

 

最后一步我们需要安装.NET开发iPhone的环境,我们需要一下三个文件:

image

下载地址:

Mono Framework:

http://www.go-mono.com/mono-downloads/download.html

Mono Touch:

http://monotouch.net/DownloadTrial

Mono Develop:

http://monodevelop.com/Download/Mac_MonoTouch

这三个的安装顺序是:

1. Mono Framework

2. Mono Touch

3. Mono Develop

体积都不大,安装也很快。

装好后启动应用程序中的Mono Develop就可以:

image

image

image

image 

到此,环境搭建完成,不过速度不太理想,有条件的还是买个Mac book吧,多谢关注吴慧锋博客。

PS: 第三方有个SDK叫DragonFireSDK,是可以在Windows上开发iPhone应用的,没玩过,有玩过的可以交流一下。

也欢迎关注的我微薄:

http://t.sina.com.cn/wuhuifeng/

 
最后闲聊一句,最近发现博客园的几个元老级人物,老赵,李会军等都自己开博了,博客园痛失人才啊。


posted @ 2010-09-20 10:50 WilsonWu 阅读(4859) 评论(32) 编辑 收藏

 回复 引用 查看   
#1楼 2010-09-20 10:56 李永京      
这个不错
 回复 引用 查看   
#2楼 2010-09-20 11:02 坤坤      
个人建议如果想做ios开发的,还是买个苹果机吧,那样才能体会到mac os x下面的优势。
呵呵,我也写过如何在虚拟机下面安装mac os x的文章,确实是不好安装。^^

 回复 引用 查看   
#3楼 2010-09-20 11:02 顾磊(kyo-yo)      
好像李会军的博客上不去了。
 回复 引用 查看   
#4楼 2010-09-20 11:03 builderman      
原来是用的虚拟机
 回复 引用 查看   
#5楼 2010-09-20 11:07 wangxm      
问一下,最后基于这个MonoDevelop开发出来的iphone 的程序,在真机上部署的时候,需要额外的支持吗?
 回复 引用 查看   
#6楼[楼主] 2010-09-20 11:09 WilsonWu      
@wangxm
抱歉,没真机,穷啊,还不太清楚,有真机的朋友试试。

 回复 引用 查看   
#7楼 2010-09-20 11:12 轩辕法王      
引用
最后闲聊一句,最近发现博客园的几个元老级人物,老赵,李会军等都自己开博了,博客园痛失人才啊。。


这是因为博客园里有个叫firelong的2b,对别人技术较好的,横挑鼻子坚挑眼的,说拖控件和拼sql就可搞定所有开发任务了,还搞那么多新技术干嘛,学的蛋疼

所以精英人物最终受不了此等小人的气,一个个就离家出走了

 回复 引用 查看   
#8楼 2010-09-20 11:58 小福仙      
想问下,这个环境能否真的用于实际项目的开发?
提交app store是否有问题?会否存在兼容性问题?谢谢啦

 回复 引用 查看   
#9楼 2010-09-20 11:58 virus      
MonoFramework
主要是这个东西起作用了

就是个操作系统吗?装个虚拟机环境,也一样搞开发,装个jvm,可以用java开发了

 回复 引用 查看   
#10楼 2010-09-20 12:03 FlyingCat      
好像VMware装mac要cpu必须要支持虚拟指令, 而且要流畅运行硬件估计不能差吧, 有这钱干脆买台mac好了, 大家一起一边骂微软垄断一边享受更垄断的苹果的一统天下, 哈哈
 回复 引用 查看   
#11楼 2010-09-20 12:10 lipan      
好东西,值得推荐!
 回复 引用 查看   
#12楼[楼主] 2010-09-20 13:21 WilsonWu      
@小福仙
引用小福仙:
想问下,这个环境能否真的用于实际项目的开发?
提交app store是否有问题?会否存在兼容性问题?谢谢啦

抱歉,这个问题我还不太清楚,我不是做iPhone开发的,没有app store的ID,你如果找到相关资料我们可以研究一下,多谢!

 回复 引用 查看   
#13楼 2010-09-20 13:21 萧寒      
我最近也在用objective-c开发iPhone的应用; 不过我不看好 MonoTouch ;
 回复 引用 查看   
#14楼 2010-09-20 13:41 AppleSeeker(冯峰)      
帅哥,你文章里没有把可能遇到的安装失败的情况写出来。
比如,在用darwin.iso引导后,再放入雪豹的iso,load光盘后会提示说硬件问题造成重启。

另外很多硬件问题也造成即使是虚拟机也无法安装MAC系统。

 回复 引用 查看   
#15楼 2010-09-20 13:46 Cocoo      
引用轩辕法王:
引用
最后闲聊一句,最近发现博客园的几个元老级人物,老赵,李会军等都自己开博了,博客园痛失人才啊。。


这是因为博客园里有个叫firelong的2b,对别人技术较好的,横挑鼻子坚挑眼的,说拖控件和拼sql就可搞定所有开发任务了,还搞那么多新技术干嘛,学的蛋疼

所以精英人物最终受不了此等小人的气,一个个就离家出走了

这话说的,老赵和李会军都不是因为firelong出走的吧,李和老赵都走了,然后firelong才发文的。

 回复 引用 查看   
#16楼 2010-09-20 13:51 chenkai      
前端我也用虚拟机虚拟了相关的MAC系统,但是问题虚拟一直没有成功.
后来发现对于下载MAC ISO文件有问题.

 回复 引用 查看   
#17楼 2010-09-20 14:00 轩辕法王      
引用Cocoo:
引用轩辕法王:
引用
最后闲聊一句,最近发现博客园的几个元老级人物,老赵,李会军等都自己开博了,博客园痛失人才啊。。


这是因为博客园里有个叫firelong的2b,对别人技术较好的,横挑鼻子坚挑眼的,说拖控件和拼sql就可搞定所有开发任务了,还搞那么多新技术干嘛,学的蛋疼

所以精英人物最终受不了此等小人的气,一个个就离家出走了

这话说的,老赵和李会军都不是因为firelong出走的吧,李和老赵都走了,然后firelong才发文的。


这里的firelong是泛指,是代表firelong之流,并非具体的个人

 回复 引用 查看   
#18楼 2010-09-20 17:09 马宁      
老吴,有MONO在Android上的消息吗?我倒觉得MONO在iPhone上的意义不大,要看Android上是不是有发挥的空间。
 回复 引用 查看   
#19楼[楼主] 2010-09-20 17:19 WilsonWu      
@马宁
呵呵,我是打酱油的,非专业的,这方面的消息你不知道就没人知道了。

 回复 引用 查看   
#20楼 2010-09-20 17:20 Jeffrey Zhao      
@马宁
我正在用monotouch,感觉很好,以后就靠mono实现.NET Framework的全手机平台开发了,这方面mono的老大已经发话了,我很有信心,嘿嘿。

 回复 引用 查看   
#21楼 2010-09-20 17:20 Jeffrey Zhao      
引用virus:
MonoFramework
主要是这个东西起作用了

就是个操作系统吗?装个虚拟机环境,也一样搞开发,装个jvm,可以用java开发了

主要是Monotouch

 回复 引用 查看   
#22楼 2010-09-20 17:22 Jeffrey Zhao      
引用wangxm:问一下,最后基于这个MonoDevelop开发出来的iphone 的程序,在真机上部署的时候,需要额外的支持吗?

需要买licence才能在真机部署,才能够提交到appstore上。
monotouch很好啊,最后生成的是原生应用程序,也只会把用到的部分打包起来。

 回复 引用 查看   
#23楼 2010-09-20 17:35 轩辕法王      
引用Jeffrey Zhao:
引用wangxm:问一下,最后基于这个MonoDevelop开发出来的iphone 的程序,在真机上部署的时候,需要额外的支持吗?

需要买licence才能在真机部署,才能够提交到appstore上。
monotouch很好啊,最后生成的是原生应用程序,也只会把用到的部分打包起来。


阁下见多识广,令人叹为观止

 回复 引用 查看   
#24楼 2010-09-20 19:43 Ring      
非常详尽的好文。 马上安步就搬试一试 。
 回复 引用 查看   
#25楼 2010-09-20 21:39 传说中的祥哥      
MonoDevelop开发Iphone应用程序不需要要额外的支持,而且可以上传到AppStore,,但是MonoDevelop开发只能在模拟器上跑,如果有开发版,才能生成在真机上的安装包,MonoDevelop好像得400美元,我现在用的就是MonoDevelop。
 回复 引用 查看   
#26楼 2010-09-20 22:58 Jeffrey Zhao      
引用传说中的祥哥:MonoDevelop开发Iphone应用程序不需要要额外的支持,而且可以上传到AppStore,,但是MonoDevelop开发只能在模拟器上跑,如果有开发版,才能生成在真机上的安装包,MonoDevelop好像得400美元,我现在用的就是MonoDevelop。

不对,把MonoDevelop全部替换为MonoTouch就对了,呵呵。

 回复 引用 查看   
#27楼 2010-09-20 23:28 Amar-Yao      
不错的 但是更期待MonoDroid
 回复 引用 查看   
#29楼 2010-09-21 09:57 王福朋      
一开始启动虚拟机就出现这种错误:Mac OS X is not supported with software virtualization. To run Mac OS X you need a host on which VMware Workstation supports hardware virtualization.

 回复 引用 查看   
#30楼 2010-09-21 10:58 chris_thanks      
我也很想用,但要流畅跑起来,估计没7k,8k 的本子是跑不动 .....
 回复 引用 查看   
#31楼 2010-09-25 11:26 David      
引用王福朋:一开始启动虚拟机就出现这种错误:Mac OS X is not supported with software virtualization. To run Mac OS X you need a host on which VMware Workstation supports hardware virtualization.

这种是CPU不支持虚拟化,或者还没有开启硬件虚拟化支持。

 回复 引用 查看   
#32楼 2010-09-25 11:29 王福朋      
引用David:
引用王福朋:一开始启动虚拟机就出现这种错误:Mac OS X is not supported with software virtualization. To run Mac OS X you need a host on which VMware Workstation supports hardware virtualization.

这种是CPU不支持虚拟化,或者还没有开启硬件虚拟化支持。

好的,谢谢。我再上网查查。