Saltar al contenido

Guías de configuración · Unity

Prueba cerrada de Google Play para juegos de Unity

Unity, menú a menú: compila un Android App Bundle con el keystore, el scripting backend y el nivel de API correctos, súbelo al canal cerrado y mantén a 12 testers con opt-in durante 14 días.

Compilación
Build App Bundle (Google Play)
Código de versión
Player → Bundle Version Code
API objetivo
Target API Level ≥ 36

Compila un Android App Bundle

Los nombres de menú de abajo son de Unity 6, que usa File → Build Profiles. En Unity 2022 y anteriores, las mismas opciones están en File → Build Settings.

  1. Cambia a Android

    Abre File → Build Profiles, selecciona Android (instala el módulo con Unity Hub si falta) y conviértelo en el perfil activo con Switch Profile.

  2. Define el nombre de paquete

    En Edit → Project Settings → Player → Android, en Other Settings → Identification, configura el nombre de paquete. No se puede cambiar después de la primera subida.

  3. Elige IL2CPP y ARM64

    En Configuration, pon Scripting Backend en IL2CPP y activa ARM64 en Target Architectures. Google Play exige código nativo de 64 bits y ARM64 solo está disponible con IL2CPP.

  4. Activa el bundle

    De vuelta en el perfil de build, marca Build App Bundle (Google Play) (visible mientras Export Project está desactivado) y comprueba que Development Build está desactivado.

  5. Compila

    Haz clic en Build, elige un nombre de archivo y Unity escribe el .aab.

¿Compilas en CI? Los mismos ajustes están disponibles desde un script de editor, que además hace imposible olvidar subir el código de versión:

Assets/Editor/ReleaseBuild.cs
using UnityEditor;

public static class ReleaseBuild
{
    [MenuItem("Build/Android App Bundle")]
    public static void Build()
    {
        PlayerSettings.Android.bundleVersionCode += 1;
        EditorUserBuildSettings.buildAppBundle = true;
        BuildPipeline.BuildPlayer(new BuildPlayerOptions
        {
            scenes = new[] { "Assets/Scenes/Main.unity" },
            locationPathName = "Builds/game.aab",
            target = BuildTarget.Android,
            options = BuildOptions.None,
        });
    }
}

Keystore y firma de aplicaciones de Play

Sin tu propio keystore, Unity firma con una clave de debug y Play Console rechaza los bundles firmados en debug. Crea uno en el editor:

  1. Abre el Keystore Manager

    Ve a Edit → Project Settings → Player → Android → Publishing Settings y abre Keystore Manager.

  2. Crea el keystore

    Elige Keystore → Create New, guarda el archivo (donde quieras o en tu carpeta de keystores), pon una contraseña y añade una clave con un alias.

  3. Úsalo en los builds

    De vuelta en Publishing Settings, selecciona el keystore y el alias de la clave e introduce las contraseñas.

Este keystore es tu clave de subida. En la primera subida, Play Console configura la firma de aplicaciones de Play y Google guarda la clave de firma de la app. Haz copia del archivo y de las dos contraseñas fuera del proyecto; perder la clave de subida obliga a pedir un restablecimiento en Play Console.

Bundle Version Code y Target API Level

En Player → Other Settings → Identification, Version es lo que ven los jugadores y Bundle Version Code es el entero que compara Google. Sube el Bundle Version Code antes de cada build que vayas a subir; Play Console rechaza los códigos repetidos.

Al lado está Target API Level. Desde el 31 de agosto de 2026, las apps nuevas y las actualizaciones deben apuntar a Android 16 (nivel de API 36). En el modo automático, Unity usa el SDK más alto que tenga instalado; comprueba que sea al menos 36. Las versiones antiguas del editor pueden no admitir el nivel más reciente; en ese caso, actualiza Unity antes de la prueba, no durante.

Trampas de Unity

  • Build con Mono. Mono no puede generar ARM64. Play Console marca entonces la versión por no cumplir el requisito de 64 bits. Cambia a IL2CPP con ARM64.
  • Development Build activado. Los builds de desarrollo son más lentos, muestran una marca de agua de desarrollo y pueden marcarse como depurables, algo que Play Console rechaza.
  • SDK antiguos de anuncios y analítica. Los SDK de terceros desactualizados traen bibliotecas nativas y permisos antiguos. Actualízalos antes de probar: Play Console avisa de las bibliotecas que no admiten páginas de memoria de 16 KB y, a partir del 1 de febrero de 2027, no se podrán publicar actualizaciones sin esa compatibilidad.
  • Bundle demasiado grande. Si la subida falla por tamaño, activa Split Application Binary para que Unity mueva los recursos a paquetes de Play Asset Delivery en lugar del módulo base.
  • Minify rompe plugins. La minificación en release puede eliminar clases Java que los plugins cargan por nombre. Añade reglas de conservación o prueba la release minificada en un dispositivo antes de subirla.
  • Olvidar el código de versión. La segunda subida con el mismo Bundle Version Code falla. Automatiza el incremento o añádelo a tu lista de comprobación de release.

Símbolos de fallos nativos para builds IL2CPP

Cuando un juego de Unity falla en el teléfono de un tester, el stack trace apunta a libil2cpp, libunity o libmain. Sin símbolos, Play Console solo muestra direcciones en bruto, y Google Play no simboliza los fallos que llegaron antes de que subieras los símbolos. Configúralo antes de la primera versión cerrada, no después del primer fallo.

  1. Activa los símbolos

    En File → Build Profiles → Android, pon Debug Symbols en Public. Los símbolos públicos solo contienen la tabla de símbolos, suficiente para nombres de función legibles y con un archivo pequeño. Debugging añade toda la información de depuración para conectar un depurador nativo en local.

  2. Elige cómo llegan a Google

    Elige .zip para obtener un paquete con un nombre como MyApp-0.1-v100-IL2CPP.symbols.zip que subes tú, o incrusta los símbolos en el bundle para que se suban con el .aab. En un script de build, el fragmento de abajo hace lo segundo.

  3. Empareja símbolos y versiones

    Los símbolos pertenecen a un único Bundle Version Code. Si subes el zip a mano, hazlo en el Explorador de app bundles de Play Console, en la pestaña Descargas de esa versión, antes de que los testers la instalen.

Editor script (C#), e.g. in a CI build method
// Public symbols, embedded in the .aab so they upload with it
UserBuildSettings.DebugSymbols.level = DebugSymbolLevel.SymbolTable;
UserBuildSettings.DebugSymbols.format = DebugSymbolFormat.IncludeInBundle;

Si un plugin nativo trae un archivo de símbolos aparte, selecciónalo en el Inspector y pon Shared Library Type en Symbol con la CPU correspondiente. Debe llamarse igual que la biblioteca y estar en una carpeta separada.

Play Console en breve: de la prueba cerrada a producción

En cuanto tu bundle de Unity esté compilado y firmado, el resto ocurre en Play Console y funciona igual con cualquier framework. Esta es la lista de comprobación; cada menú y cada pantalla están en la guía completa de Play Console.

  • Termina la configuración de la app en el Panel: política de privacidad, acceso a la app, anuncios, clasificación de contenido, público objetivo, seguridad de los datos y ficha de Play Store.
  • Crea una versión de prueba cerrada en Probar y publicar → Pruebas → Prueba cerrada: elige los países de tus testers, sube el .aab y envíalo a revisión.
  • Añade testers con un Google Group en la pestaña Testers y comparte el enlace de opt-in. Funciona en cuanto el canal muestra Publicado.
  • Mantén al menos 12 testers con opt-in durante 14 días seguidos. Las pruebas internas no cuentan, y quien sale y vuelve empieza sus 14 días de nuevo.
  • Publica al menos una actualización durante la prueba y apunta qué encontraron los testers y qué cambiaste.
  • Solicita acceso a producción desde el Panel y responde las tres secciones sobre tu prueba, tu app y tu preparación. La decisión es de Google; nadie puede garantizar la aprobación.

Cuenta con bajas: recluta más de 12 testers para que una baja no retrase tu calendario. Ver todos los pasos de Play Console.

La guía completa de Play Console

Canal cerrado, Google Group y enlace de opt-in, la regla de 12 testers / 14 días y la solicitud de producción, paso a paso en una sola página.

Abrir los pasos de Play Console

Itera rápido sin romper la prueba

En Unity: sube Bundle Version Code, vuelve a compilar el .aab y súbelo al mismo canal cerrado. Basta con un pequeño arreglo publicado a mitad de la prueba.

En tus propios dispositivos, Build and Run instala el juego en el teléfono elegido en Run Device; una vez fijada la ruta de salida, Ctrl+B (macOS: Cmd+B) lo repite. El application patching de Unity acorta los builds de debug en tu dispositivo, pero no entrega nada a los testers: ellos siempre necesitan un .aab nuevo en el canal cerrado.

  • Las contraseñas no se guardan. Unity no almacena en disco las contraseñas del keystore ni de la clave, así que las vuelves a escribir tras cada reinicio del Editor. Para builds de CI repetibles, defínelas en el script de build del Editor, junto al aumento del código de versión de la sección de build.
  • Vigila el tamaño. Google Play limita el módulo base a 500 MB de descarga comprimida. Los juegos más grandes necesitan paquetes de recursos con Play Asset Delivery; los módulos y los paquetes install-time juntos pueden llegar a 4 GB.
  • Recompila tras actualizar lo nativo. El Editor muestra un aviso al compilar por cada .so alineado a 4 KB en lugar de 16 KB. Actualiza a la última versión de parche de tu Editor y de paquetes nativos como Burst, y recompila antes de la próxima subida.
  • Mantén estable la versión del Editor. Cambiar de versión de Unity a mitad de la prueba cambia las bibliotecas del motor que ejecutan los testers. Fija la versión durante los 14 días, salvo que un fallo obligue a actualizar.

Preguntas frecuentes

¿Puedo probar en un emulador de Android antes de subir?

Unity no admite emuladores de Android. Prueba en un dispositivo físico; Unity Remote ayuda con la entrada y el Device Simulator con el diseño de pantalla, pero ninguno sustituye un build de release en un teléfono real.

¿A qué niveles de API puede apuntar Unity 6?

La página de requisitos de Android de Unity para las versiones recientes de Unity 6 dice que puedes apuntar a los niveles de API 35 y 36, y Google Play exige 36 para apps nuevas y actualizaciones. La versión mínima compatible es Android 8.0 (nivel de API 26).

¿De verdad necesito IL2CPP?

Para Google Play, en la práctica sí: solo IL2CPP compila ARM64, y Google Play exige código nativo de 64 bits. IL2CPP es además lo que genera los símbolos de libil2cpp para informes de fallos legibles.

¿Por qué algunos testers no pueden abrir el juego?

Unity 6 necesita OpenGL ES 3.1 o Vulkan; OpenGL ES 3.0 y anteriores no son compatibles. Deja Vulkan activado y di a los testers el requisito mínimo antes de que hagan opt-in, para no perderlos el primer día.

Fuentes

Los detalles técnicos se han comprobado con la documentación oficial de abajo. Los menús y los valores por defecto cambian entre versiones; ante la duda, manda la página oficial.

¿Es tu primera vez con la regla de los 12 testers?

La guía general explica el requisito de Google, cómo avanza día a día una campaña de TestBunny y qué podemos y qué no podemos garantizar.

Leer la guía general

¿Necesitas 12 testers reales durante 14 días?

Añade tu app y tu enlace de prueba cerrada, elige Starter (15 testers) o Pro (25 testers) y sigue la actividad de cada tester día a día en tu panel.

TestBunny no está afiliado a Google. Los testers ganan créditos, nunca dinero. Nadie puede garantizar la decisión de Google sobre el acceso a producción, y nosotros tampoco.