This page assumes you have prior knowledge of the following topics. Please read them before proceeding.
在创建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连接。
打开Mac的 系统偏好设置(System Preferences),然后导航至 共享(Sharing)。
选中 远程登录(Remote Login) 复选框。
打开系统 偏好设置(Preferences) > 网络(Network)。
注意计算机的 IP地址。在Windows PC上设置远程连接时将需要此IP地址。
完成这些步骤后,Mac将能够从你的PC接受传入的SSH连接。
3.Windows配置和生成SSH密钥
在Windows计算机上完成以下步骤,以便对其进行远程iOS构建配置。
在 虚幻编辑器 中打开项目,然后打开 项目设置(Project Settings)
导航至 平台(Platforms) > iOS > 构建(Build)。
在 远程服务器名称(Remote Server Name) 字段中,输入用于构建项目的Mac名称或其IP地址。
在 远程用户名(Remote User Name) 字段中,输入你通常用于登录Mac的用户名。
点击 生成SSH密钥(Generate SSH Key)。这将打开命令提示窗口,其中包含一系列将生成SSH密钥的提示。
如果你收到消息提示主机无法通过身份验证,请在提示中输入"是"继续。
输入属于你在上一分段 远程用户名(Remote User Name) 中指定的用户 密码。
提示将要求你输入 口令(passphrase)。如果你选择不输入口令,则可以使用远程连接而无需任何用户交互。
出现提示时,再次输入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)
如果你没有看到这条错误消息,你可以继续下一步。如果你看到了,请使用以下解决方法:
从微软官网下载SubInACL命令行工具 。
右键单击 命令提示符窗口(Command Prompt) 任务栏项目,选择**以管理员身份运行**,打开管理员命令提示符窗口。
执行下述命令:
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
文件之一中指定远程服务器名称和远程用户名称。
选择 远程服务器名称(Remote Server Name) 属性旁边的按钮,打开 配置编辑器(Configuration Editor)。
为每个你要共享SSH数据的.ini文件设置属性。
针对 远程用户名(Remote User Name) 重复这些步骤。
通过共享这些.ini文件,你可以向多个项目或用户提供SSH信息。SSH密钥本身存储在 Engine/Build/SSHKeys
文件夹中。你可以将此目录签入源代码控制系统中,以便与团队共享。
5.最终效果
完成上述步骤后,在Windows计算机上的虚幻编辑器中点击 文件(File) > 打包项目(Package Project) > iOS,启动远程构建。建立SSH连接,然后将命令发送到Mac,开始构建。