发布
发布

Android 应用程序签名

更新时间: 2024年7月31日
提交应用审核前,您必须使用 Android 证书为发行版应用签名。

签名要求

Android 使用数字证书(又称为密钥库)来以加密形式验证应用程序作者的身份。所有 Android 应用程序都必须使用数字证书签名,才能在 Android 设备上安装和运行。
在提交应用程序供 Meta 审核前,所有开发者都必须创建自己独立的数字签名,并为其应用程序签名。如要了解更多信息,请在 Android 文档中查看为应用签名apksigner
请务必保存好用于应用程序签名的证书文件。您的应用程序的全部后续更新都必须使用同一证书文件签名。
Meta Quest 目前要求使用 3 种 APK 签名方案中的 v1 签名方案或 v2 签名方案。虽然目前不强制要求使用 v3 签名方案,但是我们也允许额外使用 v3 签名方案为应用签名。您应根据应用的目标设备来决定使用哪一版本的签名方案:
目标设备签名方案版本更多详情
Meta Quest/Meta Quest 2
v2 签名方案和 v1 签名方案
您必须在清单文件中添加头部追踪功能,才能使用 v2 签名方案。如要了解更多信息,请参阅 Android 应用程序签名
Go
v1 签名方案
v1 签名方案基于 JAR 签名。请查看应用程序签名(Android 文档)
Go 和 Meta Quest
使用 v1 方案签名;但如果应用使用头部追踪功能,就要使用 android:required="false" 标记清单文件

验证签名

您可以使用 apksigner 工具来验证 APK 签名。如要验证签名,请使用以下命令:
$ apksigner verify --verbose ~/path-to-apk/app-name.apk
您应该会查看到与以下内容类似的输出结果:
Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1

在 Unity 中设置 Android 应用程序签名

Unity 默认使用临时调试证书自动为 Android 应用程序签名。在构建最终发布的编译版本前,新建一个 Android 密钥库,并通过“Use Existing Keystore”(使用已有密钥库)选项分配该密钥库。该选项位于 Edit(编辑)> Project Settings(项目设置)> Player(玩家)> Publishing Settings(发布设置)中。如要了解更多信息,请在 Unity 文档中查看 Android 玩家设置:发布设置

Unreal 签名

GitHub 中的最新版 Unreal Engine 支持 v2 签名方案。如果您使用旧版 Unreal,并计划发布 Meta Quest 应用,则需要编辑清单文件,以使用正确的签名方案,或手动修正正在使用的 Unreal 版本,从而为应用正确签名。如要了解更多信息,请在 Unreal 文档中查看为要发布的项目签名

密钥库

如果您没有 Android 密钥库,请按照上方链接的内容,根据您偏好的游戏引擎平台的指示创建自己的密钥库,或者在 Android 开发者网站查看“为应用签名”页面,以便使用 Android Studio 生成密钥库。