Diferencia entre revisiones de «PDM Avanzado Empaquetado e distribución»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 32: Línea 32:
  
 
Simplemente imos a opción de menú '''Build''' e escollemos '''Generated Signed Apk'''.
 
Simplemente imos a opción de menú '''Build''' e escollemos '''Generated Signed Apk'''.
[[Imagen:PDM_Avanzada_Empaquetado_1.jpg|500px|center]]
+
[[Imagen:PDM_Avanzada_Empaquetado_1.jpg|300px|center]]
  
  
Línea 39: Línea 39:
  
 
<gallery caption="Asistente de xeración de apk" widths="350" heights="300px" perrow="2">
 
<gallery caption="Asistente de xeración de apk" widths="350" heights="300px" perrow="2">
 +
Image:PDM_Avanzada_Empaquetado_3a.jpg| A partires da versión 3.2 podemos elixir xerar a aplicación en un formato aab, que é outra forma de subir a aplicación a Google Play. Este formato 'trocea' a aplicación en trozos para poder xerar o apk personalizado para cada tipo de dispositivo permitindo aforrar espazo. Máis información [https://developer.android.com/guide/app-bundle?utm_source=android-studio neste enlace].
 
Image:PDM_Avanzada_Empaquetado_3.jpg| Nesta pantalla podemos indicar se xa temos un keystore (almacén de claves). Se o tivésemos deberíamos seleccionalo. Inicialmente imos crear un novo premendo '''Create New'''.
 
Image:PDM_Avanzada_Empaquetado_3.jpg| Nesta pantalla podemos indicar se xa temos un keystore (almacén de claves). Se o tivésemos deberíamos seleccionalo. Inicialmente imos crear un novo premendo '''Create New'''.
 
Image:PDM_Avanzada_Empaquetado_4.jpg| Prememos nos puntos suspensivos e indicamos o '''nome e localización do almacén de claves'''. Asociamos unha password a dito almacén. Nesta mesma pantalla imos crear unha key (lembrar que nun almacén podemos ter moitas keys diferentes). Temos que indicar: '''Alias:''' Un alias para o key. Pode ser o mesmo que o nome ou unha abreviación do mesmo. '''Password:''' Novamente asinámoslle unha contrasinal '''pero esta vez á key'''. Ten que ter o lo menos 6 caracteres. Esta vai ser a contrasinal da key da aplicación. '''Validity (years)''': Aquí indicamos o tempo que vai ser válida a nosa key en anos. Os seguintes campos fan referencia a información persoal e da organización. O campo de Country Code, se pode consultar no listado da [http://es.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1]. No noso caso sería ES.  
 
Image:PDM_Avanzada_Empaquetado_4.jpg| Prememos nos puntos suspensivos e indicamos o '''nome e localización do almacén de claves'''. Asociamos unha password a dito almacén. Nesta mesma pantalla imos crear unha key (lembrar que nun almacén podemos ter moitas keys diferentes). Temos que indicar: '''Alias:''' Un alias para o key. Pode ser o mesmo que o nome ou unha abreviación do mesmo. '''Password:''' Novamente asinámoslle unha contrasinal '''pero esta vez á key'''. Ten que ter o lo menos 6 caracteres. Esta vai ser a contrasinal da key da aplicación. '''Validity (years)''': Aquí indicamos o tempo que vai ser válida a nosa key en anos. Os seguintes campos fan referencia a información persoal e da organización. O campo de Country Code, se pode consultar no listado da [http://es.wikipedia.org/wiki/ISO_3166-1 ISO 3166-1]. No noso caso sería ES.  
Línea 46: Línea 47:
  
 
Agora xa podemos instalar o apk en calquera dispositivo con Android.
 
Agora xa podemos instalar o apk en calquera dispositivo con Android.
 +
 +
 +
 +
 +
* <u>Nota:</u> Indicar que cando creamos o almacén de chaves, pode saír o seguinte aviso de erro: 'el almacén de claves jks utiliza un formato propietario. se recomienda migrar a pkcs12'
 +
: O almacén funciona correctamente, pero se queremos pasalo ao formato recomendado temos que executar a seguinte orde:
 +
<syntaxhighlight lang="java" line enclose="div" highlight="">
 +
keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_FILE.p12] -srcstoretype JKS - deststoretype PKCS12
 +
</syntaxhighlight>
 +
: keytool é un executable que se atopa no cartafol /bin/ do Java SDK instalado.
 +
: Vos poderá introducir o password do novo almacén (formato p12), o password do almacén anterior (formato jsk) e o password do certificado/s gardados no almacén.
  
 
==Dende consola==
 
==Dende consola==

Revisión del 18:11 1 dic 2019

Introdución

Unha vez temos a aplicación rematada chega o momento de, ou ben pasala ó/ós usuarios que van facer uso dela ou ben subila ó Market de Android para a súa comercialización.

Para poder realizar este paso é necesario xerar o APK da aplicación cun certificado válido.

Temos que xerar o arquivo apk da aplicación pero coa aplicación 'firmada' cun keystore que ven ser un almacén de claves.

Cando xeremos o apk primeiro daranos a opción de crear un novo almacén ou utilizar un xa existente.

Nun almacén imos poder 'gardar' moitas aplicacións. Cada almacén terá unha clave.

Así mesmo, cada aplicación terá outra clave asociada o seu certificado.

Polo tanto cando xeremos o apk imos ter que gardar dúas claves: unha para o almacén e outra para cada unha das aplicacións gardadas en dito almacén.


A firma é moi importante xa que cada vez que cambiemos de versión teremos que firmala có mesmo certificado para que o S.O. Android o interprete como unha actualización da aplicación.

Modificando a versión compilada de debug a release


Graficamente

Simplemente imos a opción de menú Build e escollemos Generated Signed Apk.

PDM Avanzada Empaquetado 1.jpg


Aparece un asistente:


Agora xa podemos instalar o apk en calquera dispositivo con Android.



  • Nota: Indicar que cando creamos o almacén de chaves, pode saír o seguinte aviso de erro: 'el almacén de claves jks utiliza un formato propietario. se recomienda migrar a pkcs12'
O almacén funciona correctamente, pero se queremos pasalo ao formato recomendado temos que executar a seguinte orde:
1 keytool -importkeystore -srckeystore [MY_KEYSTORE.jks] -destkeystore [MY_FILE.p12] -srcstoretype JKS - deststoretype PKCS12
keytool é un executable que se atopa no cartafol /bin/ do Java SDK instalado.
Vos poderá introducir o password do novo almacén (formato p12), o password do almacén anterior (formato jsk) e o password do certificado/s gardados no almacén.

Dende consola

Esta información tamén se pode obter dende unha consola ou terminal. En Windows debemos utilizar unha consola con permisos administrativos (executar como administrador).

Debemos situarnos coa orde cd (se non o temos no path) no cartafol onde estea instalado o JDK e dentro deste no cartafol /bin/.

Nese cartafol se atopa o executable keytool.

  • LINUX:
1 ./keytool -genkey -v -keystore almacen.keystore -alias clavealmacen -keyalg RSA -keysize 2048 -validity 10000


  • WINDOWS:
1 keytool -genkey -v -keystore almacen.keystore -alias clavealmacen -keyalg RSA -keysize 2048 -validity 10000

Neste caso estariamos a crear un almacén e un certificado (key) válido por 10.000 días.

Ó darlle a 'enter' pediranos o password do almacén (mínimo 6 caracteres) e a información que preguntou antes graficamente para o certificado (key):

PDM Avanzada Empaquetado 6.jpg

Unha vez feito xa temos o almacén creado.

Obtendo a pegada dixital SHA1 dun almacén para utilizar con GoogleMap

Relacionado coa Unidade vista anteriormente de Google Map temos a opción de obter a clave SHA1 dun almacén de datos, necesario para poder ver o mapa de Google Map nunha aplicación que queiramos dar ós usuarios.

Para obter o SHA1 debemos escribir dende consola:

1 keytool -v -keystore almacen.keystore -list

Sendo almacen.keystore o almacén onde se atopa a key que imos utilizar para firmar a nosa aplicación.



Firmando automaticamente una aplicación tanto en modo debug como release

  • Podemos facer que de forma automática o Android Studio 'firme' a aplicación antes de instala no emulador / dispositivo.
Para facelo, imos a ventá de Project Structure:
Imos a lapela de Signing e prememos o símbolo 'máis'. Indicamos os datos do almacén de claves creado previamente.
PDM Avanzada Empaquetado firma 1.jpg


  • Agora debemos editar o arquivo build.gradle a nivel de módulo.
Nese arquivo estará a configuración creada no paso anterior.
Temos que modificar as entradas 'release' e 'debug' para que fagan uso do almacén de claves configurado anteriormente.


PDM Avanzada Empaquetado firma 2.jpg





-- Ángel D. Fernández González e Carlos Carrión Álvarez -- (2015).