PublicaciónPublica en las tiendas de aplicaciones

Proyecto nativo

El proyecto completo para el teléfono, para anuncios, compras y un desarrollador que lo mantenga.

Native te da toda la aplicación como un proyecto para el teléfono, en un único ZIP o enviado a un repositorio de GitHub. Antes, dale el nombre de la aplicación y un ID de aplicación como com.yourcompany.yourapp: el ID es como las tiendas conocen tu aplicación, y no se puede cambiar una vez publicada.

La ventana te muestra entonces los comandos exactos para construirlo, para Android y para el iPhone:

text
npm install && npm run build
npx cap add android
npm run icons
npx cap sync && npx cap open android

En el iPhone, ios ocupa el lugar de android, y el último comando abre Xcode.

A partir de ahí es el camino propio de las tiendas: firma la aplicación en Android Studio o Xcode, súbela, pruébala, rellena la página de la tienda y publícala. Guarda a buen recaudo la clave de firma de Android y sus contraseñas. Cada actualización debe firmarse con la misma clave. Sin Android Studio ni Mac, GitHub puede compilarla por ti: Compilar en la nube.

Cómo obtener el proyecto: descarga o GitHub

En el paso 1, Download the project tiene dos campos, App name y App ID. El ID empieza como com.setherion. y el nombre de la aplicación, y tiene que escribirse en la forma de dominio invertido. Download project (.zip) crea un ZIP con el nombre de la aplicación. Contiene el proyecto web, los archivos del teléfono, un schema.sql si la aplicación tiene tablas, el arte del juego si lo hay, y las imágenes del icono y de la pantalla de inicio. Requiere un plan de pago.

En su lugar, or push to GitHub: conecta con Connect with GitHub, o pega un token, elige un Repo name y pulsa Export to GitHub. El repositorio se crea privado, y Open repo te lleva a él. Esto también requiere un plan de pago.

Nativo en Android, paso a paso
  1. Download the project, como arriba.
  2. Build it. Necesita Node 22 y Android Studio. Ejecuta los comandos que muestra la ventana. Si la aplicación usa anuncios o compras, se añade npm run native:setup después de npx cap add android.
  3. Sign it. En Android Studio elige Build y luego Generate Signed App Bundle. Crea una clave y guárdala junto con sus contraseñas: cada actualización necesita la misma clave.
  4. Upload it and test it. Crea la aplicación en Play Console, sube el .aab a Internal testing y luego rellena la página de la tienda, la clasificación de contenido y Data safety. Con anuncios, también declaras el ID de publicidad.
  5. Release. La revisión tarda de unas horas a dos días. Una cuenta personal de Google Play abierta después de noviembre de 2023 necesita antes la prueba cerrada.
Nativo en iPhone, paso a paso
  1. Download the project: el mismo ZIP que para Android.
  2. Build it. Necesita un Mac con Xcode y la cuenta de desarrollador de Apple de 99 $ al año. Ejecuta los mismos comandos con ios en lugar de android.
  3. Sign it and upload it. En Xcode abre Signing & Capabilities y elige tu equipo. Con anuncios o compras, añade In-App Purchase. Luego Product, Archive, Distribute, hacia App Store Connect.
  4. Try it on your iPhone con TestFlight.
  5. Fill the store page and send it for review. Con anuncios, Apple los cuenta como seguimiento.

Compilar en la nube

Sin Android Studio y sin Mac: GitHub puede compilar la aplicación en sus propios ordenadores. Envía el proyecto a GitHub en el paso 1 y el repositorio recibe dos workflows de compilación, uno para Android y otro para el iPhone. El paso Build it muestra entonces Build it in the cloud, con un botón a la página del workflow en GitHub.

En GitHub abre Actions, elige Android build o iPhone build, pulsa Run workflow y elige qué compilar:

WorkflowOpciónLo que obtienes
Android buildTest APKUna aplicación para instalar en tu propio móvil, en los Artifacts de la ejecución. Nada que configurar.
Android buildMake a new keyLa clave de firma, creada una vez antes de tu primera subida a Google Play. Solo en un repositorio privado.
Android buildGoogle Play bundle (.aab)El archivo firmado para Play Console, con un número de versión más alto en cada ejecución.
iPhone buildCheck that it buildsLa prueba de que la aplicación compila para el iPhone. No necesitas cuenta de Apple.
iPhone buildTestFlightLa aplicación firmada y enviada a App Store Connect, para instalarla con TestFlight.

Un repositorio privado tiene 2.000 minutos gratis al mes en los ordenadores de GitHub. Una compilación de Android usa unos pocos, y GitHub cuenta un minuto de Mac como diez. El README del repositorio explica cada paso.

Antes del primer Google Play bundle
  1. Ejecuta Make a new key y descarga upload-key desde la ejecución.
  2. Guarda upload.jks y su contraseña en un lugar seguro, fuera del repositorio. Cada actualización debe firmarse con la misma clave.
  3. En el repositorio abre Settings, Secrets and variables, Actions y añade tres secretos, cada uno con el texto de su archivo: ANDROID_KEYSTORE_BASE64, ANDROID_KEYSTORE_PASSWORD y ANDROID_KEY_ALIAS.
  4. Ejecuta Google Play bundle (.aab) y sube el archivo a Internal testing en Play Console.
Antes de la primera compilación para TestFlight
  1. En App Store Connect crea la aplicación, con el mismo ID que en el paso 1.
  2. En Users and Access, Integrations, App Store Connect API, genera una clave con el rol Admin y descarga su archivo .p8. Apple solo te deja descargarlo una vez.
  3. En el repositorio añade cuatro secretos: APPLE_TEAM_ID (Membership details en developer.apple.com), ASC_KEY_ID, ASC_ISSUER_ID y ASC_KEY_P8, el texto del archivo .p8.
  4. Ejecuta TestFlight. Unos minutos después, la compilación está en App Store Connect, en TestFlight. El workflow le indica a Apple que la aplicación solo usa cifrado estándar, así que TestFlight no pregunta por ello.

Una conexión con GitHub hecha antes de la compilación en la nube no puede añadir los workflows: el paso lo indica, y Reconnect en el paso 1 lo soluciona.

Cuentas en la aplicación del teléfono

En la aplicación del teléfono la gente inicia sesión con correo y contraseña. El botón de Google y el enlace de inicio de sesión por correo se ocultan allí. Por eso importa la comprobación del Delete account button: Apple rechaza una aplicación en la que la gente puede crear una cuenta sin uno.

Anuncios y compras

Un juego que muestra anuncios o vende algo funciona de verdad solo en el proyecto Native: anuncios de Google AdMob, compras de las tiendas mediante RevenueCat. En la vista previa del editor son de mentira («Test ad», «Test purchase», sin cobrar dinero), así que puedes probarlos, y en el sitio web publicado están ocultos. En el camino fácil el juego funciona sin ellos.

El proyecto empieza con los anuncios de prueba de Google, que no pagan nada. Pon tus propios ID de anuncios y claves de las tiendas en src/monetize.keys.json, y ejecuta npm run native:setup: el README del proyecto dice de dónde sale cada uno.

Qué va en el archivo de claves

El archivo contiene el ID de la aplicación de AdMob y los ID de las unidades de anuncios recompensados e intersticiales para Android y el iPhone, y las claves de RevenueCat de cada tienda (que empiezan por goog_ en Android y appl_ en el iPhone). Sin las claves de RevenueCat, o sin productos, no se vende nada.

Para anuncios reales, crea la cuenta de AdMob, las aplicaciones y las unidades de anuncios, pon los ID en el archivo, ejecuta npm run native:setup en carpetas nativas nuevas y publica un archivo app-ads.txt en el sitio web. Para las compras, crea productos en Play Console y App Store Connect con los mismos ID que en src/monetize.json, y conecta ambas tiendas en un proyecto de RevenueCat. En el iPhone, añade la capacidad In-App Purchase.

Ambas tiendas piden un enlace a una política de privacidad, y es obligatorio un botón Restore purchases: el proyecto incluye uno. Entre anuncios, la aplicación omite un intersticial en los primeros 30 segundos, dentro de los 60 segundos del anterior, y para un jugador que ha comprado el producto para quitar anuncios.

¿Te ha sido útil esta página?

Únete a la comunidad

Preguntas, ideas y lo que otros están construyendo.