Windows上的Unity iOS:使用VMWare从Windows机器上的Unity编辑器中部署到iPhone
这是在Windows计算机上开发Unity iOS应用程序的帮助。 使用VMWare,可以在本地虚拟机上运行Shell脚本,以自动完成通过USB将Unity应用程序从编辑器部署到iPhone的整个过程。 该过程是单击等待的过程,每个构建大约需要5分钟。 本文提出了一些组件来管理自动化。
注意 :这是“穷人”的方法,如果您一开始只能购买Macbook,从长远来看可能会浪费您的资源。 另外,在完全提交之前,请通读并做您自己的研究,因为可能存在一些硬件要求。
免责声明 :在非Apple硬件上运行任何macOS均违反Apple EULA。 请确认风险,并自行承担责任。
系统总览
Shell脚本在Windows和VM macOS都具有读/写访问权限的目录中监视非常简单的时间戳文件。 每当Unity Editor将项目组合到文件夹中时,C#后处理脚本都会在文件中设置标志。 然后在VM中,shell脚本将检测该标志,构建/部署项目并折叠该标志。
因此,只要脚本在VM上运行,用户就可以在Unity Editor中按下“构建”按钮,并免提等待,直到iPhone自动打开应用程序。
设置共享文件夹
共享文件夹是VMWare用来访问主机文件系统的功能。 该文件夹将容纳并启用Unity Editor和Shell脚本之间的通信。
- 使用共享文件夹
https://www.vmware.com/support/ws5/doc/ws_running_shared_folders.html
设置xcodebuild
要通过shell脚本构建XCode项目,有一个名为xcodebuild
的命令行工具。 这应该与XCode应用捆绑在一起。
设置ios部署
xcodebuild
没有可以部署到设备上的功能,但是还有另一个名为ios-deploy
工具可以这样做。 此外,iPhone还需要通过USB连接到计算机并路由到VM。
- ios部署
https://github.com/ios-control/ios-deploy - 连接USB设备
https://www.vmware.com/support/ws55/doc/ws_devices_usb_connect.html
设置Unity C#后处理脚本
构建完成后,将调用带有[PostProcessBuild]
属性标记的静态方法。 对于时间戳文件的格式,脚本可以是这样的:
每当用户单击“生成”按钮时,Unity编辑器都会将项目编译为XCode项目,然后此脚本将更新时间戳。
构建路径必须设置为共享文件夹内部。
设置Shell脚本
这是整个脚本,随后是一些重要内容的深入介绍。
该脚本可以设置为登录项,以便它自动开始运行。 可以通过关闭终端窗口来中止该过程。
在脚本中可以更改的共享文件夹名为__transfer_
,以及项目名称( MyProject
)和应用程序名称( foo.app
)。 这些名称必须与Unity Editor中的构建设置匹配。
默认情况下,诸如cd
和cp
类的命令无法在“共享文件夹”(“无此文件或目录”)内部访问。 因此,该脚本会在执行任何其他命令之前先将其安装在本地驱动器中:
mkdir -p
sudo mount -t vmhgfs .host:/
同样,无论安装如何,XCode都不能在共享文件夹中构建。 因此,该脚本通过将项目复制到桌面并在桌面上构建来解决该问题。
Unity项目的文件名具有特定格式,因此可以对诸如项目/目标名称的某些参数进行硬编码。 此命令将开始构建,打印出所有日志并将产品保存在build
目录中:
cd
xcodebuild -project Unity-iPhone.xcodeproj \
-target Unity-iPhone \
-配置调试版本
最后,脚本将通过USB将构建部署到连接的iPhone:
cd / build / debug-iphoneos
ios-deploy --uninstall-非交互式--debug --bundle foo.app
只要Windows和iPhone连接到同一WiFi,Unity的远程探查器功能就可以工作。 用户还可以使用ios-deploy
打印到终端的运行时日志。
完成所有设置后,用户可以在Unity完成在共享文件夹中的项目编写后,在Unity Editor中按下“构建”按钮,并观察shell脚本对此的反应。 然后,脚本将开始构建并部署到连接的iPhone。 一旦应用程序关闭或在设备上崩溃,该脚本将返回主循环。
结论
因此,这是在Windows上运行Unity iOS应用程序的自动构建和部署系统的概念和示例代码。