最近看到一个开源工具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. [考试总结]noip模拟20

    第五场,再挂分就没了.. 然后就没了.. 考场上一直想方法. 似乎想到了 \(T1\) 正解. 然而几个 \(k\) 的调试信息都让我迷失了自我. 然后有几句啥都没用的语句加在了上面.. 挂分... ...

  2. (opencv08)cv.resize()调整图像大小

    (opencv08)cv.resize()调整图像大小 img = cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=N ...

  3. 右键发送 (sendto),创建快捷方式到自定义的位置,不仅仅是复制,就像 发送到 桌面快捷方式 一样

    TL;DR 在 SendTo 文件夹里加上一文件夹的快捷方式后,在右键发送到这个文件夹的是这些文件的一个副本,实际上是一个复制的过程,有时候我们只希望是快捷方式,那就得另想办法了. 方案如下: 创建一 ...

  4. js学习笔记之公告逐行显示

    $(function(){ var newsListHeight = $(".news-list").height(); //获得内容的高度 var newsConHeight = ...

  5. GoogleTest死亡测试的跨平台BUG

    最近工作用到了GoogleTest来作单元测试,但是死亡测试的ASSERT_DEATH语句一直跑不通. GoogleTest会启动子进程来运行代码,并捕捉子进程的错误消息,这就是所谓的"死亡 ...

  6. expect命令和here document免交互

    目录 一.Here Document免交互 1.1 概述 1.2 语法格式 1.3 简单案例 1.4 支持变量替换 1.5 多行注释 1.6 完成自动划分磁盘免交互 二.Expect进行免交互 2.1 ...

  7. 大写字母与小写字母 相差 一个 空格 A = 65 a = 97 空格 = 32

    1 //大写字母与小写字母 相差 一个 空格 A = 65 a = 97 空格 = 32 2 3 #include <stdio.h> 4 int main() 5 { 6 7 char ...

  8. Unsatisfied dependency expressed through field 'rabbitTemplate'错误总结

    1. 在springboot中整合RabbitMq的过程中,遇到如下错误:(截取部分) org.springframework.beans.factory.UnsatisfiedDependencyE ...

  9. 跟我一起写 Makefile(十四)

    使用make更新函数库文件 ----------- 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件.在Unix下,一般是由命令"ar"来完成打包工作. 一.函数 ...

  10. 一键部署lnmp基本

    #!/bin/bash systemctl stop firewalld systemctl disable firewalld setenforce 0 #--------nginx-------- ...