Windows搭建mac黑苹果系统
最近看到一个开源工具tidevice,是可以脱离mac来做ios自动化测试的。看到这么方便,就想着来尝尝鲜。但由于使用该工具,是需要基于WebDriverAgent的,该工具又需要使用Xcode重签名安装。手边没有mac电脑,所以就装个黑苹果来捣鼓下吧。安装过程并不顺利,也有失败的经历。想了想,还是写篇博文记录下,也算是爬坑了。
安装过程一些繁琐的步骤就不细述了,把爬坑以及注意的地方记录下。
VMware环境
黑苹果系统是安装在虚拟机中的,所以需要先有VMware。具体的安装流程,就不多说了,都是正常安装流程,按部就班往下走就行。
VMware最好使用最新版本,之前我用VMware12,新建虚拟机的时候,最高版本只能选到MacOS 10.12。但更新成VMware16后,就可以选到10.15版本了。
安装完成后,需要注意,此时新建虚拟机,系统是选不到Mac的,那该如何解决呢?我们来看。
unlocker补丁
unlocker补丁,就是用来解决,新建虚拟机选不到Mac系统的问题。该工具github地址如下:unlocker补丁 ,可以clone或下载zip包。下载后,先别急着使用,需要注意一个地方。
有些博友可能已经有了VMware或者刚安装的,但可能已经使用过了,这样的话,会自动启动4个服务。在打补丁的时候,需要将对应的4个服务给停用掉,具体哪4个,以大写的VM开头,如下图所示:

如果如图中所示,都是启用状态的话,需要先手动停止,不然会导致补丁失败。
服务停止后,我们打开unlocker包,里面有个win-install.cmd可执行文件,以管理员身份运行,等待程序自动安装,安装成功后dos命令窗口会自动关闭。
创建Mac虚拟机
上个步骤将补丁安装后,我们打开VMware软件,新建虚拟机,在选系统的时候,可以看到,会多出来一个Apple Mac OS X的选项,如下图所示:

版本最好选择最新版,在后续安装Xcode的时候,需要要求环境是最新版。
还有个注意点,就是磁盘空间需要大一点,我安装下来,系统更新,安装Xcode,占用了60G左右。
后续步骤也一步步对应配置就好,不细述。
安装系统
创建成功后,是不是有点忍不住?立马点击开启虚拟机,但事实是残酷了。映入眼帘的是一个报错弹框,如下所示:

解决办法:
进入到虚拟机的文件路径,就是创建虚拟机时,选择的保存路径。找到vmx文件,用记事本编辑,增加如下配置:smc.version = "0"。

添加后重启虚拟机,再次启用虚拟机,就正常进入到系统安装页面了,如下所示:

到了这,就等待加载完,可以休息一会
加载完后,就进入到了基础配置,如下所示,按需配置就行

系统安装时,需要选择一个安装磁盘,但只能选到默认磁盘,选其会提示磁盘空间不足。
解决办法:
在选择磁盘页面,有个实用工具入口,如下所示:

我们选择磁盘工具,会弹出一个弹框,将内置磁盘抹掉,格式选择为可扩展的。
关闭弹框后,我们继续安装系统,就有选到我们抹掉的磁盘了,如下所示:

到了这步,就可以喝杯小茶休息下了,我们静候佳音。
等安装完成后,会自动重启并进入设置界面,如下所示:

这里的后续设置也就跟配置windows系统一样,登录appleid账号,配置网络等待。
在设置网络的时候遇到过一个问题,就是连不上网。
解决办法:
方法一:
将虚拟机的网络连接方式配置为桥接模式
方法二:
如果使用方法一还不行,就将物理机的网络设置为共享,在网络属性中配置;再将虚拟机的网络连接方式配置为 仅主机模式 即可。
安装VMwareTools
系统安装完成后,发现安装不了VMwareTools,提示报错: 无法在更新服务器上找到组件。请联系 VMware 技术支持或您的系统管理员。
解决办法:
挂载新的镜像文件(darwin1012.iso),重启后桌面会展示安装入口。
重启后是正常展示了安装入口,但安装的时候又提示报错了,如下所示:

解决办法:
将虚拟机中的磁盘弹出,操作如下图所示:

好了,我们继续安装VMwareTools,这下可以正常安装成功了,如下所示:

但期间如果弹出如下提示:系统扩展已被阻止

解决办法:
我们到系统设置中,将安全性与隐私配置为允许即可。
到此,虚拟机中的Mac系统就算是安装成功了。是不是急切的想安装Xcode试一试了。安装Xcode我也是爬了好几个大坑,在这里也一起记录下。
Xcode安装
App Store中搜索不到Xcode
如果安装的是低版本系统,比如10.12,打开App Store是搜索不到Xcode,然后呢,我就去下载历史版本的Xcode。比如:Xcode8.1,Xcode9.1来解决
Xcode编译程序提示不是App Store安装
做了上述步骤,自己漫长等待下载了Xcode,上传到虚拟机中并安装,拉取代码准备编译时,提示Xcode不是App Store安装,不能编译,直接报错了。
Xcode连接真机一直是未验证设备
我们都知道,Xcode连接真机,是需要在手机上信任设备的,这个步骤验证后,在Xcode应该显示为验证设备才对,但不好意思,我尝试的低版本,一直都是未验证设备。
如上这些问题,都是在安装低版本的时候遇到的。所以在博文开篇处,我建议是安装最新版本。后面我是怎么解决了这些问题呢?
更新VMware版本,更新到了16
使用高版本的镜像包,在创建虚拟机的时候,选择的系统版本是os 10.15
Mac系统安装成功后,先检测新版本,如果有,则更新
系统更新成功后,使用App store 搜索Xcode并安装
使用Xcode编译代码,一起正常
使用Xcode连接真机,也一起正常。只是首次连接,会自动下载对应真机版本的包,需要等待会
刚才谈到的这3个问题,在系统是最新版本的情况下,并且是在APP store中安装Xcode,得到了解决。
在爬坑的过程中,的确是有点难受。
最后附上安装黑苹果需要使用到的工具链接,希望对有需要的朋友有所帮助。
链接: https://pan.baidu.com/s/1XUahhv5c0Zs9A2zP9_Ns2w 提取码: qqnm
Windows搭建mac黑苹果系统的更多相关文章
- 解决Windows 与Mac 双系统下的蓝牙设备共用的问题
不知道有多少人和我一样用的蓝牙鼠标或者键盘,有的话应该都会遇到同一个问题:即在一个系统下配好对后在另一个系统必须重新配对才能使用,很是麻烦.还要将蓝牙设备进入发现模式,OS下搜索,连接....终于昨天 ...
- Windows和Mac系统下安装Docker
在windows和mac系统中使用Docker Desktop安装Docker对系统的要求是很高的. 对于 Windows 系统来说,安装 Docker for Windows 需要符合以下条件: 必 ...
- 在Windows、Mac和 Linux系统中安装Python与 PyCharm
“工欲善其事,必先利其器”,本文介绍 Python环境的安装和 Python的集成开发环境(IDE) PyCharn的安装. 一.Python安装( Windows.Mac和 Linux) 当前主 ...
- Unix、Windows、Mac OS、Linux系统故事
我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...
- windows,mac os与 linux 3系统共存
硬盘1,C盘 win7 ,D盘 win7文件,E盘 mac os系统 通过easybcd引导, 选项1 ,window 7 选项2,mac --便捷式/外接存储介质(是一个制作好的专门引导mac的工具 ...
- Mac OSX系统、Linux、Windows命令行教程
目录 Mac OSX系统.Linux.Windows命令行教程 一.各系统终端的使用方法 二.各系统命令的功能 Mac OSX系统.Linux.Windows命令行教程 用你的终端做一些事情 (com ...
- Synergy 多系统共享鼠标键盘 Windows 和 Mac 完全配置教程
公司终于配上了双主机双系统双屏幕,编码是爽了,但是桌上的键盘有多了一套,有没有什么软件能够在不同的电脑之间共享键盘和鼠标呢?后来发下了Synergy这款软件.不仅免费而且开源(支持下). 让办公桌上的 ...
- Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境
Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境 下载PCL For windows 软件包 到这个网站下载PCL-All-In-One Installer: ...
- Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录
Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录 Hadoop 2.6 的安装与配置(伪分布式) 下载并解压缩 配置 .bash_profile : ...
随机推荐
- Jmeter入门 浏览器设置代理服务器和录制脚本
第一步: 可以设置浏览器代理,本文章推荐使用火狐浏览器 在浏览器-首选项--网络设置里面设置代理服务器 注意:端口号可以自行设置,但是不可以与本机其他代理产生冲突 第二步: 打开jmeter工具,添加 ...
- 线程Thread中的方法详解(二)
1.start() start()方法的作用讲得直白点就是通知"线程规划器",此线程可以运行了,正在等待CPU调用线程对象得run()方法,产生一个异步执行的效果.通过start( ...
- 第七篇 -- 添加CSV Data Set Config
参考链接:https://blog.csdn.net/vv19910825/article/details/82773220 先来看看我们开启的接口 @RequestMapping(value = & ...
- 爬取房价信息并制作成柱状图XPath,pyecharts
以长沙楼盘为例,看一下它的房价情况如何url = https://cs.newhouse.fang.com/house/s/b91/ 一.页面 二.分析页面源代码 我们要获得的数据就是名字和价格,先来 ...
- 自学linux——16.LAMP项目上线流程
LAMP项目上线流程 一.编译安装与卸载Nginx(web服务器软件,类似于Apache) 1.安装nginx ① 下载nginx 网页下载https://nginx.org/en/downlo ...
- 什么是CIDR?
英文缩写: CIDR (Classless InterDomain Routing) 中文译名: 无类别域间路由选择 IP地址有"类"的概念,/8掩码是A类,/16掩码是B类,/2 ...
- k8s强制删除资源
一般强制删除 kubernetes 的资源: kubectl delete <resource> <resourename> --grace-period=0 --force ...
- 解决 OnDropFiles 可能无响应的问题【转】
大多数程序都有接收拖放文件的功能,即是用鼠标把文件拖放到程序窗口上方,符合格式的文件就会自动被程序打开.最近自己对编写的程序增加了一个拖放文件的功能,在 Windows XP.Windows Serv ...
- GPB重磅!浙大李兰娟院士团队修饰多组学研究揭示炎症反应新机制
炎症 (inflammation) 是机体对致炎因子的损伤所发生的一种以防御反应为主的基本病理过程.翻译后修饰(PTMs)在调节多种炎症信号通路中起着重要作用,如磷酸化(phosphorylation ...
- CTF中的序列化与反序列化
记一些CTF出现的序列化与反序列化的知识点和题目. 序列化和反序列化的概念 序列化就是将对象转换成字符串.字符串包括 属性名 属性值 属性类型和该对象对应的类名. 反序列化则相反将字符串重新恢复成对象 ...