# 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 构建不匹配 |