环境与项目凭据
创建 SDK 时,使用项目接入信息中对应环境的 endpoint 和 projectKey。测试与生产环境应分别配置。
projectKey 用于标识接收项目,不能视为 Secret 或业务用户认证。服务端管理令牌、签名私钥等高权限凭据由服务端保管,不放入客户端。
网络连接
生产环境使用提供的 HTTPS 接收地址。Web 可直接连接 Track 网关;若选用网站同源代理,需配置转发。Android 网络权限和 iOS ATS 由应用配置。真机测试时,localhost 指向手机自身,应使用设备可访问的地址。
- Web 上报地址与可选同源代理:参见Web 快速接入。
- Android 网络权限:参见Android 接入。
- iOS ATS:参见iOS 接入。
接收地址
请配置最终接收地址,避免经过重定向。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 文件保护与队列内容加密是不同设置。选择加密后,请在升级和重装场景验证密钥与未发送事件的恢复。