跳到内容

持久化设备 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 中:

  1. 在 Xcode 中,前往 File → Add Package Dependencies
  2. 输入包 URL:https://github.com/Pushwoosh/Pushwoosh-XCFramework
  3. 除了必需的框架外,还要选择 PushwooshKeychain
  • PushwooshFramework
  • PushwooshCore
  • PushwooshBridge

将 Keychain 子规范添加到您的 Podfile 中:

target 'MyApp' do
use_frameworks!
pod 'PushwooshXCFramework'
pod 'PushwooshXCFramework/PushwooshKeychain'
end

然后运行:

Terminal window
pod install

使用方法

Anchor link to

无需更改代码。 一旦您将 PushwooshKeychain 模块添加到项目中,它就会自动工作:

  1. 首次启动应用时,模块会生成一个 HWID 并将其存储在 Keychain 中
  2. 在后续启动时(包括重装后),模块会检索已存储的 HWID
  3. SDK 使用此持久化 HWID 向 Pushwoosh 注册设备

使用场景

Anchor link to

PushwooshKeychain 模块在以下场景中特别有用:

  • 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 Keychain
Pushwoosh.Keychain.clearPersistentHWID()