4

在 windows 上开发 React Native IOS App 一定需要 Mac OS X 操作系统吗?答案几乎是肯定的,下面这是 2016 年的答案,时隔两年过去了依然没有什么好的解决方案。

create-react-native-app + Expo 倒是可以不需要 OS X 操作系统,但是需要一个 iPhone,我依然没有。即使有,这种方式也不适合用来开发。

所以,在 Windows 上安装虚拟机似乎是一个最佳选择。经过我的实践,只要电脑内存不小于 8 GB,处理器不是太渣开发体验基本上是可以接受的。

本文的写作顺序为:安装 VMware 14 => 解锁 VMware => 安装 OS X => 更新操作系统 => 安装开发工具 => 运行 RN 初始化的应用

安装 VMware 15

以下是我的 VM,下载后解压,安装时双击、下一步就行了,里面包含有激活码。

链接:https://pan.baidu.com/s/1znrI...
提取码:kvt7

解锁 VMware

苹果公司做了一些限制,不允许在虚拟机上安装 Mac OS,VMware 也应该没有拿到授权,所以默认是没有安装 Mac OS 的选项,不过有第三方工具是可以解锁这个功能的。这是此工具的下载地址:cdn.xnngs.cn/share/VMwar…

解压后右键管理员身份运行 win-install.cmd 程序即可。

解锁功能后创建一个虚拟机,然后如图所示选中 Mac OS 的镜像,此镜像较大,可以去百度网盘下载,链接:pan.baidu.com/s/1cp6ubiKG… 密码:ma9g

之后在自定义硬件的时候,分配的内存和 CPU 核心数都可以为主机的一半。按默认分配的也可以,后面随时都可以改的。(不过最好 CPU 是有多少给多少,因为虚拟机内操作系统的显卡是由主机的 CPU 虚拟化的,主机的处理器好不好会直接影响到安装后的系统画面是否流畅)

安装 OS X

解决安装黑苹果出现“没有符合安装资格的软件包

初次打开虚拟机的时候是会有一个报错的,打开 Mac OS 的安装目录(非虚拟机安装目录),找到 macOS 10.12.vmx 文件,在 smc.present = "TRUE" 后面添加一行 smc.version = 0。之后再次打开虚拟机就会进入加载系统的界面。

接下来来到下面这个界面,按如图所示的操作进行分区,然后将系统安装在此分区内。

重启后就是一些自定义设置了,建议先选择不连接到互联网(就算现在选择了联网也无法登陆 Apple ID),快速设置一个账户进入到系统。

进入到系统之后就可以安装 VMtools 了

安装好 VMtools 之后就可以让 Mac OS 全屏显示了

共享文件夹也顺便设置下吧,我这里把 Windows 的 D 盘和 OS X 做了一个共享,这样两个系统互相传输和访问文件就很方便了。

更新操作系统

到这里还不能说已经安装好了 OS X,因为还不能登录 Apple ID,至少我的是不能登陆的,它给了我这样的提示

需要使用安装 macOS 10.15 或更高版本的 Mac 才能以此 Apple ID 登录
复制代码

所以,接下来要升级系统到 10.15,其实也很简单,打开 App Store,在更新页面的首页就有安装选项。

更新下载并安装完后,下次重启时会让登录 Apple ID,还会让输入上一次使用过的苹果设备的密码。

到这里就完成了 Mac OS X 的安装了。

安装开发工具

首先去 App Store 安装 XCode,大概有 6G左右

接着打开终端运行一下命令安装包管理器 brew

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
复制代码

有了包管理器后就可以本方便地安装 node

$ brew install node
复制代码

为了让 npm 下载东西比较快,这里设置下淘宝镜像

$ npm config set registry https://registry.npm.taobao.org --global
$ npm config set disturl https://npm.taobao.org/dist --global
复制代码

然后安装 yarn 和 react-native 命令行工具,这里 yarn 是可选的

$ npm install -g yarn react-native-cli
复制代码

还是为了速度,再设置下 yarn 的淘宝镜像

$ yarn config set registry https://registry.npm.taobao.org --global
$ yarn config set disturl https://npm.taobao.org/dist --global
复制代码

到这里 React Native 的 IOS 环境就装完了

运行 RN 初始化的应用

用以下几条命令就可以初始化一个 React Native 应用并启动

$ react-native init testApp
$ cd testApp
$ cd ios pod install (如报错 xcrun unable to find simctl,打开Xcode > Preferences > Locations 更改一下Command Line Tools选项就可以了)
$ react-native run-ios
复制代码

图中为了节省时间是提前启动了一个 IOS 模拟器的,正常情况下它会在上面的命令执行后自动启动。

按 win + D 可以打开模拟器选项开启热加载,之后改动代码,页面就会自动刷新。

最后再来测试下虚拟机的性能,再用 XCode 打开此项目并启动了一个 8 plus 模拟器,两个模拟器同时运行加上 XCode、VSCode、Node 终端、浏览器也依然是非常流畅的。看来分配个 4 G 内存是完全 OK 的。

Enjoy it!😁


一纶新岳
62 声望3 粉丝