diff --git a/CHANGELOG.md b/CHANGELOG.md index d772fb5..9f2905b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.1.3 + +- Updated Runtime and Editor DLLs with hardened license validation. +- Added customer license request documentation. +- Kept internal license generator and source-only sample generation menus out of the public DLL-only package. + ## 0.1.2 - Updated public documentation to use the official Git URL: `https://git.aisu.xin/aisu-sdk/si-m1-face-package.git`. diff --git a/Documentation~/SDK_License_Request.md b/Documentation~/SDK_License_Request.md new file mode 100644 index 0000000..637a908 --- /dev/null +++ b/Documentation~/SDK_License_Request.md @@ -0,0 +1,73 @@ +# SI-M1 Face SDK License Request + +This public DLL-only package requires a project-specific license file for real serial-port runtime usage. Mock mode does not require a license. + +## License File Path + +Place the license file at: + +```text +Assets/StreamingAssets/si-m1_face.dat +``` + +The SDK reads this file through `Application.streamingAssetsPath`. + +## Required Unity Binding Parameters + +Provide these values from the Unity project that will run the SDK: + +| Field | Unity Source | +|---|---| +| `identifier` | `Application.identifier` | +| `companyName` | `Application.companyName` | +| `productName` | `Application.productName` | +| `version` | `Application.version` | +| `unityVersion` | `Application.unityVersion` | + +If any of these values changes, the existing license becomes invalid and a new license is required. + +## Parameter Probe + +Add this temporary script to the customer project and copy the Console output when requesting a license: + +```csharp +using UnityEngine; + +public sealed class FaceLicenseParameterPrinter : MonoBehaviour +{ + private void Awake() + { + Debug.Log("identifier=" + Application.identifier); + Debug.Log("companyName=" + Application.companyName); + Debug.Log("productName=" + Application.productName); + Debug.Log("version=" + Application.version); + Debug.Log("unityVersion=" + Application.unityVersion); + } +} +``` + +## Request Information + +Provide: + +| Item | Example | +|---|---| +| Customer name | `customer-a` | +| Project name | `Face App` | +| Unity binding parameters | See above | +| License start time | `2026-08-10T00:00:00+08:00` | +| License expiry time | `2027-08-10T00:00:00+08:00` | +| Licensed features | `SerialRuntime,Basic,Verify,Enroll` | + +License times use Beijing time and must use `yyyy-MM-ddTHH:mm:ss+08:00`. + +## Common Failures + +| Symptom | Cause | +|---|---| +| License file missing | `si-m1_face.dat` is not under `Assets/StreamingAssets` | +| Binding mismatch | One of the Unity binding parameters changed | +| Expired | Current Beijing time is after `expireAt` | +| Not yet valid | Current Beijing time is before `issuedAt` | +| Feature denied | The license does not include the requested SDK feature | +| Invalid signature | The file was modified or does not match this SDK build | diff --git a/Documentation~/SDK_License_Request.md.meta b/Documentation~/SDK_License_Request.md.meta new file mode 100644 index 0000000..56106cf --- /dev/null +++ b/Documentation~/SDK_License_Request.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7f0d681e6f6b4d6a86f6a989cdf55091 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Documentation~/SDK_License_Request.zh-CN.md b/Documentation~/SDK_License_Request.zh-CN.md new file mode 100644 index 0000000..f7d8b8e --- /dev/null +++ b/Documentation~/SDK_License_Request.zh-CN.md @@ -0,0 +1,73 @@ +# SI-M1 Face SDK 授权申请 + +DLL-only 公开包在真实串口运行时需要项目专用授权文件。Mock 模式不需要授权。 + +## 授权文件路径 + +授权文件必须放在客户 Unity 项目中: + +```text +Assets/StreamingAssets/si-m1_face.dat +``` + +SDK 会通过 `Application.streamingAssetsPath` 读取该文件。 + +## 需要提供的 Unity 绑定参数 + +申请授权时需要提供运行 SDK 的 Unity 项目参数: + +| 字段 | Unity 读取来源 | +|---|---| +| `identifier` | `Application.identifier` | +| `companyName` | `Application.companyName` | +| `productName` | `Application.productName` | +| `version` | `Application.version` | +| `unityVersion` | `Application.unityVersion` | + +这些值任意变化后,已有授权会失效,需要重新申请授权。 + +## 参数打印脚本 + +客户可以在项目中临时添加以下脚本,并把 Console 输出发给授权人员: + +```csharp +using UnityEngine; + +public sealed class FaceLicenseParameterPrinter : MonoBehaviour +{ + private void Awake() + { + Debug.Log("identifier=" + Application.identifier); + Debug.Log("companyName=" + Application.companyName); + Debug.Log("productName=" + Application.productName); + Debug.Log("version=" + Application.version); + Debug.Log("unityVersion=" + Application.unityVersion); + } +} +``` + +## 授权申请信息 + +建议提供: + +| 项 | 示例 | +|---|---| +| 客户名称 | `customer-a` | +| 项目名称 | `Face App` | +| Unity 绑定参数 | 见上文 | +| 授权开始时间 | `2026-08-10T00:00:00+08:00` | +| 授权过期时间 | `2027-08-10T00:00:00+08:00` | +| 授权功能 | `SerialRuntime,Basic,Verify,Enroll` | + +授权时间使用北京时间,格式必须为 `yyyy-MM-ddTHH:mm:ss+08:00`。 + +## 常见失败原因 + +| 现象 | 原因 | +|---|---| +| 授权文件不存在 | `si-m1_face.dat` 没有放在 `Assets/StreamingAssets` 下 | +| 授权绑定不匹配 | Unity 绑定参数发生变化 | +| 授权已过期 | 当前北京时间晚于 `expireAt` | +| 授权尚未生效 | 当前北京时间早于 `issuedAt` | +| 功能未授权 | 授权中不包含当前调用的 SDK 功能 | +| 签名无效 | 授权文件被修改,或与当前 SDK 构建不匹配 | diff --git a/Documentation~/SDK_License_Request.zh-CN.md.meta b/Documentation~/SDK_License_Request.zh-CN.md.meta new file mode 100644 index 0000000..554de2e --- /dev/null +++ b/Documentation~/SDK_License_Request.zh-CN.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9204393b20cb4dd9a9edb6f230fe6d3b +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Editor/Aisu.SIM1.Face.Editor.dll b/Editor/Aisu.SIM1.Face.Editor.dll index c8d7bc5..fc07a7e 100644 Binary files a/Editor/Aisu.SIM1.Face.Editor.dll and b/Editor/Aisu.SIM1.Face.Editor.dll differ diff --git a/README.md b/README.md index a6ffe4c..3bf496a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ |---|---| | Package Name | `xin.aisu.si-m1.face` | | Display Name | `AISU SI-M1 Face SDK` | -| Version | `0.1.2` | +| Version | `0.1.3` | | Runtime Assembly | `Aisu.SIM1.Face.Runtime.dll` | | Editor Assembly | `Aisu.SIM1.Face.Editor.dll` | | Unity Version | `2021.3` or newer | @@ -21,13 +21,13 @@ Add the package through Unity Package Manager using this Git URL: ```text -https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.2 +https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.3 ``` Or add it to `Packages/manifest.json`: ```json -"xin.aisu.si-m1.face": "https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.2" +"xin.aisu.si-m1.face": "https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.3" ``` Unity may display Git packages as `xin.aisu.si-m1.face@` in `Library/PackageCache`. This is expected for Git URL packages; the package version remains defined by `package.json`. @@ -65,6 +65,7 @@ public sealed class FaceExample : MonoBehaviour | [Quick Start](Documentation~/SDK_QuickStart.md) | [快速开始](Documentation~/SDK_QuickStart.zh-CN.md) | | [Configuration](Documentation~/SDK_Configuration.md) | [配置说明](Documentation~/SDK_Configuration.zh-CN.md) | | [API Reference](Documentation~/SDK_API_Reference.md) | [API 参考](Documentation~/SDK_API_Reference.zh-CN.md) | +| [License Request](Documentation~/SDK_License_Request.md) | [授权申请](Documentation~/SDK_License_Request.zh-CN.md) | | [Mock and Testing](Documentation~/SDK_Mock_And_Testing.md) | [Mock 与测试](Documentation~/SDK_Mock_And_Testing.zh-CN.md) | | [Demo UI Notice](Documentation~/README_UI.md) | [Demo UI 说明](Documentation~/README_UI.zh-CN.md) | diff --git a/README.zh-CN.md b/README.zh-CN.md index d80186e..fb2146f 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -10,7 +10,7 @@ English documentation: [README.md](README.md). |---|---| | Package Name | `xin.aisu.si-m1.face` | | Display Name | `AISU SI-M1 Face SDK` | -| Version | `0.1.2` | +| Version | `0.1.3` | | Runtime Assembly | `Aisu.SIM1.Face.Runtime.dll` | | Editor Assembly | `Aisu.SIM1.Face.Editor.dll` | | Unity Version | `2021.3` 或更高 | @@ -21,13 +21,13 @@ English documentation: [README.md](README.md). 在 Unity Package Manager 中使用以下 Git URL 导入: ```text -https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.2 +https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.3 ``` 或写入 `Packages/manifest.json`: ```json -"xin.aisu.si-m1.face": "https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.2" +"xin.aisu.si-m1.face": "https://git.aisu.xin/aisu-sdk/si-m1-face-package.git#v0.1.3" ``` Unity 对 Git URL 包可能会在 `Library/PackageCache` 中显示为 `xin.aisu.si-m1.face@`。这是 Git 包的正常行为;包版本仍由 `package.json` 中的 `version` 字段定义。 @@ -65,6 +65,7 @@ public sealed class FaceExample : MonoBehaviour | [Quick Start](Documentation~/SDK_QuickStart.md) | [快速开始](Documentation~/SDK_QuickStart.zh-CN.md) | | [Configuration](Documentation~/SDK_Configuration.md) | [配置说明](Documentation~/SDK_Configuration.zh-CN.md) | | [API Reference](Documentation~/SDK_API_Reference.md) | [API 参考](Documentation~/SDK_API_Reference.zh-CN.md) | +| [License Request](Documentation~/SDK_License_Request.md) | [授权申请](Documentation~/SDK_License_Request.zh-CN.md) | | [Mock and Testing](Documentation~/SDK_Mock_And_Testing.md) | [Mock 与测试](Documentation~/SDK_Mock_And_Testing.zh-CN.md) | | [Demo UI Notice](Documentation~/README_UI.md) | [Demo UI 说明](Documentation~/README_UI.zh-CN.md) | diff --git a/Runtime/Aisu.SIM1.Face.Runtime.dll b/Runtime/Aisu.SIM1.Face.Runtime.dll index 1d64a7d..60e33ca 100644 Binary files a/Runtime/Aisu.SIM1.Face.Runtime.dll and b/Runtime/Aisu.SIM1.Face.Runtime.dll differ diff --git a/package.json b/package.json index 1eb6a74..4129020 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ -{ +{ "name": "xin.aisu.si-m1.face", "displayName": "AISU SI-M1 Face SDK", - "version": "0.1.2", + "version": "0.1.3", "unity": "2021.3", "description": "Unity UPM package for the AISU SI-M1 face recognition module protocol, transport, command services, and lifecycle manager. Distributed as compiled DLLs without source code.", "author": {