Xamarin Forms - Gerando e restringindo a Chave para usar Mapas
Neste artigo vou mostrar como gerar uma chave para usar mapas em uma aplicação Xamarin Forms e como restringir o uso da chave. |
Se você quiser usar o Google Maps em seu aplicativo Xamarin.Forms, você vai precisar obter uma chave de API ou API Key.
Gerar a chave é um processo simples mas a chave gerada não contém nenhuma restrição e poderá ser usada por terceiros para consumir recursos da sua conta no Google.
Pensando nisso vou mostrar também como você pode restringir o uso da chave gerada de forma a que somente você e sua aplicação utilize a chave.
Nota: Você não precisa restringir o acesso a sua chave se você for usar apenas localmente para teste.
Então vamos ao que interessa...
Recursos usados:
Visual Studio Community 2017 ou Xamarin Studio
Criando o projeto no VS Community 2017
Abra o VS 2017 Community e clique em New Project;
Selecione Visual C#, o template Cross Plataform e a seguir Cross Plataform App(Xamarin.Forms or Native);
Informe o nome XF_Maps e clique no botão OK;
Projeto criado agora vamos atualizar o Xamarin Forms pois usando o VS 2017 update 15.4 ele gera um projeto com uma versão não atual.
No meu Tools abra o Manage Nuget Packages for Solution e a seguir clique em Updates , marque Xamarin.Forms (se ele aparecer) e atualize a versão do Xamarin Forms no projeto.
Incluindo o pacote Nuget Xamarin.Forms.Maps
1- No menu Tools clique em Nuget Package Manager -> Mange Nuget Packages for Solution
2- Clique em Browse e digite : xamarin.forms.maps
3- Selecione o item encontrado, marque todos os projetos e clique no botão Install
4- A seguir clique em Google Maps Android API
5- Depois clique no botão Ativar:
6- Agora clique no menu Credenciais e depois clique no botão Criar Credenciais e a seguir em Chave de API :
7- Sua Chave de API será gerada e exibida conforme a figura abaixo:
Com a API Key gerada abra o arquivo AndroidManifest.xml do seu projeto Android e inclua na tag application a sua chave:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Droid_Maps.Droid_Maps" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> <uses-sdk android:minSdkVersion="21" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:allowBackup="true" android:label="@string/app_name"> <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="SUA-API-KEY-AQUI" /> </application> </manifest> |
Mas esteja atento ao seguinte detalhes:
Sua chave da API está disponível, mas ela pode ser usada por qualquer pessoa que tenha acesso a ela. Se você estiver usando a chave no lado do Servidor, os problemas de segurança não são graves. No entanto, se você precisar distribuir a sua chave com sua aplicação, então é melhor restringir o acesso a sua chave de forma que somente sua aplicação possa usá-la.
Restringindo a sua API Key - Gerando um Fingerprint
Para restringir a sua API Key precisamos gerar um fingerprint, que é um método de identificar unicamente um objeto.
Para gerar um fingerprint podemos usar a janela de comandos e usar o comando com o seguinte formato:
Keytool -list -v -keystore [STORE FILENAME] -alias [ALIAS NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]
Para o Debug os valores usados são :
onde STORE FILENAME é a pasta onde será armazenada o resultado gerado.
Para executar o comando keytool você vai precisar localizar pasta do JDK do Java. Veja abaixo um exemplo de uso para um usuário genérico:
C:\Program Files (x86)\Java\jdk1.8.0_112\bin>keytool -list -v -keystore "C:\Users\user\AppData\Local\Xamarin\Mono for
Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
Abaixo vemos o resutlado da execução do comando
O que você precisa obter do resultado gerado acima é a assinatura SHA-1 :
SHA1: CF:EXXXXX5:B1:XXXXXXXXXX5:EE:9D:C5:EE:8XXXXXXXXX7:F1:76
|
Agora que você já tem o código SHA1 gerado retorne para a página onde você gerou a sua API KEY e clique no ícone para editar.
A seguir marque a opção Apps para Android :
A seguir adicione o código SHA-1 obtido e o nome do pacote da sua aplicação Xamarin Android e clique no botão Salvar:
Fique atento ao nome do pacote informado. Ele deverá ser igual ao definido na sua aplicação.
Pronto !
Mas perceba que geramos uma chave e uma restrição para a versão Debug da sua aplicação.
Quando você for fazer o deploy na produção entre e gere outra chave e crie outra assinatura de restrição por questão de segurança.
"E o mundo passa, e a sua concupiscência; mas aquele que faz a vontade de Deus
permanece para sempre."
1 João
2:17
Referências: