用Windows系统编译iOS项目

如何从安装Windows系统的计算机上对Mac进行远程编译,从而创建iOS项目。

Windows
MacOS
Linux
前置主题

此页面假定您已掌握以下主题的前置知识。请在继续之前先阅读它们。

在创建iOS签名项目时,需要使用Mac和Apple开发人员账户。然而,对于主要使用Windows系统的团队来说,它他们可以使用 虚幻引擎4(UE4) 在Windows PC和Mac之间建立 SSH连接,从而远程创建iOS项目。这要求你在Mac上允许SSH连接,然后还需要设置SSH密钥和凭证,以便在Windows系统上访问Mac。本指南将带领你实现这一操作。

在Windows上创建"仅蓝图"iOS项目

如果你要创建 仅蓝图 类型的iOS项目,则不必参照下文中的完整远程创建步骤。相反,你可以使用Windows计算机直接创建iOS项目,前提是你已在编辑器中设置 iOS开发人员证书授权配置文件。但是,如果你之后打算在项目中添加C++代码,则还需要遵循此页面上的步骤。

有关如何为构建版本签名的信息,请参阅关于iOS授权 的指南。

1.必要设置

要使用iOS远程构建功能,你至少需要一台能够构建iOS项目的Mac,以及一台Windows PC。两台计算机都必须接入互联网或局域网,并且必须安装同一个UE4项目。

你的Windows电脑必须安装 iTunes,以便确保你拥有iOS项目所需的二进制文件。我们建议你从Apple官网 而不是Windows Store下载和安装iTunes,因为Windows版本包括额外的二进制文件,可能会对远程构建产生干扰。如需从Apple直接获取iTunes,请向下滚动并找到"寻找其他版本?"这一段,然后点击 Windows

你的Mac必须已经将你的iOS开发人员证书加载进 系统钥匙串(System Keychain),并且你必须按照iOS授权 设置项目的授权配置文件。

在你设置完Mac并为项目构建做好准备后,你应至少在该电脑上直接运行一次构建版本,确保它可以正常运行,然后再继续下一部分。

2.在Mac上启用远程登录

设置好项目后,你需要配置Mac以便支持SSH连接。

  1. 打开Mac的 系统偏好设置(System Preferences),然后导航至 共享(Sharing)

  2. 选中 远程登录(Remote Login) 复选框。

  3. 打开系统 偏好设置(Preferences) > 网络(Network)

  4. 注意计算机的 IP地址。在Windows PC上设置远程连接时将需要此IP地址。

完成这些步骤后,Mac将能够从你的PC接受传入的SSH连接。

3.Windows配置和生成SSH密钥

在Windows计算机上完成以下步骤,以便对其进行远程iOS构建配置。

  1. 虚幻编辑器 中打开项目,然后打开 项目设置(Project Settings)

    在编辑菜单中找到项目设置

  2. 导航至 平台(Platforms) > iOS > 构建(Build)

    The Platforms/iOS section

  3. 远程服务器名称(Remote Server Name) 字段中,输入用于构建项目的Mac名称或其IP地址。

  4. 远程用户名(Remote User Name) 字段中,输入你通常用于登录Mac的用户名。

  5. 点击 生成SSH密钥(Generate SSH Key)。这将打开命令提示窗口,其中包含一系列将生成SSH密钥的提示。

  6. 如果你收到消息提示主机无法通过身份验证,请在提示中输入""继续。

  7. 输入属于你在上一分段 远程用户名(Remote User Name) 中指定的用户 密码

  8. 提示将要求你输入 口令(passphrase)。如果你选择不输入口令,则可以使用远程连接而无需任何用户交互。

  9. 出现提示时,再次输入Mac的 密码用户名 完成此过程。

现在,你已经生成SSH密钥,你将能够在Windows计算机上启动与Mac的远程连接,以便创建iOS构建版本。

Workaround For Unprotected Private Key

你可能会看到类似下文的错误消息:

错误:无法为远程用户确定主目录。SSH 输出:...警告: 未保护的私钥文件!...0660 (ERROR: Unable to determine home directory for remote user. SSH output:...WARNING: UNPROTECTED PRIVATE KEY FILE!...0660)

如果你没有看到这条错误消息,你可以继续下一步。如果你看到了,请使用以下解决方法:

  1. 从微软官网下载SubInACL命令行工具

  2. 右键单击 命令提示符窗口(Command Prompt) 任务栏项目,选择**以管理员身份运行**,打开管理员命令提示符窗口。

  3. 执行下述命令:

    SubInACL /File "C:\Users\MyUserName\AppData\Roaming/Unreal Engine/UnrealBuildTool/SSHKeys/10.1.1.1/remoteusername/RemoteToolChainPrivate.key" /setprimarygroup=Users

执行此命令时,请把路径改为你的密钥的路径。这会更改文件的主组(primary group),以避免其与你的用户名同名——SSH在检查组权限时会因为同名发生混淆。现在操作应该能正常执行了。

4.可选团队设置

要在将来对其他项目共享此数据,请在计算机上的 *Engine.ini 文件之一中指定远程服务器名称和远程用户名称。

  1. 选择 远程服务器名称(Remote Server Name) 属性旁边的按钮,打开 配置编辑器(Configuration Editor)

    远程服务器名称属性旁边的配置编辑器按钮

  2. 为每个你要共享SSH数据的.ini文件设置属性。

    使用配置编辑器编辑.ini文件

  3. 针对 远程用户名(Remote User Name) 重复这些步骤。

通过共享这些.ini文件,你可以向多个项目或用户提供SSH信息。SSH密钥本身存储在 Engine/Build/SSHKeys 文件夹中。你可以将此目录签入源代码控制系统中,以便与团队共享。

5.最终效果

完成上述步骤后,在Windows计算机上的虚幻编辑器中点击 文件(File) > 打包项目(Package Project) > iOS,启动远程构建。建立SSH连接,然后将命令发送到Mac,开始构建。

标签
Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见