最近和周围的小伙伴都很痴迷腾讯的一款游戏《刺激战场》,逼真的场景模型和紧张的游戏情节总能让人欲罢不能,其实这个爆款游戏就是腾讯出品的首款采用UE4开发的游戏,据说当时是有UE4的中国区技术支持人员驻场帮助开发的,由此可见UE4的强大功能和巨大的潜力。
您可以从这里来看了解更多的关于UE4的知识。
本篇主要讲述UE4在iOS端打包的流程和一些需要注意的坑。
UE4引擎的优点之一就是其卓越的跨平台特性。否则大家就不会看到iPhone上的《刺激战场》了。
其实iOS开发的同学都知道,iOS打包一直是作为一名developer的必备技能之一。之所以是一项必备技能,就是因为iOS打包机制相对其他平台而言,他的证书和校验机制相对封闭和复杂,如果不能理解其中的机制原理,很容易在打包的过程失败。
所以UE4打包iOS应用,归根到底还是iOS打包,只有先理解透彻了iOS的打包机制,那么在UE4引擎上打包iOS应用就也没有问题了。
一、上图的该账号是需要开发人员持有的一个付费的至少是99刀的账号(企业199刀,面向内部应用),可以是个人的,也可以是公司的,当然也可以是企业的。上图我抹去了个人隐私的信息。我们可以看到,在这个账号里,你首先要做的就是创建证书,在左侧栏中的certificates的选项中,创建了.cer证书
该证书是用来证明iOS App内容(executable code)的合法性和完整性的数字证书。对于想安装到真机或发布到AppStore的应用程序(App),只有经过签名验证(Signature Validated)才能确保来源可信,并且保证App内容是完整、未经篡改的。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。具有时效性,只在特定的时间段内有效。
二、接下来的Identifiers即标识符,相当于身份证,主要用于创建App IDs,就是相当于是APP的唯一标志。这个标志是要记住的,因为无论是xcode创建的iOS项目还是UE4配置项中,都是需要这个ID的。
三、devices很好理解,就是添加iOS设备的,只能添加在开发证书中。
四、provisioning profiles 描述性文件基本上就是
Provisioning Profile文件包含了上述所有内容:证书,App ID,设备,后缀名为.mobileprovision。
一个Provisioning Profile对应一个App ID。Provisioning Profile决定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签名应用程序(Signing Product),将在应用程序打包时嵌入到.ipa包里。
关于在PC上使用UE4引擎打包iOS应用
原理:归根到底你还是需要一台MAC电脑,上面也说了,iOS打包具有其他平台不具有的封闭性,所有信任授权,证书校验,IPA包的编译都需要在MAC环境下进行。所以UE4在PC端采用了远程SSH协议调用MAC上的Xcode中的打包工具xcodebuild进行了打包编译。
既然还是需要MAC,那为什么不直接在MAC上进行打包编译呢,而是要用PC进行远程打包,岂不是舍近求远吗?这个问题其实很好解答,虽然是UE4引擎也支持MAC平台,并且最新的版本也更新到了4.20.1。但是,在实际操作中UE4引擎在MAC上的运行体验并不让人满意,我指的不是功能体验,而是性能体验,说白了,大型渲染在MAC上根本就跑不动,直接卡死。所以笔者果断放弃了MAC平台上采用UE4开发的想法和做法,切换到了windows平台。在mac平台上仅仅保持了远程打包的功能。而且如果是多人开发的话,其实都采用windows开发,都在固定的某一台mac上进行打包,这样也更保证了团队开发的统一性。
UE4打包iOS配置
方案一、使用Windows系统的UE自带的IPhonePackager:
1. 打开“引擎安装目录\Engine\Binaries\DotNET\IOS\IPhonePackager“
2. 打开后会让你选择一个.uproject文件,也就是你要打包的项目
3. 点击Create certificate request and a key pair
4. 填好Email Address 和 Common Name
5. 点击Generate a key pair
6. 选择保存位置,点击保存,会生成一个.key文件
7. 点击Generate Certificate Request
8. 选择保存位置,点击保存,会生成一个.csr文件
9. 打开https://developer.apple.com/account/ios/certificate/
10. 点击右上角的+按钮,准备为你的开发者账号添加一个证书。
11 点击Continue。
12 这一步是教你怎么创建.csr文件,我们已经有了,点击Continue
13 上传我们刚刚生成的.csr文件,点击Continue
14 现在证书已经生成并添加到了你的账户中,我们可以下载下来了,下载后是一个.cer文件,记得双击安装到你的PC上。
因为我已经安装过了,所以在终端中帮我显示出来了已经配置好的证书信息。其实在5步中生成的key很重要,相当于是一个秘钥,在后面上传的.csr文件的时候,都会需要你首先上传该秘钥进行校验的。具体的步骤可以参考这里。
方案二、在MAC上创建并导出证书到Windows上
1、如上述制作好cer、provisioning之后,下载到mac上,双击安装,xcode会自动安装。
2、从钥匙串中找到该证书,并导出为p12证书拷贝到windows上。
3、在UE4中配置导入IOS证书
需要配置budle information
1.displayname 你的APP名字
2.bundlename ios 中的bundlename
3.包标识符 你的项目中或者说证书中的appid的标志符
初次之外,windows中还需要设置远程打包
1.远程服务器名称:此处输入你的MAC电脑的本地IP地址
2.同步用户名:此处写你的MAC电脑的用户名
3.点击生成SSH键。会自动帮你打开终端,执行生成ssh key的命令,一般如果是第一次生成的话,会首先提示你是否要生成,输入yes ,然后会让你输入你的MAC电脑的密码。接著连续2个回车,然后再让你是输入MAC电脑用户密码即可。生成key之后,该地址会自动更新到 fond exciting ssh permissions file中。
最后需要注意的是,如果你要打包生产环境的IPA,那么还需要在打包设置中勾选环境设置。
好了,最后你可以直接文件中选择打包项目,并选择iOS项目进行打包
总结:本篇主要讲述UE4跨平台打包iOS的流程,有很多的细节和坑可能每个人遇到的都会不一样,我在这里就不一一细述了,如果大家遇到了问题,或者有不明白的地方,都可以私信或者评论问我,我有时间都会尽量回答的