应用凭证
了解Android和iOS应用程序所需的应用凭证。
Expo自动化了为Android和iOS签名应用的过程,但在这两种情况下,您都可以选择提供自己的覆盖。EAS Build可以生成签名或未签名的应用程序,但要通过商店分发您的应用程序,它必须是一个签名的应用程序。
在本页面上,您将了解每个平台所需的凭证。如果您想了解我们如何在我们这边存储您的凭证,请查看我们的安全文档。
Android
Google要求所有Android应用程序在安装到设备或更新之前都必须使用证书进行数字签名。通常,一个私钥及其公共证书存储在一个密钥库中。过去,上传到商店的APK需要使用应用签名证书(一个将附加到Play商店中的应用程序的证书),如果密钥库丢失了,就没有办法恢复或重置它。现在,您可以选择使用Google Play的App签名,并简单地上传一个使用上传证书签名的APK,Google Play将自动将其替换为应用签名证书。旧方法(应用签名证书)和新方法(上传证书)本质上是相同的机制,但使用新方法,如果您的上传密钥库丢失或受到威胁,您可以联系Google Play支持团队来重置密钥。
从Expo构建过程的角度来看,无论应用程序是使用上传证书还是应用签名密钥签名,都没有区别。无论如何,eas build
将生成当前与您的应用程序关联的密钥库签名的**.apk或.aab**。如果您想手动生成上传密钥库,可以按照创建原始密钥库的方式进行。
查看Android的文档以获取有关此过程的更多信息。
Google Play的App签名
当您第一次上传发布到Google Play时,您将看到一个关于"Google Play的App签名"和"Google正在保护您的应用签名密钥"的通知。这是默认行为,除了按"继续"外,不需要您采取任何行动。
如果您目前管理您的应用签名密钥,并希望Google为您管理它,请参见使用Google Play的App签名。
丢失了您的密钥库?了解如何在Google Play上重置您的上传密钥。
要将您的Expo密钥库与Google同步,请按照以下步骤操作:
-
在终端窗口中:
- 运行
eas credentials
- 选择
Android
作为平台和您希望下载凭证的配置文件。 - 选择
credentials.json: 在EAS服务器和您的本地json之间上传/下载凭证
- 选择
从EAS下载凭证到credentials.json
您的应用程序的密钥库应该是私有的。在任何情况下,您都不应将其检入到您的存储库中。 调试密钥库是唯一的例外,因为我们不使用它们来上传应用程序到Google Play商店。
- 运行
-
将密钥库导出为
pem
格式一旦您下载了凭证和密钥库,请将其导出为
pem
格式,以便您可以将其提交给Google:- 在您的
credentials.json
文件中找到keyAlias
键下的密钥别名。 - 使用
keytool
导出证书:keytool -export -rfc -alias alias_from_step_1 -file certificate_for_google.pem -keystore ./path/to/keystore.jks
- 在您的
-
联系Google支持
联系Google支持,并请求他们使用此支持表单更改您的密钥。在填写表单时,附上从密钥库导出的
pem
文件。一旦Google在您的账户上更新了这个,通过
eas build
创建的构建将被正确签名,符合Google Play商店的预期。请注意,Google将将新上传证书的有效起始日期设置为72小时后,因此在执行此过程后的第一次提交之前,您需要等待。
iOS
与您的Apple Developer账户相关的3个主要iOS凭证是:
- 分发证书
- 配置文件
- 推送通知密钥
无论您是让EAS处理所有凭证,还是您自己处理,了解每个凭证的含义、使用时间和地点以及它们过期或被撤销时会发生什么都是有价值的。您可以通过运行eas credentials
来检查和管理所有凭证。
分发证书
分发证书是关于您,开发人员,而不是关于任何特定应用程序的。您可能只有一个与您的Apple Developer账户关联的分发证书。
这个证书将用于您所有的应用程序。如果这个证书过期,您在生产中的应用程序不会受到影响。但是,如果您想上传新应用程序到App Store或更新任何现有应用程序,您将需要生成一个新的证书。 删除分发证书不会影响已经上架的应用程序。您可以通过运行eas credentials
并按照提示来清除Expo当前为您的应用程序存储的分发证书。
推送通知密钥
Apple推送通知密钥(通常缩写为APN密钥)允许相关应用程序发送和接收推送通知。
您可以最多有2个APN密钥与您的Apple Developer账户关联,并且一个密钥可以与任意数量的应用程序一起使用。如果您撤销了一个APN密钥,所有依赖该密钥的应用程序将无法再发送或接收推送通知,直到您上传一个新的密钥来替换它。上传一个新的APN密钥不会更改您的用户的Expo推送令牌。推送通知密钥不会过期。您可以通过运行eas credentials
并按照提示来清除Expo当前为您的应用程序存储的APN密钥。
Expo创建的APN密钥可以在Expo网站上下载。
配置文件
每个配置文件都是特定于应用程序的,这意味着您将为您提交到App Store的每个应用程序都有一个配置文件。这些配置文件与您的分发证书相关联,所以如果证书被撤销或过期,您将需要重新生成应用程序的配置文件。与分发证书类似,撤销您的应用程序的配置文件不会影响已经上架的应用程序。
配置文件在12个月后过期,但这不会影响生产中的应用程序。您只需要在下次构建应用程序时创建一个新的配置文件,通过运行eas build -p ios
,或者手动使用eas credentials