iOS 客户端接入
本文说明如何在 iOS 项目中集成客户端 SDK。SDK 以 XCFramework 形式提供,同时包含真机与模拟器切片。
前置条件
- 拥有项目源码,Xcode 环境可正常编译
- Mac 系统,已安装对应版本的 Xcode
- 已在控制台创建 iOS 平台实例,取得接入码
客户端 SDK 安装包含 Windows / Android / iOS 三个平台的库文件
下载 SDK
集成步骤
- 解压 SDK 包,找到
ios/Protect.xcframework。 - 确认原项目可正常编译。如果 Build Settings 中存在 Enable Bitcode 选项,先关闭。
- 把
Protect.xcframework拖入 Xcode 的 Project Navigator,弹窗中勾选 Copy items if needed。 - 打开项目 General 页,在 Frameworks, Libraries, and Embedded Content 段把 Protect 设置为 Embed & Sign。
- 在 App 启动时调用
protect_start,退出前调用protect_stop。
Bitcode 必须关闭。如果 Build Settings 里存在 Enable Bitcode 选项且为 YES,编译会失败。较新的 Xcode 版本已移除该选项,忽略即可。
启动与停止
启动代码:
// 引入头文件
#import <Protect/sdk_ios.h>
// 配置
char config[] = "{\"access_key\":\"接入码\"}";
// 启动,返回 0 表示成功,其他表示错误
int result = protect_start(config);
停止代码:
// 停止
protect_stop();
可选参数
config 除必填的 access_key 外,还支持以下字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| fast_tick_enabled | bool | 快速心跳模式,缩短探测周期 |
| log_enabled | bool | 输出调试日志,排查问题时开启 |
| lifecycle_keep_enabled | bool | 默认 false:进入后台时 stop、回到前台重建连接;设为 true 则后台保持 |
带可选参数的完整配置示例:
char config[] = "{\"access_key\":\"接入码\",\"log_enabled\":true}";
错误查询
SDK 提供最近一次错误的查询接口,返回 UTF-8 字符串,无错误时返回空串。指针在下一次调用后失效,需要保存时请自行拷贝。
接入码区分平台。控制台创建实例时必须选择 iOS,否则启动会失败。XCFramework 已包含模拟器切片,可直接在模拟器上调试。
常见问题
编译报错找不到 Protect 模块
- 确认 Embed 设置为 Embed & Sign,而不是 Do Not Embed
- 确认 Copy items if needed 已勾选,framework 已复制进工程目录
- Clean Build Folder 后重新编译
启动返回非 0
- 检查接入码是否属于 iOS 平台实例
- 确认实例未暂停、未到期
- 开启
log_enabled查看具体失败原因