该文章为吃货传说原创,转载请注明出处。
在上一篇文章《(1)[UE4]使用Windows PC打包iOS App》中我们知道了如何使用Windows PC把一个纯蓝图且不使用iOS平台插件的项目打包成一个iOS App,且无需Mac的介入。但是往往项目中都会有代码或iOS平台的插件(比如最近大热的ARKit),此时就需要UE4的Remote Build功能了。这项功能实际上使用了一台Mac的Xcode对项目进行远程编译和烘焙,也就是说,此时我们需要一台Mac了。
1. 在Mac上的设置工作
1.1 准备一台Mac。
并确保和Windows PC处于同一局域网下。
1.2 为Mac安装Xcode。
如果你对Xcode版本有特殊的要求,比如ARKit只能使用Beta版,那么请在安装好之后运行如下命令:
sudo xcode-select -s 你的Xcode安装路径/Contents/Developer
这个命令设置了系统默认使用的Xcode版本。
1.3 确保Windows PC和Mac安装了同样的iOS Certificate。
这里推荐一种简便的方法生成:
首先打开Xcode,打开Preference,选择Account。
点击左下角的+,添加一个Apple ID,输入你的开发者账号和密码。如果添加过了请忽略
添加完成后点击它,右边会出来一个详细信息面板,点击右下角的Manage Certificates
接下来在弹出来的窗口中点击左下角的+按钮,选择iOS Development。过一会后你就可以在列表中看到你添加的iOS Development Certificate了。
打开Keychain Access,点击左边的“登录”分类,你应该可以在右边看到刚刚添加的证书了。接下来把刚刚添加的证书拖到左边的“系统”分类当中,这时需要电脑的登登录密码授权。完成后你应该可以在“登录”和“系统”两个分类中看到我们刚刚添加的证书。
最后一步,点击证书左边的箭头,打开下拉菜单,我们可以看到一个iOS Developer专用密钥,右键这个密钥文件,选择导出,接着选择保存位置和格式,最后需要输入一个密码,这个密码是为证书加密的密码,随便输什么,只要记住就可以了,后面要用到。
重要提示:不是右键点击证书导出,而是点击密钥导出。如果你只导出了证书,是没有对应的密钥的!
我们会在保存位置看到一个导出的证书文件,默认格式为.p12。
1.4 打开Mac的远程登录功能。
打开系统偏好设置,选择共享,把远程登录钩上。在右边可以根据你的需要选择允许访问所有用户或者指定用户,但是要保证你当前使用的用户是允许访问的,因为你把Xcode装在了这个用户上了。至此,Mac上的配置就结束了。
2. 在Windows PC上的设置
2.1 在Windows PC上为UE4项目配置正确的 .cer和.mobileprovision。
接下来把生成的证书文件拷贝到Windows PC上。打开UE4工程,项目设置,左边选择iOS,然后在右边点击Import Certificate,然后会提示你输入刚才导出证书时输入的密码,输入完成后就可以顺利导入了。
如果你还不知道如何配置.mobileprovision,请看我的文章《(1)[UE4]使用Windows PC打包iOS App》中的“1.2.3-1.2.5和”“2. 对项目进行设置”。
2.2 设置Remote Build
先尝试着在Windows PC上ping一下Mac的IP,如果能ping到就没问题,如果ping不到就检查一下网络设置,或者大叫“网管!!!!”
确保你按照1.4的说明打开了Mac的远程登录功能
在UE4的项目设置中的iOS分类中,找到Build这一栏,然后展开Remote Build Options。在Remote Server Name输入Mac的IP地址,RSync User Name输入Mac的用户名(你装了Xcode的那个用户)。然后点击Generate SSH Key
接下来会跳出一个命令行窗口。
1. 首先按随便一个键继续。
2. 接下来会提示你输入Mac用户对应的登录密码,输入后按回车。
3. 然后会出现Enter passphrase(empty for no passphrase):什么都不要输入,直接回车
4. Enter same passphrase again:什么都不要输入,直接回车
5. 会出来一堆连七八糟的东西,按回车继续
6. 再次输入Mac用户对应的登录密码,回车
如果没有提示你什么错误的话,就说明Remote Build设置成功了。
网友评论
-在开始前不能把引擎的管理员权限打开,否则会报错误
-distribution的,把profile设成shipping,但其他模式和证书\provisioning需要用到
-多次提交同一version的ipa需要修改build版本,文件路径在 [project folder]/Build/IOS/[project name].PackageVersionCounter
修改
-4.18.3及以前版本,需要用到iresign,首次用iresign重签名ipa后,提取出entitlements.plist,重签后提交避免异常文件的问题
-4.19.2版本,app icon会出现被默认覆盖的问题,需要打包后,替换压缩包内的所有icon并重新打包,但marketing icon依然无从替代
-出现使用ARKit和Truedepth API的问题,需要禁用App的AR Kit插件(plugin)