monoTouch开发(1):win7 + vmware下安装mac os
iPhone现在越来越火爆了,很多原本在PC上的互联网应用都纷纷推出了iPhone客户端(比如携程,新浪微博),iPhone的最佳开发环境是mac OS + iphone真机,一般情况下这个有点难满足。(想起一句网络经典语言:用钱能解决的问题都不是问题,问题是TM没钱)
但是可以在windows环境(比如win7)中,通过虚拟机安装mac os来搭建环境,下面将讲解vmware下如何安装mac os 10.6(雪豹操作系统)。
1、准备工作,先到网上down下面这些软件
a、 vmware7.1 (虚拟机软件) b、 darwin.iso 约24.8m (mac os系统的引导盘,没有这个无法进入安装,而且安装好以后,也需要这个引导才能进入mac os,迅雷上就能找到) c、 Mac.OSX.Snow.Leopard.v10.6.2(雪豹10.6)的DMG文件 约6.13G (迅雷或apple官网上就有)
2、安装vmware虚拟机
3、在虚拟机里创建一个FreeBSD 64-bit类型的虚拟机
因为vmware的操作系统选项里,并没有mac OS,所以只能选择最接近的FreeBSD 64-bit,然后一路next下去,注意:内存至少要分配1G,硬盘容量建议20G以上吧(因为后面开发工具+系统更新会占用很多的空间),另外在硬件配置里软驱可以去掉(没啥用),创建完成后退出vmware。
4、关键之一:上一步做完之后,会生成一个后缀名为vmx的文件,用记事本打开,找到下面这一行
guestOS = "freebsd-64" 改成 guestOS = "darwin10"
然后重新启动vmware,正常情况下,查看虚拟机的属性,应该会自动变成Mac OS X Server 10.6,如下图
如果这一步没成功,请检查前面的步骤
5、然后将darwin.iso挂到虚拟机的光驱,启动虚拟机
启动后,如果顺利会看到下面这个界面:
注:如果不能正常引导到该界面,可尝试将虚拟机power off关掉,然后重新开启
6、在虚拟机保持开启的状态下,切换光盘,把dmg文件挂到光驱上
方法:右击虚拟机名称-->setting--> CD/DVD -->Use ISO Image file-->Browse 默认情况下,看不到dmg文件,把下拉框改成"All files(*)"
选择mac os的dmg文件
注意:记得要勾选Connected!
点击ok,如果运气好的话,稍等一会儿,应该就能进入mac os的安装界面了
建议安装英文版(因为monoDeveloper跟monoTouch都是英文版的,光操作系统是中文其实意义也不大),剩下的事情地球人都知道了
7、安装完成以后,记得将光驱重新挂回darwin.iso,不然就算安装好了,也无法引导系统。
8、分辨率问题
默认情况下vmware中的mac os在偏好设置里,显示器的分辨率只有1024 * 768,玩不了全屏,这是因为没安装vmware tools,安装方法如下:
点击vmware最右下角的光盘图标,先把connect,然后在mac os 里就会看到光盘了,打开光盘,里面就能看到"install Vmware Tools.app",双击安装即可
安装完成后,就能随意切换分辨率了。
注:有某些本本上(比如thinkpad t61p),按文中的方法死活就是进入不了安装界面,多半是不兼容,这时可以在其它PC机器上按上面的方法安装好,然后将安装好以后的所有文件复制到本本上,在vmware中直接打开即可。
9、其它建议:
9.1、安装好以后,建议先更新系统 Software Update,大约会下载1G以上的更新包
9.2、老乔很迷恋自家的技术,神马flash、神马silverlight这类东西默认都木有安装,就算你手动安装了,在safari上也表现很差(众所周知的原因)。建议使用firefox,我亲自测试过:flash、silverlight在firefox下表现良好(mac os下的安装方式很独特,下载以后,直接把dmg文件拖到application里就完事了)
9.3、mono的基本工具(比如monodevelop,monotouch),可以上www.mono-project.com下载对应的mac os版本
9.4、到http://developer.apple.com/注册一个帐号,下载iOS sdk,大约2~3G (mono只是一个开发环境的壳,真正编译还得靠sdk)
9.5、建议参考老赵的方式,把项目文件放在win7的host主机中,虚拟机中用共享方式来访问(mac os下访问windows共享的方法为:Go--> connect to server,然后输入 smb://ip地址)
参考文章: Win7 + VirtualBox安装Mac OS X雪豹操作系统图文详解
教你在VMWare下安装MAC OS X Snow Leopard 10.6
- 新华三《中国城市数字经济指数白皮书》:深圳数字经济发展水平国内居首
- NodeMCU模块写入MicroPython固件
- 如何证明Application Domain的隔离性
- Enterprise Library深入解析与灵活应用(8):WCF与Exception Handling AppBlock集成[下]
- 我所理解的Remoting(1):Marshaling & Activation[上篇]
- oracle 12c 常见报告获取-AWR
- 人人公司收购美国卡车社区 Trucker Path,未来或探索无人驾驶
- WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]
- 《WCF的绑定模型》博文系列汇总[共6篇]
- 快来看看难民营里的高科技超市
- WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[中篇]
- 如何通过自定义MessageFilter的方式利用按键方式操作控件滚动条[附源代码]
- WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)
- 《WCF技术剖析》博文系列汇总[持续更新中]
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Go命令官方指南【原译】
- 详解:如何监控小程序异常及处理错误?
- redis实战第十三篇 jedis连接redis cluster
- 哈工大李治军操作系统课程实验环境搭建
- 我用 OpenGL 实现了那些年流行的相机滤镜
- 使用minikube安装kubernetes和dashboard
- FFmpeg + OpenGLES 实现视频解码播放和视频滤镜
- 行为型设计模式:模板模式
- 容器中的隔离与限制:namespace和cgroups
- 行为型设计模式:策略模式
- redis实战第十二篇 redis cluster请求重定向
- 行为型设计模式:责任链模式以及mybatis中的责任链
- java中BigDecimal使用和注意事项
- redis实战第十一篇 redis cluster添加密码
- Linux下docker制作springboot应用镜像