Skip to content
AI 文档索引 ↗

环境与项目凭据 ​

创建 SDK 时,使用项目接入信息中对应环境的 endpoint 和 projectKey。测试与生产环境应分别配置。

projectKey 用于标识接收项目,不能视为 Secret 或业务用户认证。服务端管理令牌、签名私钥等高权限凭据由服务端保管,不放入客户端。

网络连接 ​

生产环境使用提供的 HTTPS 接收地址。Web 可直接连接 Track 网关;若选用网站同源代理,需配置转发。Android 网络权限和 iOS ATS 由应用配置。真机测试时,localhost 指向手机自身,应使用设备可访问的地址。

接收地址 ​

请配置最终接收地址,避免经过重定向。iOS 使用可选后台传输时也应遵循这一要求,详见后台与平台生命周期。

本地数据保护 ​

SDK 会在本地暂存未确认事件。存储后端和恢复能力见离线队列与重试;应用需要按实际数据和设备安全要求选择保护方式。

Android 与 iOS 默认兼容模式均不启用 Outbox payload 加密;Web SDK 不提供 Outbox 加密。同源脚本可能访问 Web 本地数据。SDK 仅对内建或显式配置的字段名执行脱敏,不能代替业务字段审查;请勿记录密码、令牌等敏感值。

Android:按需启用队列加密 ​

设置 storageEncryptionKeyAlias 后,SDK 使用 Android KeyStore 支持的密钥加密待发事件:

kotlin
val config = TrackBusinessConfig.Builder()
    .endpoint("https://collector.example.com/v1/events/batch")
    .projectKey("android-public-project-key")
    .storageEncryptionKeyAlias("track_business_storage_key")
    .build()

val sdk = TrackBusinessSDK.create(context, config)

已有存储数据时不要直接更换密钥别名;旧密钥失效后,未发送事件可能无法恢复。

iOS:按需启用队列加密 ​

可为队列提供 KeychainStorageCipher;SDK 使用 Keychain 保存密钥材料。SDK 没有声明该密钥由 Secure Enclave 托管。

swift
let cipher = try KeychainStorageCipher(service: "com.example.trackbusiness")
let sdk = try TrackBusinessSDK.create(
    endpoint: URL(string: "https://collector.example.com/v1/events/batch")!,
    projectKey: "ios-public-project-key",
    storageCipher: cipher
)

iOS 文件保护与队列内容加密是不同设置。选择加密后,请在升级和重装场景验证密钥与未发送事件的恢复。