Launch 应用接入包
Launch 0.1.6 为全部九种语言内置官方 Licentivo SDK 0.11.6。只安装所用语言的 Launch 包,已包含实现、默认适配器、许可证声明和 SDK 链接配置。TypeScript 声明属于 JavaScript;受信 Go Web 后端是额外示例。公开源码、注册表安装命令和各语言可用状态维护在 Launch SDK 仓库及其发布状态中。
0.1.6 更新包含上游 C/C++ CMake 对 curl 配置包和 FindCURL 使用方的修复。授权协议、应用 API 和账号生命周期不变。现有应用可升级 Launch 包并重新构建,无需改变接入代码。0.1.6 发布记录分别记录公开可用状态、干净安装验证和本地构建。
| 语言 | 单一 Launch 交付包 | 包源码 / API 指南 |
|---|---|---|
| Go | 自包含模块 ZIP | pkg/launchclient |
| Python | licentivo_launch-0.1.6-py3-none-any.whl | sdk/python |
| C# / .NET 8 | Licentivo.Launch.0.1.6.nupkg | sdk/csharp |
| Java 17 | launch-client-0.1.6.jar 和 POM | sdk/java |
| JavaScript / Node.js | licentivo-launch-0.1.6.tgz | sdk/javascript |
| Rust | licentivo-launch-0.1.6.crate 或源码 ZIP | sdk/rust |
| Ruby | 对应平台的 Launch gem 或源码 gem | sdk/ruby |
| C | Launch 原生 CMake 安装 ZIP | sdk/native |
| C++ | 同一原生压缩包,C++17 API | sdk/native |
从公开注册表安装
0.1.6 的九种语言公开安装检查均通过:Go、Python、C#、Java、Node.js/TypeScript、Rust、Ruby、C 和 C++。下列注册表命令与原生下载均已公开,并在独立使用方项目中验证。发布状态记录精确的包校验值、安装结果和平台限制。
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 使用 Maven/Gradle 坐标 com.licentivo.launch:launch-client:0.1.6。
C/C++ 使用对应版本的 GitHub 发布包中兼容 ABI 的原生压缩包。
注册表传播和验证结果参见发布状态。
安装已下载的分发包
使用 integration-packages.json 标识的交付包。各语言均记录 sdk_managed: true 和 requires_separate_official_sdk: false。安装前验证 SHA256SUMS。
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 的 classpath 只使用 Launch JAR;其 POM 不依赖官方 SDK。Go 离线使用方可解压模块 ZIP,为 github.com/spf86/licentivo-launch-sdk 设置本地 require/replace。Rust 离线使用方可解压 crate 或源码 ZIP,并添加本地 licentivo-launch 路径依赖。不需要官方 SDK 包或源码检出。
C/C++ 应解压原生安装 ZIP,将其前缀加入 CMake,并使用:
find_package(LicentivoLaunch CONFIG REQUIRED)
add_executable(myapp main.c)
licentivo_launch_link(myapp)
# C++17 target: licentivo_launch_link(myapp CXX)
Launch 自行解析其 SDK、传递依赖和随包 Windows DLL。Rust 的 build.rs 编译内置 C 核心,并将随包 DLL 复制到 Cargo 可执行文件旁。Ruby 平台 gem 包含私有原生核心和运行库;源码 gem 会自动编译核心。
仍需正常的语言工具链和普通依赖:pip 解析 cryptography,NuGet 解析 BouncyCastle.Cryptography,Cargo 解析普通 Rust crate。原生压缩包覆盖 Windows amd64 GNU 和 Linux amd64。Windows 分发包包含 curl。其他操作系统使用完整源码、C11 编译器和系统常规 curl/OpenSSL 开发库。SDK 0.11.6 的 Windows 原生核心要求 GNU/MinGW。
初始化应用
在 Launch 中选择已有软件。系统自动读取当前商户 URL、已有套餐与产品映射及官方签名公钥,提供已填充的连接函数。将此函数复制到应用中,无需手填内部 ID 或生成配置文件。服务端启动仍使用私有 config.yaml,绝不能随应用发布。
使用包入口,如 launchclient.Connect、Python Application.connect、C# Application.Connect 或 Node Application.connect。内置工厂创建并管理 SDK。自定义工厂只是可选的测试或接入扩展钩子,不是安装步骤。精确 API 见各包 README 和示例。
Launch 处理账号登录、限定范围凭据、有界的待处理重试和恢复。内置 SDK 验证签名并授权每次受保护操作。普通关闭、账号退出和设备释放保持不同。Web 应用在受信后端检查权限;Node/Electron 代码放在主进程或服务端进程。
手动开发说明仍位于 manual-integration.md 和各语言 README。后台 AI 接入页为同一直接初始化流程生成英文说明,不包含密码、管理密钥和运行时客户或设备凭据,也不会调用 AI 服务。参见 AI 接入。
维护者构建分发包
只有更新内置 SDK 的维护者才需要经审核的上游源码。使用方可跳过此节。
./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
按需通过 -Python、-DotNet、-JavaHome、-Ruby、-Cargo 和 -CMake 提供工具路径。构建器验证上游清单,随后 prepare-managed-sdk.mjs 内置源码,并在 sdk/managed-sdk-manifest.json 中记录来源与目标 SHA-256。必要时调整模块位置和导入路径;加密验证仍由经审核的实现负责。每份内置副本均附带 MIT 许可证和声明。
每次构建创建新目录,包含各语言交付包、源码压缩包、合并源码包、清单和校验值。-SourceOnly 明确只生成源码交付物;跳过的目标不能视为经过测试的二进制发行版。合并包保留包、示例、文档和测试路径,无需 examples/vendor。
验证安装和行为
scripts/test-managed-installations.ps1 将分发包安装到全新的使用方项目。验证全部九种目标,无需独立官方 SDK 包、SDK 源码路径、手动复制适配器或配置 SDK 链接。编译并执行精确生成的直接连接代码,包括经过转义的公开数据,并报告 configuration_files_required: false。其报告与运行时测试套件独立。
scripts/test-integration-packages.ps1 运行生命周期回归及本地签名的真实 SDK 测试夹具。提供工具路径和已配置的原生测试构建:
./scripts/test-integration-packages.ps1 -Python python -DotNet dotnet -JavaHome $env:JAVA_HOME -Ruby ruby -Cargo cargo -NativeBuildDirectory .cache/launch-native-build
仓库源码构建使用系统常规原生依赖;Windows 维护者可提供 LICENTIVO_CURL_ROOT。这是源码构建工具设置,不是单独安装 SDK。Rust/C++ 使用不同 MinGW 安装时,-NativeRuntimeDirectories 将 C++ DLL 目录限定于原生检查。缺少前置条件时,对应目标失败。all_nine_passed 要求九项检查全部通过。
存储与验收
会话默认只存内存。记住登录要求受保护的存储。AES-GCM 存储要求从操作系统保险库取得 32 字节密钥,绝不能与密文放在一起。密码从不持久保存。Go、Python、C# 和原生 C/C++ 提供 Windows 当前用户 DPAPI;Java、Node、Rust 和 Ruby 提供由调用方管理密钥的加密存储。
SDK 设备文件保留上游格式。会话加密不代表全部 SDK 文件都被加密。限制按账号、产品和环境分隔的缓存目录访问,并从安装包、日志和版本管理中排除。身份或配置改变后,不能复用另一账号的缓存。
明确的会话或权益拒绝不能离线回退。只有传输失败或 HTTP 5xx 才可在签名策略范围内使用已通过加密验证的现有授权。首次激活、浮动席位和禁止离线的策略仍要求联网。
本地报告绝不证明真实付款、签发或外部激活。该环境已延期,参见 acceptance.md。注册表发布和非 Windows 发行版验收需要独立工作与证据。