如何在多风味应用中添加多个Google Maps API配置

时间:2018-03-08 09:55:10

标签: android google-maps google-maps-android-api-2

我有一个多味道的Android应用程序,因为我需要具有不同ID的dev,qa和prod应用程序来连接到不同的Firebase项目。

flavorDimensions "env"
productFlavors {
    dev {
        dimension "env"
        applicationId "com.myapp.debug"
    }
    qa {
        dimension "env"
        applicationId "com.myapp.beta"
    }
    prod {
        dimension "env"
        applicationId "com.myapp"
    }
}

我还在相应的源文件夹中添加了3个版本的google_maps_api.xml,如下所示:

enter image description here

在开发版中,一切顺利,地图显示正常。但是当我使用release / qa变体生成签名版本后,我以封闭的alpha版本发布应用程序时,地图不会在应用程序中显示。

由于我还是Android的新手,我不知道自己可能错过了什么,甚至不知道如何解决这个问题?有没有一种简单的方法可以查看封闭alpha版本中发布的qa版本的日志?我错过了一些明显的东西吗我应该在哪里找到已签名的APK中的google_maps_api.xml文件,以便我可以检查其中是否存在正确的文件?

2 个答案:

答案 0 :(得分:1)

google_maps_key文件中删除google_map_api.xml,并在gradle文件中将其声明为以下提及

flavorDimensions "env"
    productFlavors {
        dev {
            dimension "env"
            applicationId "com.myapp.debug"
            resValue 'string', 'google_maps_key', 'google_maps_key_for_dev'  // update your actual key
        }
        qa {
            dimension "env"
            applicationId "com.myapp.beta"
              resValue 'string', 'google_maps_key', 'google_maps_key_for_qa'  // update your actual key
        }
        prod {
            dimension "env"
            applicationId "com.myapp"
              resValue 'string', 'google_maps_key', 'google_maps_key_for_prod' // update your actual key
        }
    }

您必须为每个applicationId生成新的地图密钥。

答案 1 :(得分:0)

我想我弄明白了我错过了什么。我选择加入Google Play应用,因此我使用上传密钥对我的应用进行了签名,然后Google会使用其保留的部署密钥对其进行签名。我找到this piece of documentation,说我必须从Google获取我的SHA-1指纹并在我的Google Maps API密钥中使用它。所以我导出了SHA-1并将其粘贴到我的Google Maps API密钥配置中,现在它似乎工作正常。