Desarrollo Web 5-8 minutos

Cómo instalar apps en modo desarrollador en TV Samsung (serie 2020 / Tizen 5.5)

Diego Cortés
Diego Cortés
Full Stack Developer & SEO Specialist
Compartir:
Cómo instalar apps en modo desarrollador en TV Samsung (serie 2020 / Tizen 5.5)

Instalar tu propia aplicación en una TV Samsung parece tarea de cinco minutos, hasta que el modo desarrollador te responde con un críptico "Parsing error". Después de horas de prueba y error con una TV de la serie 2020 (Tizen 5.5), esta es la guía completa que me habría ahorrado el día: el método 12345, los certificados correctos y el comando de instalación que de verdad registra la app.

Qué necesitas antes de empezar

La receta funciona con cualquier TV Samsung de la serie 2019–2020 (Tizen 4.0–5.5) y es la base para las más nuevas. El procedimiento asume un PC con Tizen Studio instalado, pero los conceptos (certificados, config.xml, comandos) aplican igual en Linux, macOS y Windows.

  • Una TV Samsung con el modo desarrollador accesible (esta guía usa una serie 2020 / Tizen 5.5).
  • Tizen Studio en el PC: en Linux/macOS vive en ~/tizen-studio; en Windows en C:\tizen-studio. El CLI debe ser 2.5.25 o superior (tizen version para comprobar).
  • La TV y el PC conectados a la misma red local.
  • El paquete de tu app: un .wgt con su config.xml en la raíz.

Activar el modo desarrollador

Aquí está la primera trampa: en las series 2019–2020 no existe la app "Samsung Developer Mode" en la tienda. El acceso es un método oculto.

El método 12345 (serie 2019–2020)

  1. En la TV, abre el panel de Apps.
  2. Con el control, teclea 12345 (aparece un buscador/teclado numérico).
  3. Se abre la pantalla de Developer Mode: pon Developer mode: ON e ingresa la Host PC IP (la IP LAN del PC desde el que instalarás).
  4. Guarda. La TV se reinicia y queda en modo dev (verás el aviso "Apps (DEVELOP MODE)").

Modelos 2021 y posteriores

En las TVs más nuevas se instala la app "Samsung Developer Mode" desde la tienda de apps (normalmente pide iniciar sesión con una cuenta Samsung). El resto del flujo es el mismo.

Particularidades del puerto 26101 (sdb)

Tres detalles que parecen fallos pero son comportamiento normal del modo dev:

  • El puerto solo escucha mientras la pantalla del modo dev está abierta en la TV. Si la cierras o entra el salvapantallas, las conexiones fallan. Déjala abierta durante la instalación.
  • La TV rechaza las conexiones desde cualquier IP distinta a la registrada: el puerto acepta el TCP y corta con RST en cuanto llegan datos. Si cambia tu IP (DHCP), vuelve a entrar el modo dev y actualiza el host.
  • Si el modo dev se comporta raro, desenchufa la TV 60 segundos. Apagarla con el control es solo standby y no limpia los procesos del sistema.

Certificados: la parte que nadie explica

La TV rechaza el perfil de firma por defecto de Tizen Studio. Ese perfil firma con un certificado "de emulador" y la TV lo rechaza al validar la firma. La solución es crear un certificado de autor propio y firmar con el distribuidor público que trae el SDK.

Crear el certificado de autor

El detalle que cuesta encontrar: el alias del certificado ES el author-id que la TV exige en el nombre de la app. Úsalo corto y estable.

tizen certificate -a mialias -p TU_CONTRASEÑA -c CL -s Region -ct Ciudad \
    -o TuEmpresa -u Dev -n TuNombre -e tu@email.com -f mialias

Se genera en ~/tizen-studio-data/keystore/author/mialias.p12.

Crear el perfil de firma con el distribuidor público

SDKDIST=~/tizen-studio/tools/certificate-generator/certificates/distributor/sdk-public
tizen security-profiles add -n MiPerfil \
    -a ~/tizen-studio-data/keystore/author/mialias.p12 -p TU_CONTRASEÑA \
    -c "$SDKDIST/tizen-distributor-ca.cer" \
    -d "$SDKDIST/tizen-distributor-signer.p12" \
    -dp tizenpkcs12passfordsigner
tizen security-profiles set-active -n MiPerfil
tizen cli-config "profiles.path=$HOME/tizen-studio-data/profile/profiles.xml"

El password del distribuidor público (tizenpkcs12passfordsigner) es fijo en el SDK; el certificado de emulador (tizen-distributor-signer.p12 de la carpeta distributor/) es el que la TV rechaza.

config.xml: lo que la TV valida de verdad

Un config.xml que Tizen Studio acepta sin quejarse puede ser rechazado por la TV. Estas son las reglas verificadas:

El author-id en el nombre de la app

El id debe empezar por tu author-id y el atributo package debe ser exactamente el author-id:

<tizen:application id="mialias.miapp" package="mialias" required_version="4.0"/>

Si no coincide, la TV responde Author certificate not match.

app-control y tizen:setting

El bloque tizen:app-control solo acepta operaciones válidas para TV; la que funciona en la práctica es la de reanudación de Samsung:

<tizen:app-control>
    <tizen:src name="index.html" reload="disable"/>
    <tizen:operation name="http://samsung.com/appcontrol/operation/eden_resume"/>
</tizen:app-control>

Y tizen:setting solo admite los atributos del schema (screen-orientation, context-menu, background-support, encryption, install-location, hwkey-event). Cualquier atributo inventado produce el temido "Parsing error" al instalar.

Además, <tizen:launch_screen enabled="true"/> sin imagen asociada puede impedir que la app arranque ("Espere un momento y reintente"); si te pasa, elimina ese elemento.

Instalar y lanzar: tizen install, no sdb install

Este es el error más costoso de todos. sdb install empuja el .wgt a la TV pero NO registra la aplicación: el comando termina "bien" y la app no aparece en ningún lado. El instalador real de las apps web de la TV se invoca con el CLI de Tizen:

# 1) Conectar por sdb (con la pantalla del modo dev abierta)
sdb connect 192.168.1.50:26101

# 2) Instalar de verdad (vía wascmd/vd_appinstall)
tizen install -n miapp.wgt -s 192.168.1.50:26101
# → "Tizen application is successfully installed."

# 3) Lanzar
tizen run -p mialias.miapp -s 192.168.1.50:26101

Ojo también con el directorio de build: si el -out del build queda anidado dentro de una copia del proyecto, el paquete incluye archivos sin firmar y la TV responde An unsigned file was found. Construye siempre hacia un directorio limpio y fuera del árbol de la app.

Errores comunes y sus causas reales

MensajeCausa
install failed[118, -19] Parsing errorFirma con el certificado de emulador, o un elemento inválido en config.xml (app-control, tizen:setting).
install failed[118, -11] Author certificate not matchEl package o el prefijo del id no es tu author-id (el alias del certificado).
install failed[118, -12] An unsigned file was foundEl directorio de build quedó anidado dentro de la app y hay archivos fuera de la firma.
sdb install "exitoso" pero la app no aparecesdb install no registra la app; usa tizen install.
NoClassDefFoundError: org/eclipse/core/runtime/PluginCLI de Tizen antiguo (menor a 2.5.25): actualiza los directorios bin, conf-ncli y lib-ncli del SDK.

Conclusión

Instalar una app en una TV Samsung en modo desarrollador se resume en tres reglas que cuestan caras de descubrir: el modo dev de las series 2020 se activa con el 12345 y exige tu IP; la firma debe usar el distribuidor público con el author-id como nombre de app; y la instalación real se hace con tizen install, no con sdb install. Con estos tres puntos, tu app queda en la TV en minutos.

Categorías