# Paquetes de integración de aplicaciones de Launch

Launch **0.1.6** incorpora el SDK oficial de Licentivo **0.11.6** para los **nueve lenguajes**. Instale solo el paquete de Launch de su lenguaje. Incluye su implementación, el adaptador predeterminado, los avisos de licencia y la configuración de enlace del SDK. Las declaraciones TypeScript pertenecen a JavaScript; el backend Web de confianza en Go es un ejemplo adicional. Los códigos fuente públicos, los comandos de los registros y la disponibilidad por lenguaje se mantienen en el [repositorio del SDK de Launch](https://github.com/spf86/licentivo-launch-sdk) y en su [estado de publicación](https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/registry-status.json).

La actualización 0.1.6 incluye la corrección CMake de C/C++ procedente del proyecto original para usuarios de curl config-package y FindCURL. El protocolo de licencias, las API de aplicación y el ciclo de vida de cuentas no cambian. Las aplicaciones existentes pueden actualizar el paquete de Launch y recompilar sin modificar su código de integración. El [registro de publicación de 0.1.6](https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/publication-0.1.6.md) documenta la disponibilidad pública y la verificación de instalaciones limpias por separado de las compilaciones locales.

| Idioma | Artefacto único de Launch | Código fuente del paquete / guía de API |
| --- | --- | --- |
| Go | ZIP de módulo autónomo | [pkg/launchclient](https://github.com/spf86/licentivo-launch/blob/main/pkg/launchclient/README.md) |
| Python | licentivo_launch-0.1.6-py3-none-any.whl | [sdk/python](https://github.com/spf86/licentivo-launch/blob/main/sdk/python/README.md) |
| C# / .NET 8 | Licentivo.Launch.0.1.6.nupkg | [sdk/csharp](https://github.com/spf86/licentivo-launch/blob/main/sdk/csharp/README.md) |
| Java 17 | launch-client-0.1.6.jar y POM | [sdk/java](https://github.com/spf86/licentivo-launch/blob/main/sdk/java/README.md) |
| JavaScript / Node.js | licentivo-launch-0.1.6.tgz | [sdk/javascript](https://github.com/spf86/licentivo-launch/blob/main/sdk/javascript/README.md) |
| Rust | licentivo-launch-0.1.6.crate o ZIP del código fuente | [sdk/rust](https://github.com/spf86/licentivo-launch/blob/main/sdk/rust/README.md) |
| Ruby | Gem de Launch para la plataforma o gem del código fuente | [sdk/ruby](https://github.com/spf86/licentivo-launch/blob/main/sdk/ruby/README.md) |
| C | ZIP de instalación nativa CMake de Launch | [sdk/native](https://github.com/spf86/licentivo-launch/blob/main/sdk/native/README.md) |
| C++ | El mismo archivo nativo, API C++17 | [sdk/native](https://github.com/spf86/licentivo-launch/blob/main/sdk/native/README.md) |

## Instalar desde un registro público

Las comprobaciones de instalación pública de 0.1.6 se han superado para los nueve lenguajes: Go, Python, C#, Java, Node.js/TypeScript, Rust, Ruby, C y C++. Los comandos de los registros y las descargas nativas siguientes están disponibles públicamente y verificados en proyectos consumidores independientes. El estado de publicación registra las sumas de comprobación exactas de los paquetes, los resultados de instalación y los límites de plataforma.

```sh
go get github.com/spf86/licentivo-launch-sdk/pkg/launchclient@v0.1.6
python -m pip install licentivo-launch==0.1.6
npm install @licentivo/launch@0.1.6
dotnet add package Licentivo.Launch --version 0.1.6
cargo add licentivo-launch@=0.1.6
gem install licentivo-launch --version 0.1.6
```

Java usa las coordenadas Maven/Gradle `com.licentivo.launch:launch-client:0.1.6`.
C/C++ usan el archivo nativo compatible con ABI de la [versión publicada de GitHub](https://github.com/spf86/licentivo-launch-sdk/releases/tag/v0.1.6).
Consulte el estado de publicación para conocer la propagación en registros y los resultados de verificación.

## Instalar una distribución descargada

Use los artefactos identificados en integration-packages.json. Cada lenguaje registra sdk_managed: true y requires_separate_official_sdk: false. Verifique SHA256SUMS antes de instalar.

```powershell
python -m pip install ./licentivo_launch-0.1.6-py3-none-any.whl
npm install ./licentivo-launch-0.1.6.tgz
dotnet add YOUR_PROJECT package Licentivo.Launch --version 0.1.6 --source YOUR_LOCAL_FEED
gem install --local ./licentivo-launch-0.1.6-x64-mingw-ucrt.gem
```

Java solo usa el JAR de Launch en su classpath; su POM no depende del SDK oficial. Los usuarios de Go sin conexión pueden extraer el ZIP del módulo y usar un require/replace local para `github.com/spf86/licentivo-launch-sdk`. Los usuarios de Rust sin conexión pueden extraer el crate o ZIP del código fuente y añadir una dependencia de ruta local licentivo-launch. No se necesita un paquete ni una copia del repositorio del SDK oficial.

Para C/C++, extraiga el ZIP de instalación nativa, añada su prefijo a CMake y use:

```cmake
find_package(LicentivoLaunch CONFIG REQUIRED)
add_executable(myapp main.c)
licentivo_launch_link(myapp)
# C++17 target: licentivo_launch_link(myapp CXX)
```

Launch resuelve su propio SDK, las bibliotecas transitivas y las DLL de Windows incluidas. build.rs de Rust compila su núcleo C incorporado y copia las DLL incluidas junto a los ejecutables de Cargo. La gem de Ruby para la plataforma incluye su núcleo nativo privado y sus bibliotecas de ejecución; la gem del código fuente compila el núcleo automáticamente.

Siguen siendo necesarias las herramientas normales del lenguaje y las dependencias habituales: pip resuelve cryptography, NuGet resuelve BouncyCastle.Cryptography y Cargo resuelve los crates normales de Rust. Los archivos nativos cubren Windows amd64 GNU y Linux amd64. Las distribuciones de Windows incluyen curl. Otros sistemas operativos usan el código fuente completo con un compilador C11 y las bibliotecas de desarrollo normales curl/OpenSSL del sistema. El núcleo nativo de Windows del SDK 0.11.6 requiere GNU/MinGW.

## Inicializar la aplicación

Seleccione el software existente en Launch. Lee automáticamente el URL actual del comerciante, la asignación de planes/productos existente y las claves públicas de firma oficiales, y proporciona una función de conexión rellenada. Copie esa función a la aplicación; no es necesario introducir ID internos manualmente ni generar archivos de configuración. El servidor sigue arrancando con el archivo privado config.yaml, que nunca se distribuye con la aplicación.

Use el punto de entrada del paquete, como launchclient.Connect, Application.connect de Python, Application.Connect de C# o Application.connect de Node. La factoría incluida crea y gestiona el SDK. Las factorías personalizadas son hooks opcionales de prueba/integración, no pasos de instalación. Las API exactas están en el README y el ejemplo de cada paquete.

Launch gestiona el inicio de sesión de cuentas, las credenciales con alcance definido, los reintentos limitados de estados pendientes y la recuperación. El SDK incorporado verifica firmas y autoriza cada operación protegida. El cierre normal, el cierre de sesión y la liberación de dispositivos siguen siendo acciones distintas. Las aplicaciones Web comprueban permisos en un backend de confianza; el código Node/Electron debe estar en el proceso principal o del servidor.

Las instrucciones de desarrollo manual siguen en [manual-integration.md](/es/launch-documents/manual-integration/) y en los README de cada lenguaje. La página administrativa de integración con IA genera instrucciones en inglés para el mismo procedimiento de inicialización directa. Excluye contraseñas, claves administrativas y credenciales de ejecución de clientes/dispositivos y no llama a servicios de IA. Consulte [Integración con IA](/es/launch-documents/ai-integration/).

## Compilar distribuciones como responsable de mantenimiento

Solo los responsables de mantenimiento que actualizan el SDK incorporado necesitan código fuente revisado del proyecto original. Los usuarios de paquetes omiten esta sección.

```powershell
./scripts/prepare-examples.ps1 -Source 'C:\path\to\reviewed-sdk\sdk'
./scripts/build-integration-packages.ps1 -Output artifacts/NEW_DIRECTORY -BuildRustCrate -BuildNative -CurlRoot PATH_TO_CURL -CCompiler PATH_TO_GCC
```

Proporcione rutas de herramientas con -Python, -DotNet, -JavaHome, -Ruby, -Cargo y -CMake según sea necesario. El generador verifica el manifiesto del proyecto original; después prepare-managed-sdk.mjs incorpora los códigos fuente y registra los valores SHA-256 de origen/destino en sdk/managed-sdk-manifest.json. Las ubicaciones e importaciones de módulos cambian cuando es necesario; la verificación criptográfica permanece en la implementación revisada. Las licencias MIT y los avisos acompañan a cada copia incorporada.

Cada compilación crea un directorio nuevo con artefactos por lenguaje, archivos del código fuente, un paquete combinado de código fuente, inventario y sumas de comprobación. -SourceOnly genera explícitamente artefactos de código fuente; los destinos omitidos no son versiones binarias probadas. El paquete combinado conserva las rutas de paquetes, ejemplos, documentación y pruebas sin requerir examples/vendor.

## Verificar instalaciones y comportamiento

scripts/test-managed-installations.ps1 instala la distribución en proyectos consumidores nuevos. Verifica los nueve destinos sin un paquete separado del SDK oficial, una ruta de código fuente SDK, un adaptador copiado ni configuración manual de enlace del SDK. Compila y ejecuta los fragmentos exactos generados de conexión directa, incluidos los datos públicos escapados, e informa de configuration_files_required: false. Su informe es independiente de la batería de ejecución.

scripts/test-integration-packages.ps1 ejecuta regresiones del ciclo de vida y fixtures del SDK real firmadas localmente. Proporcione rutas de herramientas y una compilación nativa de prueba configurada:

```powershell
./scripts/test-integration-packages.ps1 -Python python -DotNet dotnet -JavaHome $env:JAVA_HOME -Ruby ruby -Cargo cargo -NativeBuildDirectory .cache/launch-native-build
```

Las compilaciones del código fuente del repositorio usan dependencias nativas normales del sistema operativo; los responsables de Windows pueden proporcionar LICENTIVO_CURL_ROOT. Es un ajuste de herramientas de compilación de código fuente, no una instalación separada del SDK. Con instalaciones MinGW distintas para Rust/C++, -NativeRuntimeDirectories limita los directorios DLL de C++ a las comprobaciones nativas. La falta de requisitos previos hace fallar el destino afectado. all_nine_passed exige superar las nueve comprobaciones.

## Almacenamiento y aceptación

Las sesiones se guardan en memoria por defecto. Recordar el inicio de sesión necesita un almacén protegido. Los almacenes AES-GCM requieren una clave de 32 bytes obtenida de un almacén seguro del sistema operativo y nunca guardada junto al texto cifrado. Las contraseñas nunca se conservan de forma persistente. Go, Python, C# y C/C++ nativos ofrecen DPAPI del usuario actual de Windows; Java, Node, Rust y Ruby ofrecen almacenes cifrados con claves gestionadas por el llamante.

Los archivos de dispositivos del SDK conservan el formato del proyecto original. Cifrar la sesión no cifra todos los archivos del SDK. Restrinja los directorios de caché separados por cuenta/producto/entorno y exclúyalos de instaladores, registros y control de versiones. Los cambios de identidad/configuración no pueden reutilizar la caché de otra cuenta.

Un rechazo explícito de sesión/derecho no puede recurrir al modo sin conexión. Solo los fallos de transporte o HTTP 5xx pueden usar una autorización existente verificada criptográficamente dentro de su política firmada. La primera activación, los puestos flotantes y las políticas que prohíben el uso sin conexión mantienen sus requisitos de conectividad.

Los informes locales nunca demuestran un pago real, una emisión ni una activación externa. Ese entorno se aplazó; consulte [acceptance.md](/es/launch-documents/acceptance/). La publicación en registros y la cualificación de versiones para sistemas distintos de Windows requieren trabajo y pruebas independientes.
