如何使用 Play 应用程序签名和应用程序包设置 Unity 应用程序并将其部署到 Google Play?

How do I set up and deploy a Unity application to Google Play using Play app signing and app bundles?

使用应用程序包和 Play 应用程序签名是目前 google 推荐的在 google Play 上部署新应用程序的方式。从 2021 年 8 月开始,新应用将强制使用这些格式。

如何在 Unity 中进行设置,以及如何在 Google Play 中配置应用程序?

我还没有将 2019.4 应用程序包构建成功上传到游戏机,所以在开始之前升级到 2020.3 LTS 可能是个好主意(因为这最终对我有用。

正在配置 Google Play 应用签名

首先在 Play Console 中创建一个新应用,为其命名,接受条款等

然后,点击左侧菜单中的Internal testing,新建一个内部版本。

在第一个问题中,单击 Change App Signing keyUse a different key,然后单击 select 第三个选项,您可以在其中上传现有密钥(以及添加上传的可选步骤键)到 Google 播放。

现在,不要只按照 Google 播放中列出的说明进行操作,因为您最终会得到一个 Unity 不知道如何处理的上传密钥存储。

相反,我们将使用 Unity 创建两个密钥库和两个密钥。第一个是应用签名密钥,您只需在将其上传到 Google Play 时看到一次,然后 Google 将处理它并使用它对您的应用进行最终签名在您上传应用程序包之后。

转到Player settingsPublishing SettingsKeystore ManagerCreate new in dedicated location

您不需要填写所有内容。只是密码、密钥别名和密钥密码。你怎么称呼钥匙并不重要。暂时不要将 Unity 配置为使用此密钥(我们将为 Unity 创建另一个密钥和密钥库以供稍后使用)。

按照说明 1.-3 进行操作。在 Google 播放以使用 pepk 工具上传此新密钥。

然后,您需要创建上传密钥和密钥库。 Unity 将使用此密钥对您的应用程序包进行签名。同样,不要使用 Google Play 上的说明来创建此密钥,而是使用 Unity UI 创建另一个与 Unity 配合良好的密钥存储。

密码和别名可以是任何你想要的我将我的密钥命名为 uploadkey,但请确保将密钥库和密码保存在安全的地方,稍后你将需要这些,否则你将不得不创建新键并与 Google 支持重置它。

出现提示时,单击“是”将您的项目配置为使用此新密钥。

创建密钥存储和密钥后,将其 public 密钥导出为 .pem 格式...

keytool -export -rfc -keystore upload.keystore -alias uploadkey -file upload_certificate.pem

...并将其上传到 Google 播放。

点击 Update,然后点击 Play 管理中心的 Continue

Play 商店现在应该可以接受您的 .aab 个文件了。

配置 Unity

希望您的项目现在已设置为使用您刚刚创建的上传密钥进行签名。

确保通过 Player SettingsOther Settings Override Default Package Name 自行设置包名称。只输入适合小写字符的内容,默认的包名称有大写字符,我认为这只是在寻求问题。您以后无法更改此设置,否则您将不得不创建一个新的 Play 商店条目,因此请确保它是客户可以接受的内容,即 com.yourcompany.gamename.

在播放器设置中启用 64 位版本也是一个好主意,否则,google 稍后播放会报错。将 Scripting Backend 切换为 IL2CPP 然后勾选 ARM64:

在构建设置中勾选 Build App Bundle

单击 Build 并构建您的 .aab 文件

然后将其上传到 Google Play 管理中心:

如果幸运的话,一切顺利,您可以点击保存并准备好开始测试您的应用。

如果没有,您可能会收到有用的错误消息,在这种情况下,请按照它们进行操作,如果没有,并且它们真的是非描述性的(例如“无法上传。请重试。”),然后尝试暂时上传一个 .apk,因为它有时会提供更好的错误消息,然后在您解决问题后切换回 .aab。

在 Unity 2020.3 中,您可以在 Unity 中使用在 Android Studio 中生成的 jks 上传密钥,并保留“让 Google 管理您的密钥...”selected。

要生成密钥,请安装 Android Studio 并创建一个空的 Android Studio 项目,然后在 gradle 稳定下来后,选择“构建”>“生成签名包”。当它提示输入密钥库时,创建一个新密钥库并将其保存在您想要的位置。取消,然后在 Unity 中 select 您在发布设置中保存为密钥库的 jks。

您应该能够使用 jks 作为自定义密钥库在 Unity 中生成 aab 包来上传,并且仍然让 Google 按照他们的建议管理签名密钥。