虚幻引擎4 iOS游戏发行功能

问候。

在本文中,我将列出在iOS上发布游戏时遇到的困难和非显而易见的时刻,以及它们的解决方案。

该游戏开始在Unreal Engine 4.18上创建,现在商店中的最后一个版本使用UE 4.24。在我开始在iOS上发布游戏之后,游戏最初是在Android上发布的。

图片

谁可能对该文章感兴趣:

  • 决定将其作品放到App Store中的UE 4游戏开发人员。
  • iOS应用程序开发人员(本文的某些部分仅谈论Apple生态系统,而不受UE 4约束)。


免责声明:
  • .
  • — , , .
  • - .
  • - , .


扰流板
51 , iOS, «The status of your app, Sokopango, is now „Ready for Sale“.». 40 .


1. App Store Connect中的第一步


1.1 Apple ID程序验证


用虚拟卡支付会员费(注册/加入Apple Developer Program)后(通过互联网进行支付时,我需要输入“ DIGITAL CARD”而不是我的名字-这是在我的银行,您可能有其他持卡人),有必要确认身份,因为 我的帐户信息与持卡人的数据不匹配。
这是检查我的注册人员的来信的一部分:
...
要继续您的Apple开发人员计划注册,我们必须验证将使用该帐户的开发人员的身份。

请上传开发者的带照片ID的副本。该ID必须符合您所在地区的验证要求:

  • 政府签发的护照
  • 有效(未过期)
  • 包含罗马字母的名称*

*如果ID不包含罗马字母名称,则还必须上传经过律师认证的英语翻译。
...

我很幸运,我有有效的护照。我扫描了一下并寄回了这封信。那天我加入了Apple Developer Program。

因此,如果您从持卡人信息与您的姓名不同的卡上付费,则准备确认开发者的身份。

1.2付款确认


如果该应用程序有利可图(已付款或内置购买),则必须在个人资料中指定付款数据。

我们去:

  • App Store Connect
  • 协议,税收和银行业务
  • 我们转到“付费应用程序”。
  • 我们填写必要的数据。这将是联系信息,税表和货币银行帐户的指示。在“实益拥有人类型”的税表中,我表示“个人/独资经营者”,因此,我总是表示我的个人数据(姓名和电话号码),也表示我在一分钟内在银行的个人账户中开立的外币账户。
  • 我们发送验证,等待确认和“活动”的珍贵状态。

您还可以在工作流程中了解有关配置应用内购买的信息

1.3用于预览应用程序的视频


在应用程序页面的设置中,除了屏幕截图之外,您还可以下载更多视频。只需将YouTube视频的链接插入Google Play。在App Store中,不同的引用:
要下载视频以预览应用程序,必须使用Safari和OS X版本10.10及更高版本。
事实证明,可以从任何操作系统上的任何浏览器下载图片,而只能从Safari上下载视频,而Safari仅在MacOS上可用。

我已经有一个完整的视频,但是不适合两边的大小。

视频的简要说明(视频加载失败时,App Store中的错误文本):
  • iPhone 6.5英寸显示屏-“应用预览尺寸应为:1920x886、886x1920。”。
  • iPhone 5,5‑ — «App preview dimensions should be: 1920x1080, 1080x1920.».
  • iPad Pro (3- ) 12,9- — «App preview dimensions should be: 1600x1200, 1200x1600.».
  • iPad Pro (2- ) 12,9‑ — «App preview dimensions should be: 1200x900, 900x1200, 1600x1200, 1200x1600.».
在这里,您可以查看应用程序视频预览的规范。

该规范列出了针对不同设备的更多权限。对于我的页面,上面列表中有4个具有权限的视频。

我不想制作新的视频,必须编辑现有的视频。为了更改分辨率,我在互联网上找到了第一个更改视频大小的站点。通过在图片上添加黑条来更改分辨率。对我来说,这是可以接受的。

另外,我的视频时长超过30秒(这是预览时的最大值),因此我不得不将其剪切一些。

也使它成为第一个出现的在线编辑器。

1.4其他


  • 惊讶的是没有街机游戏类别。
  • 与Google Play不同,您无法在购买中设置任意价格。

2.项目组装


2.1项目设置


所有信息都在文档中我分别查看ActionRPGUnrealMatch3模板项目中的设置(“ Build ”和“ Config文件夹,以及“ ProjectName.Target.cs ”,“ ProjectName.Build.cs文件-我从那里得到了很多。 确保至少有1个证书,配置文件和标识符(应用程序ID /捆绑包ID),以便将应用程序组装并放置到App Store中。 我曾经/曾经:





  • 2个证书-用于商店(类型为“ iOS发行版”-带有此证书的程序集将被上载到App Store Connect)和用于测试(类型为“ iOS开发”-当应用程序通过USB直接上传到iPhone时)。
  • 1个标识符。
  • 2 ( ) — . UDID iTunes.
  • 2 — ( , ).

2.2 MacOS


由于苹果公司的政策,您需要MacOS才能为iOS构建项目。我有Windows,无法在Linux下进行交叉编译。

在我的AMD Phenom上已经尝试了安装/运行虚拟MacOS映像的徒劳尝试。
我不得不停止租用虚拟机。我搜索并找到了这项服务

注册和付款相结合,即 您不仅可以注册,还必须立即付款(我是第一次看到此信息)。我以每月34.99美元的价格购买了关税macOS Mojave Cloud Basic。注册/付款后,我立即收到一封包含说明和访问权限的信。

要访问远程服务器,您将需要安装NoMachine Enterprise Client。
我进去,更新了操作系统(不是最新版本)并安装了Xcode。

2.3远程编译


租用了VPS,设置了项目,设置了Xcode-现在该构建项目了。

但是首先您需要配置远程编译,阅读文档

您还需要暂时禁用现有的SSH客户端,否则在远程编译期间会出现与rsync相关的错误(我不记得该错误文本)。

我有Windows 10,我刚刚将文件夹重命名为“ C:\ Windows \ System32 \ OpenSSH ”。
之后,在终端中,您可以运行命令“ where ssh.exe ”以验证操作系统没有可用的SSH客户端。我的回答是“信息:我无法根据给定的模板找到文件。”。

帮助帖子

在我的VPS中,不需要配置SSH-一切开箱即用。

我不记得为什么要自己保存,这是一篇有关设置远程项目构建的文章-突然间它将派上用场。

2.4关于项目的组装


我的集会平均需要20到50分钟。 20分钟后,内容不会更改,但可以修复配置中的某些内容。

但是,如果引擎进行了更新,或者内容发生了严重变化,则组装可能会增加。平均增加了50分钟。

在VPS上进行远程编译时,将复制引擎源代码,项目,临时文件等。所有这些都位于“ [Home] / UE4 / ”中。

根据项目设置,生成的IPA文件可能具有不同的大小。
接收到的文件的大小仅受选项“构建配置”(项目设置-项目-包装)-开发或运输的影响。

“ For Distribution”标志以及所选的证书和配置文件不会影响大小。

唯一设置了“ For Distribution”标志的是必须选择“ Distribution”证书和配置文件,否则将无法组装项目。

同样,当设置了``For Distribution''标志时,在文件中添加了``Distro_''前缀,并且在Shipping组装期间添加了后缀``-IOS-Shipping''。

例如,我的程序集的尺寸:

  • 开发建设-186 Mb。
  • 运输组件-491 Mb。

这两个文件都可以通过USB上传到手机进行测试。

至于在运输大会期间获得的大文件,据我了解,它包含用于不同设备的资源。

这是在App Store Connect中此文件上显示的信息:

图片

2.5组装错误和解决方案


2.5.1配置文件问题


错误:
找不到规定。需要准备将您的应用程序部署到设备。
找不到签名密钥。无法对应用进行数字签名,因为未配置签名密钥。
...
解决方案:从目录“ C:\ Users \ [UserName] \ AppData \ Local \ Apple Computer \ MobileDevice \ Provisioning Profiles ”中删除配置文件,然后将其重新导入到项目中。

由于我同时在编辑器设置和IPhonePackager中导入了配置文件和证书,因此可能会出现错误。

结果,虽然应该有2个,但有几个。

2.5.2 Xcode问题


错误:
在/Library/Developer/CommandLineTools/Platforms/MacOSX.platform/Developer/SDKs中找不到无效的SDK MacOSX.sdk,
在/ Library / Developer / CommandLineTools / Platforms / iPhoneOSplpl中找不到无效的SDK iPhoneOS.sdk

解决方案:在终端中,运行命令“ sudo xcode-select -r ”。

2.5.3。与rsync相关的其他错误


错误:
  • 某些文件/属性未在/home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/main.c中传输(请参见先前的错误)(代码23)。
  • rsync错误:IPC代码中的错误(代码14)
  • 其他
解决方案:重新启动程序集。有时我必须重新启动2-3次才能使项目继续进行。此外,组装可以在开始和结束时中断。

2.5.4。开发构建失败


错误:
Provisioning profile «Development» doesn't match the entitlements file's value for the get-task-allow entitlement
Code signing is required for product type 'Application' in SDK 'iOS 12.2'

解决方案:这篇文章有所帮助
标识符列表中,我转到了右边的标识符,在iCloud上设置标志,并将其保存。
有一则消息,描述文件将变得无效-并发生了。
尝试构建(用于验证)是错误。应该是这样。
再次我转到了标识符,现在我删除了iCloud上的标志,并将其保存。
组装成功。

然后,我必须从项目中删除无效的配置文件并创建新的配置文件。或者,您可以尝试登录该站点上的概要文件,将其保存在本地,然后将其重新加载到项目中。

2.5.5证书发行


错误:
密钥不能在指定状态下使用

我从项目设置中删除了证书,尝试再次添加它们,添加时需要输入密码。再次汇编出现错误,我不记得是哪个。

解决方案:删除证书(从证书存储区,请参阅第2.6.a节)和配置文件(从目录中,请参阅2.5.1 ),重新生成(如果需要),导入到项目中。

我做了什么-我没有导入现有的证书和配置文件,而是重新生成了所有内容,然后将其添加到项目中。添加证书时,不再需要密码,但需要指定文件“ * KeyPair.key ”。
之后,该项目成功组装。

2.6关于证书的一些知识


  1. . IE, , . " MMC".
  2. 2 , 2-3 , «Maximum number of certificates generated». , , .

3


3.1


当通过USB安装应用程序时,要在电话上进行测试,您需要使用开发证书和开发配置文件以及指定的设备UDID。
因此,应使用此证书和配置文件组装项目。正如我在上面所写,在“构建配置”中选择哪个选项无关紧要-开发或运输,但应取消选中“用于分发”标志。

3.2 IphonePackager


通过IPhonePackager程序(路径“ [EnginePath] \ Engine \ Binaries \ DotNET \ IOS \ IPhonePackager.exe ”)安装该应用程序
启动时,将打开一个用于选择项目的对话框,必须将其关闭。在打开的程序中,转到“高级工具”选项卡-单击“将IPA安装到硬件...”按钮-选择一个ipa文件-等待成功安装。
我在手机上的安装需要20到80秒(取决于文件大小和月相)。

我经常无法通过IPhonePackager安装该应用程序(在过渡到UE 4.24之前是实际的)。

错误(在UE 4.24之前): “ FileName.ipa的安装\更新“由于包提取失败而在...中出现错误”

错误的特殊性在于文件发送挂起(部分发送),或者非常快地复制到电话中(例如每秒半GB)。

解决方法(并非总是能正常工作):将电缆重新连接到电话,或扎另一根电缆,或重新启动电话。但是有时这都没有帮助(尽管iTunes看到了电话),所以我不得不推迟测试。

3.3测试飞行


您还可以通过TestFlight测试应用程序。测试已关闭,受邀请。

在App Store的TestFlight下进行连接:

  • 在“ App Store Connect用户”小节中,添加您自己。
  • 在“测试人员和组”小节中,添加一组测试人员,然后添加将测试该应用程序的用户的电子邮件。他们将收到邀请函和一个使他们能够连接到测试程序的代码-安装要测试的应用程序。

测试人员所创建的组具有2个部分:测试器装配体
  • 测试人员 ”中的是要连接到测试的用户的邮件地址,以及指向这些用户可以用来安装应用程序的应用程序的链接。
  • 程序集 ”中的可用程序集可进行测试-将手动指定的程序集。

您还需要在手机上安装TestFlight应用程序

开发人员,管理员或帐户持有人无需输入代码。下载到App Store Connect之后,几乎可以立即获得该应用程序的最新下载版本。

但是应该邀请其他所有人(将发送激活码),并且将在测试人员组中指示的版本可用。

4在App Store上下载Connect


如果已安装UE版本4.24(需要X​​code 11)或更高版本,则需要Transporter将应用程序下载到App Store Connect

如果安装了UE版本4.23(需要Xcode 10)及以下版本,则使用Application Loader:
图片

在Transporter中,Apple ID凭据用于登录,在Application Loader中,仅需要从其登录,并且必须生成密码,您可以在其中阅读有关内容。官方页面使用应用专用密码

由于我具有Windows,因此需要将ipa文件传输到VPS。我正在使用Firefox发送服务对我来说很方便,因为您无需登录-打开网站,上传文件,接收链接,在虚拟机中下载文件。

5个游戏内购买


5.1 App Store Connect中的设置


在发送验证申请之前,我立即创建了游戏内购买。事实证明,它们与申请一起被检查/批准。
对于批准的购买,建议在
购物窗口的屏幕快照(每次购买)上附加一个屏幕截图,在该屏幕上可以看到购买按钮。我有1张截图用于所有购买。屏幕截图本身是从编辑器(而不是游戏)中获取并进行更正的。

因为屏幕截图应为特定尺寸(640x920像素),我不得不将图像的各个部分彼此压在一起。因此,屏幕截图和游戏中购物窗口的外观是不同的。

图片

购买按钮必须可见,即使单击时也没有任何反应。

首先,我隐藏了购买按钮,仅在收到有关它们的信息(价格,名称,货币等)后才显示它们-无需这样做。因此,我的申请和购买未通过验证。

5.2配置文件中的选项“ bUseStoreV2”和方法“ RestoreInAppPurchase”


默认情况下,为项目启用选项“ bUseStoreV2 = true ”,请参阅“ [EngineFolder] /Config/IOS/IOSEngine.ini ”。游戏内购买不适用于她。根据论坛和AnswerHub上的帖子数量,这个问题并不仅仅针对我一个人。

解决方案:我在文件“ [UnrealProject] /Config/IOS/IOSEngine.ini ”中注册了“ bUseStoreV2 = false。如果没有文件,我们将创建它-我们查看项目示例,或者在Internet上搜索。 当然,每次购物都必须输入Apple ID用户名/密码,但对我而言总比没有好,而且没有时间了解。 购买数据恢复不适用于我(方法“ RestoreInAppPurchase



”),最重要的是,虽然在Android上一切正常,但未显示购买价格(“ ReadInAppPurchaseInformation方法” )。一段时间后,我删除了“ RestoreInAppPurchase的使用(我有一个广告,可以将其关闭,但是随后我删除了该广告,因此也删除了此购买,因此无需恢复已购买的购买数据),然后奇迹般地,此后在游戏中加载价格。

6审核/验证


因为这是我的第一次。
15.06 — 1- , 14 . . , ( ). , , .

18.06 — 2- , 2- . , , . , , , .

21.06 — 3- . 9 , , .

30.06 — 4- , 9 . , 2.3.1 ( - ). , — . ( . 5.1), . . — , ( ). , . — , . , -, (. . 5.1). ( , , , ). , .

, , — , , . . , , , .

17.07 — 5- , 7 . , 2.3.1. . , , . . , , .

26.07 — 6- , 18 , 18 .

结论(主观):

  • 在Google Play上,我很容易在商店中检查该应用程序的批准情况,在这里每个人都会看到一个放大镜。也许这里有机器人,这里的人。有什么更好的?我不知道。
  • 大多数情况下,基于检查结果的答案均不包含任何需要解决的信息。
  • 不明显的时刻-购买被拒绝了,只有当我决定转到包含其设置的页面时,我才发现没有消息。
  • 为了加快验证的启动速度,请在Apple的所有实例中进行涂鸦-在解决方案中心内编写消息,提出上诉(来自解决方案中心),并向验证团队提出问题。

7文章摘要


我为自己准备的清单(与官方页面大致类似)已在iOS上发布该应用程序:

  1. 注册并支付参与开发计划的费用
  2. 如果您使用Windows,则可以将VPS与macOS一起使用。
  3. 在macOS上进行远程编译时,只需安装Xcode,Unreal Launcher / Editor / etc等。无需安装。
  4. .
  5. — 2 . — development distribution/shipping — .
  6. .
  7. .
  8. SSH MacOS . , , PyTTY.
  9. 项目汇编- 文章注意:使用“ For Distribution”标志进行组装时,需要选择分发配置文件/证书,否则请选择开发配置文件/证书。在项目设置或文件“ Config / DefaultEngine.ini ”部分的“ [/Script/IOSRuntimeSettings.IOSRuntimeSettings] ”中,选择MobileProvision / SigningCertificate-行。
  10. 设备测试- 文章

8结论


这一切都发生在2019年夏天。我可能会忘记一些事情,而不能以这种方式描述它,有些时候可能变得无关紧要。

如果这些信息对某人有帮助,我将感到非常高兴。

All Articles