Xamarin开发IOS系列教程一:安装黑苹果
经过一番思想挣扎和斗争之后,最终还是选择采用Xamarin来开发跨平台移动应用,好处和优点大家可以搜索其它博文,因为家里面穷加上谈了恋爱,就不买苹果了,开发阶段在Windows上面直接搞定哈,时候不早了,废话不多说,咱们撸起袖子开搞吧。
安装前的准备工具
1、苹果镜像文件:http://pan.baidu.com/s/1dEYasU1
2、VMWare虚拟机:http://www.vmware.com/cn.html (自己去官网或者百度直接下载哈)
3、Unlocker工具:http://pan.baidu.com/s/1pL4jVsv(VMWare里面默认是不支持安装Mac系统的,这个工具是干嘛的,你懂的)
一、安装VMware虚拟机
由于本文重点不是讲解虚拟机,这里就不在叙述如何去安装虚拟机,大家可以自行查询。
二、搭建Mac OS
步骤一:创建新的虚拟机
在VMware的主页中,选择“创建新的虚拟机”。

步骤二:选择配置
在这里,我们选择“典型”安装即可,选择后,点击“下一步”。

步骤三:选择镜像文件
这里要说明下,前面云盘提供的文件是cdr格式,大家没必要转换成iso或者将扩展名改为ios,选择文件后,点击“下一步”即可。

步骤四:选择客户机操作系统
在选择完Apple Mac OS X(M)后,版本会自动检测为OS X10.11,完成后,点击“下一步”

步骤五:命名虚拟机
填写好虚拟机名称,选择所要安装的位置后,点击“下一步”。

步骤六:指定磁盘容量
我这里选择默认的40G,将虚拟机磁盘存储为单个文件,完成后点击“下一步”。

步骤七:完成创建
点击“完成”后,即可在左边菜单我的计算机中看到新创建的虚拟机。

三、启动Mac OS前的相关配置工作
如果直接启动虚拟机,大家会看到如下报错(报错信息摘要:VMware Workstation 不可恢复错误: (vcpu-0) vcpu-0:VERIFY vmcore/vmm/main/physMem_monitor.c:1180)

针对这个报错原因,在谷歌上找出了解决方案,具体的原因,没有在官网中找到合理的解释,这里就不在深究了,解决方案如下:
步骤一:进入到虚拟机的安装目录,找到vmx扩展名的文件(这个文件的命名和前面的虚拟机命名一致,例如我的文件就是:OS X 10.11.vmx)

步骤二:以记事本的方式打开vmx文件
查找:smc.present = "TRUE" ,在这一行信息下,加入:smc.version = 0
此时即可正常启动虚拟机。

四、启动Mac OS
这一步省略了Mac OS的语言和账号密码之类的设置,这个大家自行研究,来看看我们的开机画面,到此部分,我们的开头部分就算完成啦。


Xamarin开发IOS系列教程一:安装黑苹果的更多相关文章
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- 【Xamarin开发 Android 系列 1】环境部署搭建
原文:[Xamarin开发 Android 系列 1]环境部署搭建 开篇自然先扯一段,近几年移动互联网如果熊猫零食一样,蔓延迅速.楼主身为一个微软忠实的粉丝,无奈,老爹不给力.Silverlight开 ...
- CRL快速开发框架系列教程一(Code First数据表不需再关心)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- 【Xamarin开发 Android 系列 13】 应用打包部署
原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...
- 【Xamarin开发 Android 系列 6】 Android 结构基础(上)
原文:[Xamarin开发 Android 系列 6] Android 结构基础(上) 前面大家已经熟悉了什么是Android,而且在 [Xamarin开发 Android 系列 4] Android ...
- 【Xamarin开发 Android 系列 2】VS2015跨平台开发的几种方式
原文:[Xamarin开发 Android 系列 2]VS2015跨平台开发的几种方式 在微软Build大会上,微软宣布在VS2015中支持三种方式进行跨平台的开发. 1. Xamarin 2. Co ...
- 【Xamarin开发 Android 系列 3】循序渐进的学习顺序
原文:[Xamarin开发 Android 系列 3]循序渐进的学习顺序 指定合理的学习步骤,将各个技术点进行强化.慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资 ...
- NGUI系列教程一
NGUI是Unity的一个插件,使用它来制作你的游戏UI必定将事半功倍.为什么这么说呢?首先我们说说GUI与NGUI的区别,GUI是Unity自带的绘制界面工具,它的成像原理是基于表层的,所以执行效率 ...
- 【Xamarin开发 Android 系列 7】 Android 结构基础(下)
原文:[Xamarin开发 Android 系列 7] Android 结构基础(下) *******前期我们不打算进行太深入的东西,省的吓跑刚进门的,感觉门槛高,so,我们一开始就是跑马灯一样,向前 ...
随机推荐
- MySQL索引背后的之使用策略及优化(高性能索引策略)
为了讨论索引策略,需要一个数据量不算小的数据库作为示例.本文选用MySQL官方文档中提供的示例数据库之一:employees.这个数据库关系复杂度适中,且数据量较大.下图是这个数据库的E-R关系图(引 ...
- Android px、dp和sp单位区别
[转]http://www.cnblogs.com/bjzhanghao/archive/2012/11/06/2757300.html 在调整布局的时候,某些控件的大小需要设置单位: px: 即像素 ...
- Nodejs之目录介绍及app.js说明
nodejs目录说明,app.js简单介绍及如何设置app.js启动项目. 新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. pu ...
- C#子窗口与父窗口交互(使用委托和事件)
目标:在子窗口Form2上单击按钮时向Form1传递一组自定义参数,并显示在父窗口Form1上. 方法:有很多方法,这里只介绍委托和事件的实现方式. 思路:Form2中定义事件,Form1创建Form ...
- 笔记整理——linux程序设计
数据库 (2013/2/27 16:07:11) 线程 (2013/2/27 15:47:51) 信号 (2013/2/27 15:31:28) 消息队列.共享内存 (2013/2 ...
- php sprintf函数
定义和用法 sprintf() 函数把格式化的字符串写写入一个变量中.sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插 ...
- 3.3. 轻量级的迁移方式(Core Data 应用程序实践指南)
持久化存储协调器会试着用新版的模板打开原来的持久化存储区,但是那是旧的模板,旧的格式,当然会出错.现在要做的就是迁移现有的持久化数据区,以便跟新模型匹配. 怎么进行迁移呢? 在什么时候进行迁移? 在向 ...
- C#中IDisposable
在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机.对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收.那么什么时候使用Id ...
- JavaScript的核心
对象 ECMAScript做为一个高度抽象的面向对象语言,是通过对象来交互的.即使ECMAScript里边也有基本类型,但是,当需要的时候,它们也会被转换成对象. 一个对象就是一个属性集合,并拥有一个 ...
- 用ant打包可运行的jar文件 (将第三方jar包放进你自己的jar包)
http://blog.csdn.net/caiqcong/article/details/7618582 <span style="font-family:SimSun;font-s ...