Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么Google Play服务需要两个证书才能下载字体?_Android_Android Downloadable Fonts - Fatal编程技术网

Android 为什么Google Play服务需要两个证书才能下载字体?

Android 为什么Google Play服务需要两个证书才能下载字体?,android,android-downloadable-fonts,Android,Android Downloadable Fonts,我正在使用可下载字体的支持库。我遵循了这条规则,上面写着: 如果未预安装字体提供程序,或者您正在使用支持库,则必须声明字体提供程序签署时使用的证书。系统使用证书验证字体提供程序的身份 所以很明显,为了使用Google字体提供商,我需要为Google Play服务添加证书 <resources> <array name="com_google_android_gms_fonts_certs"> <item>@array/com_google_andr

我正在使用可下载字体的支持库。我遵循了这条规则,上面写着:

如果未预安装字体提供程序,或者您正在使用支持库,则必须声明字体提供程序签署时使用的证书。系统使用证书验证字体提供程序的身份

所以很明显,为了使用Google字体提供商,我需要为Google Play服务添加证书

<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>

@array/com\u google\u android\u gms\u字体\u证书\u开发
@array/com\u google\u android\u gms\u字体\u证书\u产品
[散列]
[散列]

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

一个是针对生产进行优化的,一般来说,当您在本地开发时,使用的是开发版本,但关键区别在于应用程序APK签名。当您的应用程序正式签名并准备部署时,将触发prod字体集

减少APK规模Play服务如何知道它们是用于开发版本还是生产版本?如果我有更多的变体,而不仅仅是dev和prod呢?其实很简单,记住它们有很多构建变体,prod和dev在gradle中,当应用程序被签名时,就会触发产品发布代码。GooglePlay读取所有文件,因为它是一个生产部署,所以它选择prodcertificate@Remario您的意思是我们仍然需要为所有构建变体提供这两个证书,但是库将在运行时选择使用哪个证书?这到底“优化”了什么?有什么好处?你有没有发现新的信息?