Al compilar para las tiendas de aplicaciones, la CLI de la expo,
por lo que lo que escribimos aquí en la línea de comando puede ayudarlo o ayudarlo, pero
es posible que deba modificar su configuración en la aplicación. archivo json dependiendo de las características que use su aplicación.
Entonces, nuestra aplicación aquí usa un montón de módulos nativos, todos estos módulos necesitan solicitar permisos y
de alguna manera hacemos esto con la API de permisos, como por ejemplo en el selector de imágenes aquí cuando
solicitamos permisos, pero para Android, por ejemplo, también necesita proporcionar una lista de los permisos que
su aplicación necesita en un archivo de configuración que usted, cuando usa React Native, solo tiene pero que no tiene
cuando usa expo porque expo proporciona este contenedor y hace todo eso por usted en la expo cliente, pero
ahora ya no planeamos usar el cliente expo
y aunque lo incluirá en su aplicación independiente como mencioné, ahora necesita decirle a expo qué
permisos debe solicitar allí.
Además, por ejemplo, si está utilizando Google Maps, también debe proporcionar su clave API de Google Maps y con eso, no me
refiero a que lo estamos haciendo aquí, que usamos en algunas partes de nuestro código Javascript, sino
para use el paquete de mapas React Native.
Nuevamente, la aplicación cliente expo básicamente usa su propia clave para el desarrollo, etc., pero tan pronto como planee ofrecer una
aplicación independiente, debe traer sus propias claves para que el contenedor de exposición que se incluirá en su
aplicación independiente use su clave porque el equipo de
la exposición no le dará una clave de su propiedad para eso.
Una vez más, los documentos oficiales son tus amigos, allí puedes
aprender qué puedes configurar en la aplicación. json y comencemos
con Android porque allí, tendrás que configurar un poco más antes de profundizar en
lo que es específico sobre iOS.
Entonces, para Android, además del ícono, etc., lo que puede configurar allí son los permisos. Ahora la cuestión es que puede omitir la
clave de permisos y, en ese caso, como puede ver aquí, expo configurará su
aplicación para solicitar todos los permisos.
Ahora, no recomendaría hacerlo porque las personas mirarán tu aplicación en la App Store y si
ven que tu aplicación básica de administración de lugares quiere permisos para leer sus contactos o hacer llamadas, bueno, no sé sobre
ti, pero no lo haría. t descargue dicha aplicación.
Por lo tanto, mi recomendación sería que sea específico con respecto a los permisos que necesita su
aplicación y que lo haga yendo a su aplicación. json y allí, en el nodo de Android, agrega la
clave de permisos y ahora agrega los permisos.
Ahora siempre se solicitarán algunos permisos básicos y encontrará estos permisos aquí, por ejemplo, permisos para obtener datos
de Internet, etc., pero ahora también puede, por ejemplo, agregar permisos para usar la ubicación del usuario y
acceder a la cámara porque eso es algo que haremos hacer.
Agreguemos estas claves aquí a permisos como este, a cadenas de teclas con comillas dobles, eso es importante en
este archivo, agregado
a esta matriz de permisos.
Ahora también necesitaremos el permiso de almacenamiento externo de escritura para guardar nuestra imagen, por lo que deberíamos agregar eso también y con eso deberíamos
ser buenos
para esta aplicación pero, por supuesto, dependiendo de la aplicación que esté creando,
verifique cuidadosamente qué permisos tiene su aplicación necesitará, siempre
puede consultar las páginas de documentación de los paquetes de módulos nativos que está utilizando, allí
normalmente debería encontrar una descripción de
los permisos que necesita este paquete. Por lo tanto, los permisos
son una cosa, además si está utilizando Google Maps, debe agregar el nodo de
Google Maps a su configuración de Android.
Entonces,
después de los permisos, podemos agregar mapas de Google como este, que también contiene un objeto como valor y, en ese
objeto, configura la clave API.
Nuevamente, no lo necesitaba para el cliente de la exposición cuando publicamos la aplicación en esta página de exposición y usamos la aplicación del cliente de
la exposición porque allí el equipo de la exposición básicamente le da su propia clave de Google Maps, pero si
está creando una aplicación independiente, usted necesita proporcionar el suyo propio.
Entonces, para eso, asegúrese de usar su clave aquí, así como también importante, y ya mencioné esto en el módulo
no expo, asegúrese de que
en las API de Google, así que en la consola de la nube de Google cuando verifique su biblioteca de API, usted asegúrese de que el
SDK de mapas para Android esté habilitado para este proyecto al que pertenece esta clave API que
proporcionó.
Entonces, aquí está
habilitado, esto debe pertenecer al proyecto para el que creó la clave API que ahora
proporciona aquí, de lo contrario, esto no funcionará. Entonces, estos son los permisos y la configuración de Google Map y es
posible que necesite otras configuraciones específicas sobre las que
puede obtener información aquí en la aplicación. archivo json según las funciones que esté utilizando.
También puede configurar Por supuesto todo lo demás
y tantas cosas, una cosa que absolutamente debe proporcionar para construir su aplicación es también esta clave de paquete.
Esto es algo que siempre debe agregar, independientemente de lo que use
su aplicación, aquí en el nodo de Android, debe proporcionar la clave del paquete y ahora debe tener un formato determinado.
Básicamente es una URL inversa, una URL ficticia que no tiene que existir, pero que actúa como un identificador único
en toda la Google Play Store, por lo que debe ser
una URL inversa que nadie más ha usado antes y, por lo tanto, normalmente si usted
posee un dominio, usaría su dominio, por ejemplo, com. Academind, entonces un dominio inverso y luego
un identificador único, como grandes lugares. Puede crear cualquier URL que desee aquí, pero, por supuesto,
una vez más, debe ser única y, por lo tanto, debe usar su propio dominio o un dominio
ficticio que no sea propiedad de nadie,
por lo que no es un dominio académico porque soy dueño de esto, por lo que cualquier otro dominio, cualquier otro identificador ficticio que
debería tener este formato,
eso es lo que proporciona aquí.
También debe proporcionar algo similar en iOS, allí si va a iOS,
no necesita proporcionar esta configuración de permisos porque los permisos de iOS funcionan de manera diferente, necesitaría proporcionar una clave
API de
Google Maps si usa Google Maps versión del paquete de mapas para iOS, el valor predeterminado
de este paquete es usar Apple Maps y no he cambiado esto en mi aplicación, así que
no necesito proporcionar la API de Google Maps aquí, pero
lo que definitivamente debes proporcionar aquí es Un identificador de paquete. Así que reemplace el paquete con un identificador de paquete y el formato
es el mismo, tiene esta sintaxis
de URL inversa aquí y la nombraré com. Academind. curso de grandes lugares y también
use esa edición de curso aquí en Android.
Por lo tanto, el identificador de paquete para iOS y el paquete para Android deben establecerse en una URL única inversa.
Ahora, además de estos identificadores, también debe establecer algo más, en iOS debe agregar
un número de compilación, también aquí en el nodo de iOS, por lo tanto, el número de compilación
debe ser una cadena que identifique su compilación. Allí, debería tener un número de compilación como esta versión allá arriba y trabajando
de la manera que lo expliqué allí arriba.
Por lo tanto, debe ser un número que consta de tres dígitos donde tiene un número de parche para parches,
correcciones de errores, luego este número de actualización menor para nuevas características que no rompen todo y este número
de actualización principal, puede cambiar
esto como lo desee pero debe cambiarlo para cada nueva versión que
publique e implemente y, por supuesto, debe cambiarlo de modo que refleje lo que cambió.
Ahora necesita algo similar para Android,
si volvemos a la documentación de Android, también necesitamos un código de versión. Entonces, aquí agregamos código de versión y ahora aquí no se
trata de una cadena, sino de un número que simplemente debe aumentar en uno para cada
nueva versión.
Entonces comienza en una, la
próxima versión que lanza, incluso si solo contiene algunas pequeñas correcciones, debe ser dos y luego tres y
así sucesivamente.
Así que eso es lo que debe configurar aquí, así es como funciona para Android, también encontrará esa
descripción aquí en la documentación y con
eso, ahora estamos preparados para implementar esto o construirlo primero y, como mencioné, lo genial Lo que
pasa con la expo administrada es que ahora puede construir esto en los servidores en la nube
de la expo.
Entonces, lo que debe hacer es ejecutar expo Publish para publicar la última versión de su aplicación en los servidores de Expo
como esa, que aún no la compilará como una aplicación independiente y ahora lo
que obtengo aquí son un par de advertencias o errores. Entonces, vemos que Android no debería tener una propiedad adicional
de Google Maps, sí,
porque debería estar en un nodo de configuración,
mi error.
Entonces, debe agregar la configuración aquí y en la configuración, es posible que tenga esta clave de
Google Maps, es un pequeño error de mi parte y aquí para el paquete, a Android en realidad no le gustan los
guiones allí, pero puede usar guiones bajos, así que usemos esto . Con eso solucionado, ahora ejecutemos la publicación expo nuevamente para validar esto
nuevamente y luego publiquemos la versión más reciente en
los servidores de la expo que nuevamente no comenzará el proceso de compilación pero que es una preparación importante
y una vez hecho esto, está listo para También construya su aplicación para Android e
iOS.
Ahora, la diferencia entre publicar y construir es que publicar solo empuja su código y configuración a los servidores de
la exposición y luego puede escanear el código de barras con el cliente de la exposición y así sucesivamente.
Construir significa que aprovechará el servicio de compilación en la nube de la expo para crear realmente un paquete de aplicaciones de
Android o un archivo IPA de iOS, estos son los
archivos que luego carga en las tiendas de aplicaciones a partir de entonces, por lo que hay
una gran diferencia aquí. Ahora, estos paquetes que
construye como se mencionó anteriormente incluyen el cliente de exposición, por
ejemplo, lo incluyen como un envoltorio alrededor de su aplicación, pero es una aplicación nativa real, por
lo tanto, después de todo, es una aplicación nativa con solo este pequeño envoltorio
extra pequeño alrededor teniendo en cuenta la configuración que configura aquí, por ejemplo, con respecto a los permisos.
Además, estas aplicaciones que crea en los servidores de expo que luego puede distribuir a través de las tiendas de aplicaciones hablarán con
los servidores de expo para la funcionalidad de actualización por aire. Por lo tanto, solo publicará nuevas actualizaciones con la publicación
expo a partir de entonces y sus aplicaciones independientes que se ejecutan en otros dispositivos obtendrán estas actualizaciones publicadas,
por lo que la publicación sigue siendo importante
incluso si está creando aplicaciones independientes, si está creando paquetes de aplicaciones porque Estos
paquetes de aplicaciones continuarán hablando con los servidores de la Expo para obtener nuevas versiones.
Pero hablando de eso, ¿cómo construimos estos paquetes ahora?
Haces esto con el comando de compilación expo y ahí tienes build: Android y
build: iOS.
Bueno, comencemos con build: Android y, como su nombre lo indica, esto crea una aplicación para Android.
Puede aprender todo sobre el proceso de compilación independiente en la documentación de la exposición de
aplicaciones independientes de construcción, que también encontrará adjunta aquí y allá, encontrará la configuración básica que necesita
y lo que debe tener en cuenta allí. Para Android, aquí encontrará que también ahora, al menos,
puede elegir si desea crear un APK o un archivo de paquete de aplicaciones, se recomienda
crear un archivo de
paquete de aplicaciones porque ese es el formato preferido que Google desea y para esto, puede ejecutar en lugar de
simplemente expo build Android, ejecuta expo build Android -t app add-bundle. Si ahora presiona enter, esto finalmente validará su configuración y luego
empujará su código a los servidores de compilación en la nube de la expo donde ahora se programará.
Ahora, en primer lugar, le preguntará porque las aplicaciones deben firmarse, eso sucede con un par de claves
públicas privadas que al final se utiliza para identificarlo como el autor de la aplicación, las actualizaciones
futuras de la aplicación y con eso no lo hago.
no significa actualizaciones que publicó en los servidores de expo con el comando de publicación de expo, pero
cuando reconstruye la aplicación, cuando reconstruye el paquete que luego vuelve a cargar en las tiendas de aplicaciones, lo
que ocasionalmente tendrá que hacer si, por ejemplo, cambia el ícono o algo más que no se puede
compartir con la publicación de
la exposición, en tales casos, debe firmar la actualización con las mismas claves que utilizó para crear la aplicación original para identificarlo
como el autor; de lo contrario, App
Store negará esta actualización. no aceptará tu próxima versión de la aplicación. Por lo tanto, debe firmar su aplicación y si sabe lo
que está haciendo, puede crear y cargar su propia tienda de claves, pero aquí me limitaré
a
la versión uno y dejaré que expo maneje lo que significa que
creará una clave para asignar y hacer todas las cosas de firma para usted en sus servidores, así que eso es
lo que elijo aquí.
Ahora con eso, vuelve a compilar la aplicación igual que para publicar, y aunque estoy compilando la aplicación de Android, todavía la compila para iOS porque al final
lo que hace aquí es publicar la aplicación. Entonces, esperemos a que esto
termine, ahora solo está haciendo lo mismo que expo publicarlo, pero a partir de entonces,
programará que esto se construya en los servidores de expo.
Entonces, ahora que se ha publicado y ahora se programa una compilación de este tipo y se pone en cola, por cierto, este
es un proceso que ahora puede dejar como dice aquí, siempre puede verificar el estado de su compilación ingresando
esta URL, usted ' Deberá iniciar
sesión con su cuenta de Expo allí y luego podrá ver el estado de la compilación.
Ahora importante,
esta compilación puede llevar mucho tiempo,
la compilación en sí misma no tanto, sino hasta que se construya porque está programada, tenga en cuenta que este es
un servicio gratuito, por lo que, por supuesto,
no se construye de inmediato, pero cuando los servidores de la exposición tienen espacio para ello.
Esto puede llevar un par de minutos, incluso horas, hasta que eso suceda, así que no se
preocupe si eso lleva algo de tiempo, siempre puede verificar esta URL que está viendo en su línea
de comando para ver qué sucede. Así que puede salir de esto,
esta también es una URL donde luego encontrará los archivos de compilación, así que
aquí está mi estado de compilación si lo verificamos, verá que es lindo y en este momento, no está sucediendo nada
más, podemos volver a
visitar esto más tarde para ver el proceso de compilación y descargue el paquete de aplicaciones terminado y,
por ahora, hagamos lo mismo para iOS.
Esto se puede
hacer ejecutando expo build iOS. Ahora importante, para crear aplicaciones de iOS, necesita una cuenta de desarrollador de
Apple paga, eso es imprescindible.
Por lo tanto, deberá ir al desarrollador. manzana. com y allí, deberá iniciar sesión con su
ID de Apple y, básicamente, obtener una cuenta de pago, por lo que deberá agregar su tarjeta de crédito y pagar una
tarifa de $ 99. Eso es obligatorio, no
hay forma de
evitarlo, Apple lo requiere para que puedas crear aplicaciones que quieras publicar en sus tiendas.
No necesita eso durante el desarrollo,
pero ahora para compartir la aplicación, necesita tener eso.
Básicamente, es una tarifa que solo está permitida para las personas en la tienda que tienen al menos algún tipo
de objetivos serios, supongo.
Por lo tanto, asegúrese de iniciar sesión aquí y configurar su cuenta de desarrollador de Apple para unirse al Programa de desarrolladores
de Apple y, a partir de entonces, puede ejecutar este comando
y le pedirá que inicie sesión con su cuenta de desarrollador de Apple. Entonces, inicie sesión con su ID y contraseña de
Apple y esa información no se almacenará en los servidores de la
expo, no
se preocupe, pero necesita configurar todo para compilar su aplicación porque para el proceso de compilación
de Apple, necesita certificados especiales, etc. puede solicitar en su nombre con estos datos.
Una vez que iniciaste sesión, te pregunta cómo quieres manejar tus credenciales, al igual que antes
si no sabes lo que estás haciendo, debes dejar que la exposición maneje todo
eso porque, como mencioné, necesitas un par de al final, los certificados especiales para construir su aplicación iOS y expo pueden solicitar todo eso
por usted y configurar todo eso para usted, así que dejaré que expo haga esto para todos estos
pasos y ahora básicamente hará todo eso por usted.
Ahora, esto también construye mi aplicación aquí para iOS y la vuelve a publicar primero, eso es lo mismo que
hicimos antes para Android y ahora también tenemos una compilación programada para iOS. Al igual que antes, esto está en
cola, puede salir de eso y simplemente ver su compilación aquí en el navegador.
Así que ahora no solo tenemos esa compilación de Android en cola, sino que también tenemos esa compilación de iOS
en cola y ambas demorarán un tiempo hasta que terminen.
Ahora, hay una cosa importante que también debe hacer después de que
se haya
realizado esta compilación de Android, que aún no es, debe ejecutar expo fetch: android: keystore.
Una vez más, esto solo funciona después de que se complete la compilación porque esto
buscará este almacén de claves generado automáticamente que la exposición genera para usted si elige eso en la configuración que necesita
para futuras actualizaciones de esta aplicación. Definitivamente lo necesitará y en futuras actualizaciones cuando
reconstruya la aplicación, deberá elegir que proporcione su propio almacén de claves y luego deberá proporcionar este almacén de
claves, así que ingrese la ruta a este almacén de claves que luego descargará.
Por lo tanto, este comando finalmente descargará un archivo generado en los servidores de la expo que debe
almacenar en su sistema para futuras actualizaciones de la misma
aplicación, de lo contrario no podrá actualizar.
Entonces, ese es un comando importante que necesitará ejecutar una vez que se complete esta compilación. Bueno, y con eso, esperemos a
que termine, iOS
ya está construyendo, Android todavía está en cola pero iOS
ya está en marcha, así que
esperemos a que termine la compilación de iOS y ahora esto está
hecho, ahora mi iOS La construcción está hecha.
Ahora también puede consultar los documentos oficiales sobre cómo puede continuar probando esto en su dispositivo o
simulador o luego ir a la parte donde carga la aplicación en Apple App Store y Google Play Store.
Así que
creamos la aplicación, ahora puede cargarla ejecutando expo upload: ios, esto usará de manera predeterminada su última aplicación y la
cargará en la App Store.
Ahora es la parte que no haré aquí porque realmente no quiero publicar esta aplicación aquí, pero
es lo que harías
ahora, usaría esta aplicación que se creó aquí para iOS o Android, la compilación de
Android es ahora también se ejecuta como veo, por lo que usaría esto y luego lo publicaría con
este comando para iOS o con este comando para Android, en Google Play Store.
Ahora siga los pasos que encuentra aquí en los documentos para crear las cuentas apropiadas y configurar
todo correctamente para que este comando pueda tener éxito
y con eso, tendrá su aplicación implementada en Apple App Store y en Google Play Store para que pueda puede
llevar su aplicación a cualquier usuario en todo el mundo como una aplicación independiente, que no dependa del cliente expo que
se instale en los dispositivos, lo cual es bastante bueno.