mcpField
C
clerk-swift

clerk-swift

github.com/clerk开发8914.6k 次安装今天更新
代码仓库

关于 clerk-swift

面向原生 Swift 项目的 Clerk 认证实现技能,指导 Agent 配置并构建预置或自定义登录界面。要求先完成 Clerk 设置并确认流程类型,不适用于 Expo 或 React Native。

主要功能

  1. 01Clerk SDK 与原生项目设置流程
  2. 02预置 AuthView 和 UserButton
  3. 03基于 API 的自定义认证流程
  4. 04检查依赖项与能力配置
  5. 05构建目标并核验实现

适用场景

  1. 01为原生 iOS 应用添加 Clerk 登录界面
  2. 02在 macOS Swift 项目中实现自定义认证流程
  3. 03检查 Clerk SDK、能力和原生注册状态

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/clerk/skills --skill clerk-swift

安装后在 Claude Code 中输入/clerk-swift确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

evals/
evals.json
references/
custom.md
prebuilt.md

详细介绍

Clerk Swift(原生 iOS 和 macOS)

此技能用于在原生 Swift 项目中构建 Clerk 身份验证 UI:使用预构建的 ClerkKitUI 视图,或基于 ClerkKit 构建自定义流程。请先完成设置(SDK、功能、原生注册和 Clerk 初始化),这部分有单独的工作流。

激活规则

符合以下任一条件时,激活此技能:

  • 用户明确要求使用 Swift、SwiftUI、UIKit,或实现原生 iOS 或 macOS Clerk 功能。
  • 项目看起来是原生 Swift 项目(例如,包含 .xcodeproj、.xcworkspace、Package.swift 或 Swift 目标)。

符合以下任一条件时,不要激活此技能:

  • 项目是 Expo。
  • 项目是 React Native。

如果存在 Expo/React Native 的迹象,请改用通用设置技能。

先设置 Clerk

如果尚未设置 Clerk(没有 clerk-ios 包、没有 Clerk.configure 调用,或尚未选择 Clerk 应用),请先按照 iOS 设置提示词 完成设置,再进行任何 UI 工作。该流程会使用 Clerk CLI 选择 Clerk 应用、安装 SDK、配置功能、注册原生应用,并交接后续 Swift 集成。CLI 也会提供可发布密钥,因此不要要求用户粘贴密钥。

如果 CLI 无法设置项目(例如,Xcode 不可用或项目不受支持),请改用手动 iOS 快速入门。

如果用户已要求实现登录 UI(例如自定义流程),请在设置的构建检查通过后继续。如果用户尚未提出这类要求,则等到用户希望添加或更改登录 UI 时,再返回此技能。

你需要什么?

任务参考资料
预构建的 AuthView / UserButton(最快)references/prebuilt.md
由 API 驱动的自定义身份验证流程(完全控制)references/custom.md

快速开始

步骤操作
1确认项目是原生 Swift 项目,而不是 Expo/React Native
2如果尚未设置 Clerk,请先按照 iOS 设置提示词操作(见上文)
3确定流程类型(prebuilt 或 custom);如果尚未确定,请先询问,然后加载对应的参考资料
4检查所选流程所需的前置条件,例如包产品或功能,并且只补上缺失的指定项
5按照所选参考资料实现流程
6构建目标,并报告还有哪些内容尚未验证

决策树

User asks for Clerk in Swift
    |
    +-- Expo/React Native project detected?
    |     |
    |     +-- YES -> Do not use this skill
    |     |
    |     +-- NO -> Continue
    |
    +-- Clerk set up in this project?
    |     |
    |     +-- NO -> Follow the iOS setup prompt (manual quickstart if the CLI can't)
    |     |
    |     +-- YES -> Continue
    |
    +-- Existing auth UI detected?
    |     |
    |     +-- Prebuilt views detected -> Load references/prebuilt.md
    |     |
    |     +-- Custom flow detected -> Load references/custom.md
    |     |
    |     +-- New implementation -> Ask developer prebuilt/custom, then load matching reference
    |
    +-- Make targeted prerequisite changes for the selected flow
    |
    +-- Implement using selected flow reference

流程参考资料

确定流程类型后,只加载一份参考资料:

除非开发者明确要求混合方案,否则不要在同一实现中混用这两份参考资料。

交互约定

开始编辑 UI 前,Agent 必须确定流程选项:prebuilt 或 custom。如果尚未确定,请询问用户并等待答复。只有当用户已在本次对话中选择,或现有 UI 已明确表明选项时,才可跳过询问。

保留已完成的设置

  • 保留现有的 Clerk.configure 调用,以及应用加载可发布密钥的方式,包括通过 plist、构建设置或其他自定义方式加载密钥。不要将其替换为硬编码密钥。
  • 保留现有的软件包要求、功能和权利文件。仅添加所选流程需要且尚缺少的内容。
  • 如需在不做任何更改的情况下检查 Clerk 和项目设置,请运行 npx -y clerk@latest doctor。该命令会报告 SDK 链接、功能、原生注册和 Apple 连接情况。

基于源码的实现

使用已安装的 clerk-ios 包源码作为 UI 行为的参考,尤其是自定义流程。

用例已安装包中的事实来源
SDK 产品、平台支持和依赖约束ClerkKit 和 ClerkKitUI 的包清单及目标产品定义
认证流程顺序和门控ClerkKitUI 的 AuthView 实现,以及它如何读取注入的 Clerk 实例的 environment
原生 Apple 登录所选流程参考中的 Apple 登录行为

工作流

  1. 检测使用的是原生 Swift 还是 Expo/React Native。
  2. 如果尚未配置 Clerk,请遵循 iOS 设置提示(如果 CLI 无法设置项目,则使用手动快速入门),然后继续。
  3. 如果尚不清楚流程类型,请询问使用 prebuilt 还是 custom。
  4. 加载相应的流程参考。
  5. 检查该流程的前置条件,仅进行缺少的针对性更改,并保留已完成的设置和自定义密钥加载方式。
  6. 使用所选参考进行实现。
  7. 使用所选参考进行验证,然后构建目标。

常见问题

级别问题预防措施
CRITICALClerk 尚未配置时手动完成设置遵循 iOS 设置提示;它会运行 Clerk CLI。只有在 CLI 无法设置项目时才使用手动快速入门
CRITICAL要求用户粘贴可发布密钥CLI 会在设置过程中提供密钥;保留现有应用自己的密钥加载方式
CRITICAL替换自定义密钥加载方式或现有设置保留现有的 Clerk.configure、包和功能;只添加缺少的内容
CRITICAL尚未确认流程类型就开始实现 UI先确认流程,再加载相应的参考
CRITICAL未经明确要求,自定义流程布局偏离 AuthView默认让自定义屏幕在整体结构和步骤编排上与 AuthView 基本一致
CRITICAL将自定义认证简化为包含所有字段的单一屏幕遵循 AuthView 风格的多步骤流程,并按步骤收集字段
CRITICAL不确定时臆测自定义流程的顺序或门控方式参考已安装的 ClerkKitUI 行为并与之保持一致
HIGH在自定义流程代码中硬编码此实例的当前设置像 AuthView 一样,在运行时根据注入的 Clerk 实例的 environment 设置步骤门控
HIGH将此技能用于 Expo/React Native在实现前检测并转交给其他流程

另请参阅

  • iOS 设置提示,用于通过 Clerk CLI 设置 Clerk
  • 用于顶层 Clerk 路由的 clerk 技能
  • 用于非原生或跨框架设置的 clerk-setup 技能
  • https://github.com/clerk/clerk-ios

评论

支持 Markdown