ue4 打包IOS(测试包)

时间:2024-04-04 11:11:52

首先,在打包IOS时,不管是否需要远程mac打包。

我们都需要证书文件(cer 或者 p12)和描述文件。

cer证书带有公钥,在生成时,需要csr(证书签名请求) ,安装cer需要私钥。

开发证书可以创建p12副本证书,用在其他电脑上。p12是带有私钥的证书。

 

下面的步骤包括:

1.证书与描述文件获取

2.项目打包基础设置

3.远程打包设置

 

关于证书与描述文件请看下面

https://www.jianshu.com/p/8eff18ad88b3【实用帖】苹果开发者账号证书详解

 

如果是只是测试用一下,没有付费的开发者账号,要获取证书文件(.p12)和描述文件(.mobileprovision),可以看这里,然后跳过步骤一

http://www.applicationloader.net/blog/zh/1073.html

步骤一

如果有付费开发者账号,可以通过下面两种方式获得证书文件(.cer)。

1.第一种, 使用UE4 自带的工具申请证书。

  1. 浏览到Engine\Binaries\DotNET\IOS\目录,并运行iPhonePackager.exe。

  2. 信息提供是对应每个项目的。 当提示时,选择您项目的.uproject文件,将其与iPhonePackager应用程序关联,然后点击 打开 。

    ue4 打包IOS(测试包)

    这个操作必须在您每次运行iPhonePackager应用程序时完成。 但是,它会记忆您选择的上一个项目的位置。

  3. 选择 新建用户 选项卡并点击 Create certificate request and a key pair(创建认证申请和密匙对) 。

    ue4 打包IOS(测试包)

    此时打开 Generate Certificate Request (生成认证申请)对话框。

  4. 输入所需信息,其中包括您的苹果ID的电邮地址和名称(或公司名称)。

    ue4 打包IOS(测试包)

  5. 点击 Generate a key pair(生成密匙对) 并选择一个位置以保存.key文件。

    ue4 打包IOS(测试包)

  6. 点击 Generate Certificate Request(生成认证申请) 并选择一个位置以保存.csr文件。

    此时 Generate Certificate Request(生成认证申请) 窗口关闭,您会返回主iPhonePackager窗口。

  7. 请转到苹果 iOS 开发者网站的iOS认证 页面。

  8. 点击ue4 打包IOS(测试包)按钮来生成新的认证。

  9. 选择 iOS App Development(iOS应用程序开发) 并点击 继续 。

        ue4 打包IOS(测试包)

    10.点击 继续 

    11.点击 Choose File(选择文件) 并选择您之前生成的认证签名申请 (.csr)文件,然后点击 Generate(生成) 

ue4 打包IOS(测试包)

12。下载认证(.cer)文件到您的电脑。

ue4 打包IOS(测试包)

2.第二种,在mac中申请。(这种情况可以获得cer,但是如果我们要在windows中的ue4中使用的话,cer 没有单独的私钥文件,所以我们都是从钥匙链中获取p12文件来用,关于怎么导出p12,请看最上面的连接)

第一种,通过钥匙串访问生成CSR 并从IOS认证页面生成

生成证书请求:钥匙串访问⟶证书助理⟶从证书颁发机构请求证书

ue4 打包IOS(测试包)

        填写开发账号邮件和常用名称,勾选“存储到磁盘” ue4 打包IOS(测试包)保存后的名称应该为:CertificateSigningRequest.certSigningRequest

        保存到磁盘后在你的钥匙串访问窗口应该会出两个**,一个公钥**,一个专用**,红色部分就是你在上面输入的常用名

ue4 打包IOS(测试包)

备注:CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的**的名字;之后在开发者中心将该CSR文件提交;

  1. 请转到苹果 iOS 开发者网站的iOS认证 页面。

  2. 点击ue4 打包IOS(测试包)按钮来生成新的认证。

  3. 选择 iOS App Development(iOS应用程序开发) 并点击 继续 。

        ue4 打包IOS(测试包)

    4.点击 继续 

   5.点击 Choose File(选择文件) 并选择您之前生成的认证签名申请 (.csr)文件,然后点击 Generate(生成) 

ue4 打包IOS(测试包)

    6.下载认证(.cer)文件到您的电脑。然后双击安装到钥匙链。

ue4 打包IOS(测试包)

第二种,通过XCode 生成

  1. 在Xcode下拉菜单中,选择 Preferences(偏好设置) 。

  2. 选择 Accounts(账户) 选项卡。 ue4 打包IOS(测试包)

  3. 点击左侧角落的加号按钮,然后选择 Add Apple ID(添加苹果ID) 。

  4. 输入您的苹果ID信息,然后点击 Add(添加) 。

  5. 选择左侧面板的苹果ID, 右边会出来一个详细信息面板,点击右下角的Manage Certificatesue4 打包IOS(测试包)

  6. 点击加号按钮,然后选择 iOS Development(iOS开发) 来完成认证生成过程。

  7. 这种情况时,证书文件已经安装到了钥匙链中了。

 

接下来是获取描述文件,也就是授权文件(.mobileprovision)

描述文件里包含了App ID , Certificates (证书), Devices(设备)。 说明生成描述文件需要用到这些信息。我们要打包或者在真机上运行一个应用程序,首先需要证书来进行签名,用来标识这个应用程序是合法的、安全的、完整的等等。然后需要指明它的App ID,并且验证Bundle ID是否与其一致。再次,如果是真机调试,需要确认这台设备能否用来运行程序。而Provisioning Profile就把这些信息全部打包在一起,方便我们在调试和发布程序打包时使用,这样我们只要在不同的情况下选择不同的profile文件就可以了。而且这个Provisioning Profile文件会在打包时嵌入.ipa的包里。

接下来我们需要先注册APP ID 和测试设备,然后再获取授权文件

所以接下来我们需要注册APP ID,也就是一个应用的ID

选择 “Identifiers”的 “App IDs”,点击“+”出现以下界面:

App ID Description 是一个App ID的描述,就是一个名字,这个名字可以随便取,通常我们可以与应用名称相同

ue4 打包IOS(测试包)

填写bundle ID: 这里就是我们需要在UE4项目中填写的 bundle ID

ue4 打包IOS(测试包)

服务中文翻译

ue4 打包IOS(测试包)

最后会有一个详细的内容列表,对应无误后,提交完成

ue4 打包IOS(测试包)

接下来我们需要注册用来测试的设备

如图,点击“+”,一个99美元账号只能申请100个设备。

ue4 打包IOS(测试包)

填写自己测试设备的名字和UDID,UDID在Xcode中可以查看,也可以用 爱思助手 等工具查看。UE4自带的工具也可以查看

ue4 打包IOS(测试包)

填好 name 和 UDID后,点击continue 就可以看到如下界面,点击“Register”就可以在苹果上登记了。

现在我们开始获取授权文件

打开https://developer.apple.com/account/ios/certificate/,点击页面左侧的Provinsioning Profiles分类下的All

点击右上角的+按钮,准备为你的开发者账号添加一个Provisioning Profile。 选择授权文件类型,下面罗列了iOS常的授权文件类型

ue4 打包IOS(测试包)

选择 iOS App Development, 点击Continue。

ue4 打包IOS(测试包)

选择我们刚刚生成的 App ID,选好后,点击“Continue”

ue4 打包IOS(测试包)

选择刚刚添加的证书,点击Continue。

ue4 打包IOS(测试包)

选择设备,设备可以选择全部设备,也可以按需选择你需要的设备:

ue4 打包IOS(测试包)

这里给我们的描述文件取一个名字,这个名字在以后的xcode中是看得到的,所以可以取一个好辨认的名字。取好名字后,选择“Continue”生成描述文件。

ue4 打包IOS(测试包)

生成好描述文件后,选择“Download”

 

步骤二

接下来我们配置UE4工程(是否远程编译都要先设置一下)

打开项目的项目设置 然后在“  移动设置”  部分的“ 平台   iOS” 下  ,按“  导入设置”  按钮导入您的设置,然后对“  导入证书”执行相同操作

ue4 打包IOS(测试包)

p12 证书需要 密码,而cer证书需要.key文件。 都导入成功后

然后在下面的Bundle Information 中,需要将Bundle Identifier 设置成你之前注册的APP ID的 bundle ID, 然后 你会看到 上面的证书与描述文件会变成绿色的。 表示配置成功了.

如果是纯蓝图工程就可以直接编译了。如果是c++工程等需要mac才能完成的编译项目请看步骤三

步骤三

远程编译ios包

我们只需要一台装有Xcode的 mac电脑或者mac虚拟机 即可。这里并不需要安装开发证书

首先需要设置mac电脑的远程登陆,打开mac的系统偏好设置,找到共享

勾选远程登陆, 让电脑可以通过启动SSH远程登陆。

ue4 打包IOS(测试包)

然后打开项目的项目设置 然后在“  移动设置”  部分的“ 平台   iOS” 下  ,找到Build

 ue4 打包IOS(测试包)

修改如下设置为你需要连接的mac电脑的ip地址

Remote Server Name:mac 的iP地址

修改如下设置为登陆mac电脑的用户名

Rsync User name : mac 登录的用户名。

 

然后点击下面的 Generate SSH Key。然后弹出如下对话框

ue4 打包IOS(测试包)

这里有几个提示必须看一下:主要根据弹出窗口中的提示进行 SSH 设置。此处的额外步骤将助您完成此操作。

  1. 如 host 无法被认证,在弹出提示中输入“yes”。

  2. 输入 Remote User Name 中指定的用户密码。

  3. 弹出提示将要求输入口令。建议不指定口令,以便脱离用户交互进行使用。

  4. 之后将弹出提示再次输入用户名的密码,完成操作。

现在我们按任意键继续:

ue4 打包IOS(测试包)

根据上面的提示出现这个我们直接输入yes

 

然后这里让我们输入登陆mac的密码

ue4 打包IOS(测试包)

 

有可能中间会断开,这时候不用管,直接一路回车到最后就可以了

看一下ue4 打包IOS(测试包)这里如果是空的,就继续点击Generate SSH Key按钮

ue4 打包IOS(测试包)

第一次输入登陆mac的密码,然后会出来一个Enter passphrase, 这时候一路回车就可以了,直到出现再出现passward,这时候再次输入mac登陆密码,然后回车,私钥就下载下来了

 

然后你会看到ue4 打包IOS(测试包)

表示,私钥已经下载下来了。

 

这里有一个bug,就是这里的私钥直接使用有可能这个会出现下面的错误(参照这里 https://answers.unrealengine.com/questions/844683/view.html

ue4 打包IOS(测试包)

 

这个貌似是路径问题,解决方法就是我们把这个私钥复制到一个比较简单的路径中,然后在Override existing SSH Permissions file 中指定它

ue4 打包IOS(测试包)

 

然后我们就可以打包了。

第一次打包,速度会比较慢,因为会上传大量引擎的文件到mac中, 目录就在 ~/UE4 中