【问题标题】:Why do Google Play Services need two certificates for downloadable fonts?为什么 Google Play 服务需要两个证书才能下载字体?
【发布时间】:2018-01-02 22:28:21
【问题描述】:

我正在使用支持库来下载字体。我关注了official guide,上面写着:

如果未预装字体提供程序或使用支持库,则必须声明字体提供程序所使用的证书。系统使用证书来验证字体提供者的身份。

所以很明显,为了使用 Google Font provider,我需要为 Google Play Services 添加证书。

<resources>
  <array name="com_google_android_gms_fonts_certs">
    <item>@array/com_google_android_gms_fonts_certs_dev</item>
    <item>@array/com_google_android_gms_fonts_certs_prod</item>
  </array>
  <string-array name="com_google_android_gms_fonts_certs_dev">
    <item>
        [HASH]
    </item>
  </string-array>
  <string-array name="com_google_android_gms_fonts_certs_prod">
    <item>
        [HASH]
    </item>
  </string-array>
</resources>

我在任何地方都找不到的是,为什么有两个证书:devprod?什么时候使用?

【问题讨论】:

  • 你有没有发现任何新的信息?

标签: android android-downloadable-fonts


【解决方案1】:

一个是为生产优化的,一般是这样的,本地开发时使用的是dev版本,但关键区别在于应用APK签名。当您的应用程序正式签署并准备好部署时,会触发 prod 字体集。

【讨论】:

  • 减小 APK 大小
  • Play Services 如何知道它们是用于开发版还是生产版?如果我有更多变体,而不仅仅是 dev 和 prod?
  • 其实很简单,记住它们有很多构建变体,gradle 中的 prod 和 dev,当一个应用程序被签名时,生产发布代码就会被触发。 google play 读取所有文件,因为它是生产部署,所以它选择 prod 证书
  • @Remario 你的意思是我们仍然需要为所有构建变体提供这两个证书,但是库会在运行时选择使用哪个证书?
  • 这究竟“优化”了什么?有什么好处?
猜你喜欢
  • 1970-01-01
  • 2013-06-07
  • 2017-03-05
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多