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 發行版驗收需要獨立工作與證據。