最近看到一个开源工具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应该显示为验证设备才对,但不好意思,我尝试的低版本,一直都是未验证设备。

如上这些问题,都是在安装低版本的时候遇到的。所以在博文开篇处,我建议是安装最新版本。后面我是怎么解决了这些问题呢?

  1. 更新VMware版本,更新到了16

  2. 使用高版本的镜像包,在创建虚拟机的时候,选择的系统版本是os 10.15

  3. Mac系统安装成功后,先检测新版本,如果有,则更新

  4. 系统更新成功后,使用App store 搜索Xcode并安装

  5. 使用Xcode编译代码,一起正常

  6. 使用Xcode连接真机,也一起正常。只是首次连接,会自动下载对应真机版本的包,需要等待会

刚才谈到的这3个问题,在系统是最新版本的情况下,并且是在APP store中安装Xcode,得到了解决。

在爬坑的过程中,的确是有点难受。

最后附上安装黑苹果需要使用到的工具链接,希望对有需要的朋友有所帮助。

链接: https://pan.baidu.com/s/1XUahhv5c0Zs9A2zP9_Ns2w 提取码: qqnm

Windows搭建mac黑苹果系统的更多相关文章

  1. 解决Windows 与Mac 双系统下的蓝牙设备共用的问题

    不知道有多少人和我一样用的蓝牙鼠标或者键盘,有的话应该都会遇到同一个问题:即在一个系统下配好对后在另一个系统必须重新配对才能使用,很是麻烦.还要将蓝牙设备进入发现模式,OS下搜索,连接....终于昨天 ...

  2. Windows和Mac系统下安装Docker

    在windows和mac系统中使用Docker Desktop安装Docker对系统的要求是很高的. 对于 Windows 系统来说,安装 Docker for Windows 需要符合以下条件: 必 ...

  3. 在Windows、Mac和 Linux系统中安装Python与 PyCharm

    “工欲善其事,必先利其器”,本文介绍 Python环境的安装和 Python的集成开发环境(IDE) PyCharn的安装.   一.Python安装( Windows.Mac和 Linux) 当前主 ...

  4. Unix、Windows、Mac OS、Linux系统故事

    我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...

  5. windows,mac os与 linux 3系统共存

    硬盘1,C盘 win7 ,D盘 win7文件,E盘 mac os系统 通过easybcd引导, 选项1 ,window 7 选项2,mac --便捷式/外接存储介质(是一个制作好的专门引导mac的工具 ...

  6. Mac OSX系统、Linux、Windows命令行教程

    目录 Mac OSX系统.Linux.Windows命令行教程 一.各系统终端的使用方法 二.各系统命令的功能 Mac OSX系统.Linux.Windows命令行教程 用你的终端做一些事情 (com ...

  7. Synergy 多系统共享鼠标键盘 Windows 和 Mac 完全配置教程

    公司终于配上了双主机双系统双屏幕,编码是爽了,但是桌上的键盘有多了一套,有没有什么软件能够在不同的电脑之间共享键盘和鼠标呢?后来发下了Synergy这款软件.不仅免费而且开源(支持下). 让办公桌上的 ...

  8. Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境

    Windows 8 64位系统 在VS2010 32位软件上 搭建 PCL点云库 开发环境 下载PCL For windows 软件包 到这个网站下载PCL-All-In-One Installer: ...

  9. Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录

    Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录     Hadoop 2.6 的安装与配置(伪分布式) 下载并解压缩 配置 .bash_profile : ...

随机推荐

  1. Lesson 11 Not guilty

    Lesson 11 Not guilty guilty ['gɪlti] adj. 有罪的:内疚的 be guilty of - He is guilty of murder. be innocent ...

  2. SAML 2.0 实例分析 idp向sp发送响应(4)

    当idp与user建立起联系后,idp向sp发送响应 <samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol ...

  3. router-link与router-view的对应关系和映射特点

    router-link对应的router-view规律为: 1.根据to的值而定,值为一层(如 /child)则对应app.vue中的router-view: 值为两层,如 /second/child ...

  4. PostgreSQL-WITH AS短语

    WITH提供了一种方式来书写在一个大型查询中使用的辅助语句.这些语句通常被称为公共表表达式或CTE,它们可以被看成是定义只在一个查询中存在的临时表.在WITH子句中的每一个辅助语句可以是一个SELEC ...

  5. 算法优化---素数(质数)(Java版)

    4.1优化算法-----输出素数 最简代码请直接移步文末 原代码:https://www.cnblogs.com/Tianhaoblog/p/15077840.html 对应优化如下 优化一:在遍历内 ...

  6. Spring in Action学习笔记(2)

    Spring基础 AOP 面向切面编程 通知.连接点.切点.切面 Spring提供 4 种类型的AOP支持: 基于代理的经典SpringAOP:使用ProxyFactoryBean. 纯POJO切面: ...

  7. web知识架构思维导图

    图片双击放大还是很清晰的.原图大小5.1M

  8. 开源与Saas,如何选择软件?

    随着云计算的发展和普及,在云上使用软件已经成为了主流,为了帮助广大用户理解,我在这里对云上软件的三种主要形态以及如何做出选择做一个简单的分析. 开源免费软件 绝大部分开源软件都是免费的,免费的出发点有 ...

  9. 对HashMap的一次记录

    HashMap的具体学习,认识了解. 前言 也是最近开始面试才发现,HashMap是问的真多.以前听学长或自己在网上看到过一些面试资料都在说集合.线程这块比较重要,面试的重点.自己也是有那抵触情绪,所 ...

  10. postman之断言

    1 (状态码断言)和(返回内容断言)