持久化设备 ID (Keychain)
PushwooshKeychain 模块提供了持久化的设备标识 (HWID),该标识在应用重装后依然存在。这对于测试和开发场景非常有用,因为在这些场景下,您需要在重新安装应用后仍保持相同的设备身份。
工作原理
Anchor link to默认情况下,每次重装应用时,iOS 都会生成一个新的 identifierForVendor (IDFV),这会导致一个新的 HWID 注册到 Pushwoosh。PushwooshKeychain 模块将 HWID 存储在 iOS Keychain 中,该 Keychain 在应用重装后仍然持久存在。
环境检测
Anchor link to该模块会自动检测应用环境并采取不同的行为:
| 环境 | 持久化 HWID |
|---|---|
| 模拟器 | 已启用 |
| 调试/开发 | 已启用 |
| TestFlight | 已启用 |
| App Store | 已禁用 |
Swift Package Manager
Anchor link to在集成 Pushwoosh SDK 时,将 PushwooshKeychain 添加到您的 target 中:
- 在 Xcode 中,前往 File → Add Package Dependencies
- 输入包 URL:
https://github.com/Pushwoosh/Pushwoosh-XCFramework - 除了必需的框架外,还要选择
PushwooshKeychain
PushwooshFrameworkPushwooshCorePushwooshBridge
PushwooshKeychain— 持久化设备 IDPushwooshLiveActivities— 实时活动支持PushwooshVoIP— VoIP 推送通知PushwooshForegroundPush— 自定义前台通知
CocoaPods
Anchor link to将 Keychain 子规范添加到您的 Podfile 中:
target 'MyApp' do use_frameworks!
pod 'PushwooshXCFramework' pod 'PushwooshXCFramework/PushwooshKeychain'end然后运行:
pod install使用方法
Anchor link to无需更改代码。 一旦您将 PushwooshKeychain 模块添加到项目中,它就会自动工作:
- 首次启动应用时,模块会生成一个 HWID 并将其存储在 Keychain 中
- 在后续启动时(包括重装后),模块会检索已存储的 HWID
- SDK 使用此持久化 HWID 向 Pushwoosh 注册设备
使用场景
Anchor link toPushwooshKeychain 模块在以下场景中特别有用:
- QA 测试 — 在测试期间,跨多个应用安装维护相同的设备身份
- 开发 — 在迭代应用时保持一致的设备目标
- TestFlight Beta 测试 — 跨应用更新和重装跟踪相同的 Beta 测试人员
问题排查
Anchor link to验证模块是否已激活
Anchor link to当您的应用启动时,检查 Xcode 控制台日志。您应该会看到类似以下的日志消息:
[Pushwoosh] Detected environment: Debug. Persistent HWID: ENABLED或
[Pushwoosh] Detected environment: App Store. Persistent HWID: DISABLED清除已存储的 HWID
Anchor link to如果您需要在开发过程中重置持久化 HWID,可以调用:
import PushwooshFramework
// Clear the stored HWID from KeychainPushwoosh.Keychain.clearPersistentHWID()@import PushwooshFramework;
// Clear the stored HWID from Keychain[Pushwoosh.Keychain clearPersistentHWID];