我刚生成了Google Maps API密钥,可以在我的Android应用中使用。我必须提供SHA-1指纹和应用程序的包名称。它看起来像这样:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample
如您所见,我必须提供应用程序的包名称。那么,这是否意味着我需要为不同的应用程序获取不同的API密钥?
PS:奇怪的是,谷歌为我输入的SHA-1和包名组合生成了两个API密钥。这是正常的吗?那么,我应该使用哪一个?
答案 0 :(得分:7)
您可以为不同的应用程序使用相同的密钥库和API密钥。
所以,像这样:
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.anotherapp BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.temp.lastapp
现在,您可以在所有这些应用中使用相同的API密钥。
答案 1 :(得分:1)
对于不同的Android应用,您绝对可以使用相同的密钥。只需在Google Cloud Platform console处添加所有应用程序包名称和SHA键。它将100%起作用。
我注意到,当您使用Android Studio生成时,SHA1键是相同的。 您可以通过Gradle signingReport Task来生成SHA1密钥
答案 2 :(得分:0)
您可以对不同的包使用相同的SHA-1打印,但您必须为不同的应用程序制作不同的API密钥。是的,Google会在您每次提出请求时生成一个新密钥。
答案 3 :(得分:0)
古老的问题,但是公认的答案违背了最佳实践。您可以 使用相同的API密钥,但是 最好不要使用。来自Best Practices Docs:
为不同的应用程序使用独立的API密钥。这限制了每个密钥的范围。如果某个API密钥被盗用,则可以删除和撤消受影响的密钥,而无需更新其他API密钥。