写在前面:因为是详解,所以可能写的有可能啰嗦,也有可能有些步骤是你经历过的,那么请忽略它,向下寻找可能的答案,如果没能解决你的问题,那么对此感到很抱歉,没能帮到你,欢迎你给我邮件: bluecode66@yahoo.com,希望此文章能让你一站到底的打出包!

(本例以IPA包为说明对象,支持IPad和iPhone),并且你是单纯的Blueprint项目,那么你是不需要看太多IOS端编译的内容,只需要使用证书创建,签名打包即可(纯蓝图,可以通过PC端直接打包,这里官方文档已有说明)

使用的软件说明:

UE4  4.17.2

XCode  9.0.1beta版

itunes 当前博客日期的最新版

Visual Studio 2015 Commity Version

windows 7

macos 13.1(这个没有具体看,好像是的)

硬件:

mac mini (配置并不是很高)

PC不介绍了,大部分办公用的基本类似

1,项目的创建:

有两种可能(两者差别并不是很大,都是可以通过后期调节的,但我还是说说吧):一,创建的是桌面版,想要移植到移动端平台上(iphone,ipad),可能是不支持ios,mac的,那么你需要依次进入UE4的Edit->Project Setting->Supported Platforms中选择对应的平台(ios),项目目标硬件的选择:Edit->Project Settingf->Project->Target Hardware->

Optimize project settings for ->Mobile/Tablet(选择它会提示一些效果的更改(pending Changes),并提示重启编辑器,我觉得应该修改一下,对你项目的提前预知一些渲染效果有帮助),如果你不想使用基本的游戏虚拟摇杆操作(或者添加操作)那么你需要在项目设置里一次操作:Input->Mobile->Default Touch Interface.二,如果你开始是以移动端创建的,那么,不用很大的调节就可以的,暂不赘述。

2,添加C++源码及重构已有代码:

或许你的代码在PC端能够良好的运行,但为了能够在IOS里跑起来,你需要做到面面俱到,把该包含的头文件都包含在内,以免打包时找不到连接的头文件(例如UWorld类型,需要包含头文件Engine/World.h,也许,需要在项目里进行一些配置,但我也没有具体时间研究了),否则的话,打包输出中会出现很多的错误,基本上都是找不到变量类型问题。

3,如果,你确保平台配置及渲染配置问题没错的话,那么接着就是重头戏了,证书签名及远程mac配置,PC端配置(确保自己有开发者账号):

一,首先证书相关内容(两种):第一种mac端钥匙串工具生成:“钥匙串访问”-》“证书管理”-》“从证书颁发机构请求证书”-》填写邮箱-》常用名称(证书管理器里的Key名,最好起个合适易用的)-》选择保存在桌面-》生成证书请求文件,登录到你的开发者账号:找到Certificates->Identifiers&Profiles,进行一系列的注册:

1,选择图片中提示的第一步All,点击右侧加号,添加证书生成内容:

选择你要生成的内容,是最终产品还是ios development(我的是开发测试用的,所以选择了这个,根据个人情况,自行选择),接着是上传刚才生成的证书请求文件,保存,下载证书到指定的文件夹,最好放在桌面,能够很快找到。

接着第二步,添加项目识别内容,主要是Bundle Identifier内容和Bundle Name内容

这里一定要记住bundle Name 和 Bundle  ID和UE4项目中的Bundle Name,Bundle Identifier内容要对应,尤其是后者,是判定证书是否有效的关键,其他的根据项目需要选择额外的支持内容。

第三步添加设备标识:

名字随便起,但UDID是一定的,它是你的iPad,iPhone移动端的唯一标识,可以通过iTunes点击序列号查到,也可以通过UE4的IPP(后面会说道,IPP证书生成)查到

(这个工具还是蛮强大的能够检查你的UDID是否正确,并且查询你的移动设备UDID,并配置证书等关于证书和怎么找到它,随后再说。)接着保存结果即可。

最后生成mobileprovision文件,这里结合截图说明:

该生成ipa的用途,是iOS development,还是限量注册下载,还是其他,根据需要选择

选择App ID 就是第二步的内容

选择签名的证书,这里可以多选,如果你是第一次按照本文档做的,那么可以选择第一步的内容

填写名字,并查看绑定的设备,和证书内容量,最后保存,并下载内容,到此我们得到了Certificate 和 mobileprovision,保存好稍后使用

第二种证书配置(PC端完成):找到引擎安装目录一次进入:Engine-》Binaries->DotNET->IOS,点击IPhonePackager.exe执行文件,选择你的UE4项目文件:

然后会弹出一下,界面,老规矩,我们逐步走:

第一步,创建证书请求和键值对,点击第一个按钮:

这四步分别为:第一步填入你的开发者账号ID,第二步是你的开发者账号的名字,第三步生成key(你也可以选择已经生成的Key),第四步,生成请求证书文件(.csr格式的文件)。

接下来的内容和之前mac上基本类似了,到开发者账号上,注册内容,拿到证书和 mobileprovision文件

接着走之前图的第二步和第三步,分别导入mobileprovision文件和证书文件,导入证书时,需要key的,把生成的键值对文件导入即可(如果是mac端导出的证书,需要你个人设置的密码,就不需要key了,随后会提到),两个绿色的标示的话说明正确(如果没有绿色标示的话,不必慌张,到UE4项目里检查一下,Bundle Identifier是否正确,然后再回过头来整理)。最后就可以点击Ready to Package 按钮了,关闭,此流程执行完毕。

两种证书请求方式,说明完毕,接着需要配置mac一些内容了:

你必须确定正确安装好了UE4 和Xcode(UE4是否必须,我没有具体的看,但个人猜测是必须的,远程传送过来的内容有可能缺乏,引擎程序的库文件,及工具,编译时,需要进行连接,当然,只是猜测,如果你有时间的话,可以自己去测,也可以通过Output Log面板,仔细查阅打包流程,获得你想要的内容)。

之前提及了生成的两个内容。证书和mobileprovision文件,那么进行一下证书的处理:通过钥匙串工具,登录里安装你的证书,并允许一下权限:

点击登录的密钥,找到证书的密钥,双击,修改访问控制权限,选择第一个始终允许选项

接着把该密钥复制到系统密钥里,这一步很重要,否则会出现一下错误,切记!

接着是远程连接选项,你需要依次进入系统偏好->共享-》远程登录,启用该选项,并添加登入用户

苹果的配置基本上就那么多了,如果你是通过第一种方式申请的证书,你可以通过钥匙串管理工具,导出签名证书(需要输入证书密码,自己指定,但需要你记住该密码,因为在PC端使用时,你需要填写该密码),并把该p12格式的证书文件随mobileprovision文件,拷贝到PC端。如果你是通过第二种申请的证书和mobieprovision文件,那么,你需要下载从开发者网站下载这两个文件,并走以上步骤,把证书添加到系统里,并设置权限,mobileprovision文件则需要Xcode来管理,通过Xcode默认设置里的account来登入你的开发者账号实现。

mac端拷贝到PC端的p12格式的证书有两种使用方式,第一种是刚才说的IPP方式,你可以选则IPP里的第二导航栏里的内容,分别导入mobileprovision和证书,当导入证书时,需要你在导出时设置的密码。

第二种和PC端UE4项目配置有关,这里逐步说明UE4即PC端的配置,依次进入:Project Settings->Platforms->IOS->Mobile Provision

前两步和IPP的相同,不再说明,但是你需要勾选正确可用的mobileprovision及证书(其后有valid标识,当你修改Bundle Identifier时,如果正确,在你没有勾选时会显示成绿色,)第三步的Bundle Display Name可以根据项目来随意填写,第四步和第五步之前提及过,要和APP id里的一一对应

紧接着要设置远程连接内容了,依次进入:Proejct Settings->Platforms->IOS->Build

第一步设置为远程mac的IP地址(或者局域网里的【mac name】.local,比如说:Demon.local)

第二步是你的mac登陆名字

第三步是开始生成SSH Key,这一步也很重要,它是确保远程安全连接的关键,生成成功的话,会自动出现第四步生成的文件链接,否则,就是失败,你需要根据提示执行检查,比如说网络是否正常,在cmd里ping一下ip,mac登陆名是否正确(不能有空格),ip地址是否正确,是否链接了VPN,导致IP发生改变等。

那么SSH key里进行了什么内容,首先在你一切配置正确的前提下需要设置4步(如果提示输入任意键,就随意点击,如果导致窗口关闭,说明你的配置有问题):

第一步,提示输入yes或者no,键入yes,Enter键继续

第二步,提示键入password,键入mac的登录密码,Enter键继续

第三步,提示键入passphrase,不键入任何内容,继续

第四步,最后一步,提示键入password键入,mac的登录密码,Enter键关闭窗口,等待一下,会看到生成了SSH key文件链接内容

到此我们的一切配置基本,OK了,可以进行打包了,当然你还需要安装itunes,进而才能连接你的移动设备。连接上你的设备,并在移动设备上选择信任,在itunes上可以查看到你的移动设备内容,证明连接正常,那么可以打包了,good luck!

PS:一些错误的处理办法;:

如果有一下错误提示:

你可以在mac的bash里键入一下两个指令:

xcode-select  --print-path    //查询xcode安装路径

sudo xcode-select  --switch /path/Applications/Xcode.app/    //更新xcode路径

示例:

如果遇到下面问题(重要的问题说两遍):

如果你已经正确配置了证书的话,那么很有可能你忘记了把证书从登录密钥复制到系统下的密钥登录下。

如果提示代码上的错误,且在PC端编译正常,那么很有可能你忘记了,添加头文件在该成员变量所在的文件里

如果打包成功了,却意外闪退,那么,很有可能在你的.plist文件里缺少指定的键值对,比如说获取相机权限的键值对,你可以通过这样来添加:依次进入Project Settings-》

Platforms-》IOS-》Extra PList Data,在空格里输入键值对,你也可以找到.plist直接添加:依次进入Project->Intermediate->IOS.

其他文章参看:

点击打开链接

点击打开链接

到此,本篇文章就结束了,希望有所帮助,欢迎收藏,点赞,回复……

UE4 IOS打包详解相关推荐

  1. FreeEIM 来点新知识iOS UIScrollView详解

     老程序员FreeEIM 来点新知识iOS UIScrollView详解 UIScrollView 顾名思义也知道这个是和滚动相关的控件,在Android开发时遇到过ScrollView,当内容的 ...

  2. iOS绘图详解-多种绘图方式、裁剪、滤镜、移动、CTM

    iOS绘图详解 摘要: Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎.它提供了低级别.轻量级.高保真度的2D渲染.该框架可以用于基于路径的 绘 ...

  3. UE4 输入系统详解一、 UE4如何获取win系统输入消息

    UE4 输入系统详解一. UE4如何获取win系统输入消息 UE4版本:4.253 按键输入 1.当我们按下键盘时输入时,FEngineLoop::Tick()里的每个tick执行的PumpMessa ...

  4. UE4移动组件详解(二)——移动同步机制

    第一部分从移动相关架构以及单机情况下移动的处理细节讲起 UE4移动组件详解(一)--移动框架与实现原理 而第二部分是关于移动组件同步解决方案的描述,里面有诸多细节来让移动的同步表现的更为流畅.关于移动 ...

  5. linux中的文件夹压缩文件,linux将文件拷贝到目录下Linux下文件的压缩与打包详解...

    在Linux中,有很多的压缩命令.利用这些压缩命令,可以方便的从网络上下载大型的文件.同时,我们知道,Linux文件的扩展名是没有特殊意义的,不过,因为Linux下存在着许多压缩命令,所以为了方便记忆 ...

  6. IOS UIView详解

    文章目录 IOS UIView详解 1.官方类分析 2. UIView 常用的属性 2.1 UIView的圆角加阴影效果的实现 2.2 UIView 属性 2.2.1 UIView 几何属性 2.2. ...

  7. UE4移动组件详解(三)——RootMotion与特殊移动模式的实现思路

    更多相关内容参考 UE4移动组件详解(一)--移动框架与实现原理 UE4移动组件详解(二)--移动同步机制 五.特殊移动模式的实现思路 这一章节不是详细的实现教程,只是给大家提供常见游戏玩法的一些设计 ...

  8. 视频教程-FPS游戏逆向与安全+UE4引擎基础详解-其他

    FPS游戏逆向与安全+UE4引擎基础详解 想把自己的知识传播出去,让更多人学习到 苏瑞兵 ¥188.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取 ...

  9. iOS疯狂详解之AFNetworking图片缓存问题

    AFNetworking网络库已经提供了很好的图片缓存机制,效率是比较高的,但是我发现没有直接提供清除缓存的功能,可项目通常都需要添加 清除功能的功能,因此,在这里我以UIImageView+AFNe ...

最新文章

  1. 工作日志之个人统计篇
  2. c语言中oxb0常量是什么意思,C语言练习库V1.0
  3. php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. python爬虫网络请求超时_Python网络爬虫编写5-使用代理,处理异常和超时
  5. 实现自动带密码登陆远程机执行shell命令(linux)
  6. kafka自带的zk启动_Centos上将zookeeper和kafka设置为开机自启
  7. (75)Verilog HDL系统函数和任务:$readmemh
  8. JavaScriptCore框架在iOS7中的对象交互和管理
  9. ALTER TABLE----MySQL语法
  10. Qt控件总结:QToolButton
  11. iOS 第三方框架-SDWebImage
  12. 通信原理 | 信道的概念和实际信道
  13. 如何将PNG图像转换为word文档?
  14. 三菱plc指令dediv_三菱PLC指令[]学习指导书.ppt
  15. MSI GT60 16F4升级、超频、解锁功耗限制的研究
  16. 「数字电路系列」博文目录,学习总结
  17. 计算机画图如何把二寸照片修改为一寸,win7使用自带画图工具把照片调整成2寸的方法...
  18. 大数据与人工智能在物联网工程的应用
  19. Mysql服务器安装步骤
  20. Linux -- 手动配置静态IP

热门文章

  1. 网页安全之页面禁用复制粘贴
  2. VR资讯——局势明朗下的前景展望(V客学院知识分享)
  3. Leetcode刷题986. 区间列表的交集
  4. 【Django】Django Auth认证组件详述
  5. Unity 鼠标点击控制玩家角色移动
  6. 计算机程序UI设计员SWOT分析,计算机专业学生个人SWOT分析案例.doc
  7. java.util.stream.Stream案例解读
  8. 移动通信技术的演变:从1G时代到5G 时代大变迁
  9. html5行星环绕,Two.js实现星球环绕动画效果
  10. 取中文拼音首字母,提供了多音字的选择 js javascript c# java(转)