跳转至正文
@capgo/capacitor-persistent-uuid 身份验证与安全 开源

持久化 UUID Capacitor 插件

生成并持久化一个应用级 UUID,在重装、应用更新和系统更新后保持不变

安装

bun add @capgo/capacitor-persistent-uuid bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-persistent-uuid
  • pnpm add @capgo/capacitor-persistent-uuid
  • yarn add @capgo/capacitor-persistent-uuid

指南

如何在 Capacitor 中使用 Persistent UUID

使用 @capgo/capacitor-persistent-uuid

为 Capacitor 生成一个持久化的应用级 UUID,即使在应用重新安装或更新导致常规存储被清除时,也能保持该 ID 稳定。

安装

npm install @capgo/capacitor-persistent-uuid
npx cap sync

插件暴露的内容

  • getId - 读取存储的 UUID,若所选 scope 下不存在则创建一个。
  • resetId - 轮换存储的 UUID,适用于注销、隐私重置或测试清理流程。
  • scope - 可选命名空间,适用于调试版与生产版包名不同的应用。

用法示例

import { PersistentUuid } from '@capgo/capacitor-persistent-uuid';

const { id, created, scope } = await PersistentUuid.getId();

console.log(id);
console.log(created);
console.log(scope);

在不同 Build 变体间共享同一个 UUID

const result = await PersistentUuid.getId({
  scope: 'com.example.app',
});

console.log(result.id);

重置标识符

const replacement = await PersistentUuid.resetId();
console.log(replacement.id);

平台注意事项

Android 将 UUID 存储在 AccountManager 中,因此在包名或自定义 scope 保持稳定时,即使经历 Android Studio 重装或 Debug 与 Play 签名差异也能保留。iOS 将 UUID 存储在 Keychain 中,在应用及 iOS 更新期间保持持久,只要 Keychain 访问权限兼容即可。Web 端则使用 localStorage 作为开发环境的备选方案。

本插件不暴露硬件 ID,且在恢复出厂设置、手动删除账号、清除 Keychain、清除浏览器存储或调用 resetId 后将无法保留。

完整参考

继续探索

如果你正在使用 @capgo/capacitor-persistent-uuid 若要保持应用身份稳定,请配合使用 @capgo/capacitor-persistent-uuid 查看概览, 快速入门 查看安装与 API 示例, Android 行为 查看重新安装详情, iOS 行为 查看 Keychain 详情,以及 @capgo/capacitor-persistent-account 当你需要持久化账户数据而非 UUID 时。

常见问题

Persistent UUID 插件常见问题

如何在 Capacitor 应用中安装 Persistent UUID 插件?

运行 "bun add @capgo/capacitor-persistent-uuid" (或 "npm install @capgo/capacitor-persistent-uuid"),然后运行 "bunx cap sync",使 iOS 和 Android 项目同步 native code。最后在你的应用 code 中从 "@capgo/capacitor-persistent-uuid" 导入即可。

@capgo/capacitor-persistent-uuid 是否支持 React、Vue 和 Angular?

支持。Persistent UUID 是一个 Capacitor 包,因此它支持任何在 Capacitor 中运行的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 以及原生 JavaScript。

@capgo/capacitor-persistent-uuid 支持哪个 Capacitor 版本?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-persistent-uuid 是免费开源的吗?

是的。code 的源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-persistent-uuid/,并且可以通过 npm 免费安装。欢迎提交 Bug 报告和 Pull Request。

我能否在无需经过 App Store 审核的情况下,更新使用了 Persistent UUID 的 code?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待 App Store 审核,即可快速发布 Persistent UUID 的变更

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo