UE4在PC端打包iOS应用解析

       最近和周围的小伙伴都很痴迷腾讯的一款游戏《刺激战场》,逼真的场景模型和紧张的游戏情节总能让人欲罢不能,其实这个爆款游戏就是腾讯出品的首款采用UE4开发的游戏,据说当时是有UE4的中国区技术支持人员驻场帮助开发的,由此可见UE4的强大功能和巨大的潜力。 

UE4官网

您可以从这里来看了解更多的关于UE4的知识。

本篇主要讲述UE4在iOS端打包的流程和一些需要注意的坑。

UE4引擎的优点之一就是其卓越的跨平台特性。否则大家就不会看到iPhone上的《刺激战场》了。

其实iOS开发的同学都知道,iOS打包一直是作为一名developer的必备技能之一。之所以是一项必备技能,就是因为iOS打包机制相对其他平台而言,他的证书和校验机制相对封闭和复杂,如果不能理解其中的机制原理,很容易在打包的过程失败。

所以UE4打包iOS应用,归根到底还是iOS打包,只有先理解透彻了iOS的打包机制,那么在UE4引擎上打包iOS应用就也没有问题了。


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证书

設置->項目設置
點擊導入服務條款 即mobileprovision

需要配置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的流程,有很多的细节和坑可能每个人遇到的都会不一样,我在这里就不一一细述了,如果大家遇到了问题,或者有不明白的地方,都可以私信或者评论问我,我有时间都会尽量回答的

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • 引言关于开发证书配置(Certificates & Identifiers & Provisioning Prof...
    东了个尼阅读 3,519评论 0 4
  • 向日葵的觉识日记: 一、生活事件 1、这两天没出门,感受到身体有些累需要睡觉,静心,尤其一早上非要起来后在去睡几个...
    宇宙的向日葵阅读 231评论 0 2
  • 今日体验:一切的事物都源于自己。什么事都要多方面思考。从自身为出发点去找原因。 我是一切因。 一切是我心。 静下...
    AA京心达汽车维护中心阅读 194评论 0 0
  • 01. 开学的时候,我就记住了于烈这个人,是他在我做完自我介绍回到座位上时伸出脚把我绊倒,然后还像个没事人一样。 ...
    犹岸阅读 407评论 0 5