https://manuais.iessanclemente.net/index.php?title=PDM_Avanzado_Empaquetado_e_distribuci%C3%B3n&feed=atom&action=historyPDM Avanzado Empaquetado e distribución - Historial de revisiones2024-03-29T10:09:00ZHistorial de revisiones de esta página en el wikiMediaWiki 1.36.2https://manuais.iessanclemente.net/index.php?title=PDM_Avanzado_Empaquetado_e_distribuci%C3%B3n&diff=57168&oldid=prevAngelfg en 09:17 28 jul 20152015-07-28T09:17:18Z<p></p>
<p><b>Página nueva</b></p><div>==Introdución==<br />
<br />
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.<br />
<br />
Para poder realizar este paso é necesario xerar o APK da aplicación cun certificado válido.<br />
<br />
Temos que xerar o arquivo apk da aplicación pero coa aplicación 'firmada' cun keystore que ven ser un almacén de claves. <br />
<br />
Cando xeremos o apk primeiro daranos a opción de crear un novo almacén ou utilizar un xa existente.<br />
<br />
Nun almacén imos poder 'gardar' moitas aplicacións. Cada almacén terá unha clave.<br />
<br />
Así mesmo, cada aplicación terá outra clave asociada o seu certificado.<br />
<br />
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.<br />
<br />
<br />
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.<br />
<br />
<br />
<br />
==Eliminando erros==<br />
<br />
Se estadas a utilizar librerías externas (como a de Google Play Services) ou calquera outra pode ser que vos aparezan estes erros cando estades intentando xerar o apk:<br />
<br />
[[Imagen:PDM_Avanzada_Empaquetado_7.jpg | 400px | center]]<br />
<br />
Para eliminar estes erros temos que:<br />
<br />
<gallery caption="Eliminación de erros lint" widths="350" heights="300px" perrow="2"><br />
Image:PDM_Avanzada_Empaquetado_8.jpg| Imos o menú de Eclipse => Preferences.<br />
Image:PDM_Avanzada_Empaquetado_9.jpg| Escollemos na parte esquerda a opción de 'Lint Error Checking' e desmarcamos a opción 'Run full....'.<br />
Image:PDM_Avanzada_Empaquetado_10.jpg | Escollemos a opción de menú de Eclipse => Proyect => Clean.<br />
Image:PDM_Avanzada_Empaquetado_11.jpg | Escollemos o proxecto a recompilar.<br />
<br />
</gallery><br />
<br />
==Graficamente==<br />
<br />
Simplemente nos situamos sobre a versión de Android, prememos botón dereito e escollemos a opción Android Tools => 'Export Signed Application Package':<br />
<br />
[[Imagen:PDM_Avanzada_Empaquetado_1.jpg|500px|center]]<br />
<br />
<br />
Aparece un asistente:<br />
<br />
<br />
<gallery caption="Asistente de xeración de apk" widths="350" heights="300px" perrow="2"><br />
Image:PDM_Avanzada_Empaquetado_2.jpg| Indicamos o proxecto que queremos xerar o apk. Unha vez escollido prememos o botón de 'Next'.<br />
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.<br />
Image:PDM_Avanzada_Empaquetado_4.jpg| Nesta pantalla 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. 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. <br />
Image:PDM_Avanzada_Empaquetado_5.jpg| Indicamos o lugar onde se vai xerar o apk xa coa firma.<br />
<br />
</gallery><br />
<br />
Agora xa podemos instalar o apk en calquera dispositivo con Android.<br />
<br />
==Dende consola==<br />
<br />
Esta información tamén se pode obter dende unha consola ou terminal. En Windows <u>debemos utilizar unha consola con permisos administrativos</u> (executar como administrador).<br />
<br />
Debemos situarnos coa orde '''cd''' (se non o temos no path) no cartafol onde estea instalado o JDK e dentro deste no cartafol /bin/.<br />
<br />
Nese cartafol se atopa o executable keytool.<br />
<br />
* LINUX:<br />
<br />
::<syntaxhighlight lang="java" line enclose="div" highlight="" ><br />
./keytool -genkey -v -keystore almacen.keystore -alias clavealmacen -keyalg RSA -keysize 2048 -validity 10000<br />
</syntaxhighlight> <br />
<br />
<br />
* WINDOWS:<br />
<br />
::<syntaxhighlight lang="java" line enclose="div" highlight="" ><br />
keytool -genkey -v -keystore almacen.keystore -alias clavealmacen -keyalg RSA -keysize 2048 -validity 10000<br />
</syntaxhighlight><br />
<br />
Neste caso estariamos a crear un almacén e un certificado (key) válido por 10.000 días.<br />
<br />
Ó 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):<br />
<br />
[[Imagen:PDM_Avanzada_Empaquetado_6.jpg | 500px | center]]<br />
<br />
Unha vez feito xa temos o almacén creado.<br />
<br />
==Obtendo a pegada dixital SHA1 dun almacén para utilizar con GoogleMap==<br />
<br />
Relacionado coa Unidade vista anteriormente de [http://manuais.iessanclemente.net/index.php/PDM_Avanzado_GoogleMaps#Obtenci.C3.B3n_da_pegada_dixital_SHA1_Produci.C3.B3n 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.<br />
<br />
Para obter o SHA1 debemos escribir dende consola:<br />
<br />
<syntaxhighlight lang="java" line enclose="div" highlight="" ><br />
keytool -v -keystore almacen.keystore -list<br />
</syntaxhighlight><br />
<br />
Sendo almacen.keystore o almacén onde se atopa a key que imos utilizar para firmar a nosa aplicación.<br />
<br />
<br />
<br> -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015).</div>Angelfg