ios flyverify integration(IOS 集成一键登录 SDK) — IOS FlyVerify 集成(IOS 一键登录 SDK)
v1.0.0面向 iOS 工程的 MobTech FlyVerify(秒验)集成 skill。默认先扫描工程,优先使用 CocoaPods,以最小改动完成依赖接入、隐私合规、一键登录流程接线和项目内说明文档落地。 (No change needed, the text is already in Chinese)
运行时依赖
安装命令
点击复制技能文档
iOS FlyVerify 集成 Skill 当用户希望把 MobTech FlyVerify 集成到 iOS 工程,或者排查已有 FlyVerify 接入问题时,使用本 skill。
适用场景 当用户提到以下任一主题时,使用本 skill:
- iOS FlyVerify 集成
- iOS 秒验接入
- iOS 一键登录
- MobTech 秒验一键登录
- FlyVerify CocoaPods 配置
- FlyVerify Info.plist 配置
- FlyVerify 隐私合规
- agreePrivacy 调用时机
- preLogin / openAuthPageWithModel
- 用法
- 秒验授权页自定义
- 秒验 token 置换手机号
- 帮我在 iOS 项目里增加一键登录
- 帮我把 FlyVerify 接进现有 iOS 工程
输出语言 默认使用中文与用户沟通 代码、配置键名、类名、命令名保持原文 回答尽量短,先给结论,再给动作
官方资料 优先使用以下线上资料,不依赖本机资料路径:
- 主文档:MobTech 文档中心
- 秒验产品页
- SDK 下载中心
- 集成指南
- SDK API 文档
- 合规指南
- 秒验隐私政策
- 创建应用流程
- 秒验审核流程
- 服务端接入文档
- 秒验 SDK 扩展业务功能设置
- 其它 App 数据采集主动控制器配置
- App Store Connect 后台配置参考文档
- 秒验 Demo
已确认的官方事实 以下信息已经可作为执行依据,不需要再猜测:
- 默认开发环境要求为 Xcode 9.1.0+、iOS 8.0+
- 官方支持 CocoaPods 和手动导入两种集成方式
- 默认 Pod 为 pod 'FlyVerify'
- 工程需要链接 libsqlite3.tbd、libc++.tbd、libz.1.2.5.tbd
- Other Linker Flags 需要添加 -ObjC
- Info.plist 需要配置 flyverifykey 与 flyverifysecret
- 严格隐私模式需要在默认 plist 中添加 FlyVerifyPLevel = 2
- 如果项目全局禁止 HTTP,需要为以下域名配置 ATS 白名单:zzx9.cn、cmpassport.com、id6.me、wostore.cn、mdn.open.wo.cn
- agreePrivacy 是 FlyVerify 业务起点,必须在用户同意隐私政策后、使用 SDK 能力前调用
- preLogin 回调在全局队列,error == nil 才视为成功
- openAuthPageWithModel 的 uiConfigure.currentViewController 为必传
- 授权页关闭可由 SDK 自动处理,也可通过 manualDismiss = @(YES) 后手动调用 finishLoginVcAnimated:Completion:
- 一键登录成功后 SDK 返回 opToken、operator、token
- 真实手机号需要开发者服务端调用秒验服务端接口完成置换,客户端不能直接得到手机号
- 一键登录能力依赖运营商网关取号,必须在手机开启移动蜂窝网络时使用
- 文档明确建议授权页 UI 定制参考官方 Demo
- 严格隐私模式和隐私 API 支持情况必须结合线上合规文档与当前 Podfile.lock 中实际安装版本确认,不要只凭本地缓存判断
- 接入代码必须同时支持 Objective-C 与 Swift 工程;Swift 工程优先通过桥接头调用官方 Objective-C API
文档未明确,需向用户确认 以下内容在当前资料里没有被稳定、明确地定义,禁止猜:
- 是否支持 Swift Package Manager
- 是否需要 Bitcode、Privacy Manifest 或额外苹果隐私文件
- 用户项目应该使用 Info.plist 配置读取,还是代码显式 initKey:secret:privacyLevel:
- 用户具体要不要开启授权页自定义
- 如果缺这些信息且会阻塞安全修改,必须明确写:文档未明确,需向用户确认
默认执行策略 默认集成方式:CocoaPods 默认先扫描工程,再给改动方案 默认优先复用工程已有隐私弹窗和登录入口,不新造页面 默认先生成最小 Excel 模板,再等用户填写 默认不在 Excel 中收集 Bundle ID、Target 名称、入口类名、Info.plist 路径,因为这些应由扫描工程自动推断 默认把 FlyVerify 能力接入放在用户已同意隐私政策之后 默认不主动询问是否启用扩展业务主动控制器;仅在最终项目文档中说明这项可选能力 服务端 token 置换接口属于后续业务步骤,本轮客户端集成只保留注释占位,不追问接口域名、鉴权方式或返回结构 默认不运行 pod install、xcodebuild 或其他会改动依赖状态的命令,先展示计划,再执行 默认不把 Pods/ 提交进项目;如项目未忽略 Pods/,补充 .gitignore,保留 Podfile 与 Podfile.lock 一次只问用户一个阻塞问题
执行流程 严格按以下顺序推进:
- 先扫描工程,再判断接入方式。
- 先生成或读取配置模板,再确定静态配置。
- 先展示最小改动计划,再修改文件。
- 依赖安装前先征求确认。
- 完成后补项目内说明文档。
第一步:扫描工程 优先扫描以下内容:
- .xcodeproj / .xcworkspace
- Podfile
- Podfile.lock
- Package.swift
- AppDelegate / SceneDelegate / SwiftUI @main
- Info.plist
- 隐私政策弹窗或同意回调位置
- 登录页、手机号登录页、现有一键登录入口
- Objective-C / Swift / 混编类型,以及是否已有 Bridging Header
- 是否已有 FlyVerify、FVSDKHyVerify、FlyVerifyC、flyverifykey、flyverifysecret、FlyVerifyPLevel
- .gitignore 是否忽略 Pods/
- .xcworkspace 是否包含 contents.xcworkspacedata
- rg --files -g '.xcodeproj' -g '.xcworkspace' -g 'Podfile' -g 'Podfile.lock' -g 'Package.swift' -g 'Info.plist' -g '.gitignore'
- rg --files -g '.m' -g '.h' -g '.mm' -g '.swift'
- rg -n 'FlyVerify|FVSDKHyVerify|FlyVerifyC|flyverifykey|flyverifysecret|FlyVerifyPLevel|agreePrivacy|preLogin|openAuthPageWithModel|SWIFT_OBJC_BRIDGING_HEADER'
- 当前工程依赖方式
- 当前入口结构
- 当前代码语言形态:Objective-C / Swift / 混编
- Swift 工程是否已有 Bridging Header
- 是否已有 FlyVerify 残留
- 是否已经有隐私同意链路
- CocoaPods 状态:是否有有效 Podfile、Podfile.lock、Pods/、.xcworkspace/contents.xcworkspacedata
第二步:生成并读取配置模板 2-1 模板生成 如果用户项目根目录还没有 FlyVerify_iOS_Config.xlsx:
- 运行本 skill 目录下的 assets/generate_excel_template.py
- 将生成的 assets/FlyVerify_iOS_Config_Template.xlsx 复制到用户项目根目录
- 在用户项目根目录命名为 FlyVerify_iOS_Config.xlsx
- appKey
- appSecret
- 秒验审核是否已通过
- 是否需要自定义授权页
- Bundle ID
- Target
- Info.plist 路径
- 隐私弹窗类名
- 授权页按钮落点
- 是否启用扩展业务主动控制器
- appKey:必填,按字符串处理,不做数值推断
- appSecret:必填,按字符串处理,不做数值推断
- 秒验审核:必须明确是 是 / 否
- 授权页自定义:必须明确是 是 / 否