ios smssdk integration (MobTech 短信验证 一键集成) — iOS SMSSDK 集成(MobTech 短信验证 一键集成)
v1.0.0面向 iOS 工程的 MobTech SMSSDK 短信验证集成 skill。默认先扫描工程,优先使用 CocoaPods,以最小改动完成依赖接入、隐私合规、短信验证码发送/校验链路和项目内说明文档落地。 翻译后: 面向 iOS 工程的 MobTech SMSSDK 短信验证集成 skill。默认先扫描工程,优先使用 CocoaPods,以最小改动完成依赖接入、隐私合规、短信验证码发送/校验链路和项目内说明文档落地。 最终答案: 面向 iOS 工程的 MobTech SMSSDK 短信验证集成 skill。默认先扫描工程,优先使用 CocoaPods,以最小改动完成依赖接入、隐私合规、短信验证码发送/校验链路和项目内说明文档落地。
0· 0·0 当前·0 累计
下载技能包
License
MIT-0
运行时依赖
无特殊依赖
安装命令
点击复制官方npx clawhub@latest install ios-smssdk-integration
镜像加速npx clawhub@latest install ios-smssdk-integration --registry https://cn.longxiaskill.com 镜像可用
技能文档
iOS SMSSDK 集成 Skill 当用户希望把 MobTech SMSSDK 集成到 iOS 工程,或者排查已有 SMSSDK 接入问题时,使用本 skill。
适用场景 当用户提到以下任一主题时,使用本 skill:
- iOS SMSSDK 集成
- iOS 短信验证码接入
- MobTech 短信验证
- mob_smssdk
- CocoaPods 配置
- SMSSDK Info.plist 配置
- SMSSDK 隐私合规
- uploadPrivacyPermissionStatus
- 调用时机
- getVerificationCodeByMethod 用法
- commitVerificationCode 用法
- 语音验证码
- 手机号码认证
- Token 验证手机号是否本机号码
- SMSSDK 错误码排查
- 帮我在 iOS 项目里增加短信验证码登录
- 帮我把 SMSSDK 接进现有 iOS 工程
输出语言 默认使用中文与用户沟通 代码、配置键名、类名、命令名保持原文 回答尽量短,先给结论,再给动作
官方资料
- MobTech 文档中心
- SDK 下载中心
- 创建应用
- 集成指南
- SDK API 文档
- 合规指南
- SMSSDK 扩展业务功能设置
- 错误码
- App Store Connect 后台隐私数据项配置
- 其它 App 数据采集主动控制器配置
- SMSSDK 隐私政策
已确认的官方事实 以下信息已经可作为执行依据,不需要再猜测:
- 默认开发环境要求为 Xcode 9.1.0+、iOS 8.0+
- 官方支持 CocoaPods 和手动导入两种集成方式
- 默认 Pod 为 pod 'mob_smssdk'
- 手动导入时需要加入 MOBFoundation.framework 与 SMS_SDK.framework
- 官方列出的必要依赖库包括 libz.tbd、libicucore.tbd、MessageUI.framework、JavaScriptCore.framework、libc++.tbd
- Xcode 7 运行报错时,官方说明还需要增加 SystemConfiguration.framework、CoreTelephony.framework、AdSupport.framework
- Info.plist 需要配置 MOBAppKey 与 MOBAppSecret
- 合规指南要求在项目默认 plist 中添加 MOBNetLater = 2
- uploadPrivacyPermissionStatus 是 MobSDK 隐私授权回传接口,必须在用户同意隐私政策之后、使用 SDK 功能之前调用
- 用户不同意 App 隐私政策时,不能调用 uploadPrivacyPermissionStatus 回传同意结果,也不能继续使用 SMSSDK 能力
- 请求短信验证码使用 getVerificationCodeByMethod:phoneNumber:zone:template:result:
- SMSGetCodeMethodSMS 表示文本短信验证码,SMSGetCodeMethodVoice 表示语音验证码
- 提交验证码验证使用 commitVerificationCode:phoneNumber:zone:result:
- zone 是区域号,不要加 +
- template 参数不能乱填,没有模板时可以先传空字符串或 nil
- 自定义短信模板需要在官网后台 SMSSDK 产品下的短信模板里添加,且需要申请过自定义短信签名的应用才能添加短信模板
- 默认签名仅用于测试,不保证到达率;上线前必须申请自定义签名
- SDK API 文档还提供 getMobileAuthTokenWith: 和 verifyMobileWithPhone:token:completion: 用于本机号码认证相关流程
- SMS_SDK.framework 的 module umbrella header 是 SMSHeader.h;当代码直接使用 SMSSDKAuthToken 等类型时,应优先导入 ,避免只导入 触发模块导入顺序错误
- 扩展业务主动控制器可通过实现 MOBFoundationPrivacyDelegate 控制地理位置、WiFi、IP 等扩展业务相关数据采集
- 扩展业务主动控制器可以通过 uploadPrivacyPermissionStatus:privacyDataDelegate:onResult: 传入,也可以通过 [MobSDK setPrivacyDataDelegate:] 设置
文档未明确,需向用户确认 以下内容在当前资料里没有被稳定、明确地定义,禁止猜:
- 是否支持 Swift Package Manager
- 是否需要 -ObjC、Bitcode、Privacy Manifest 或额外苹果隐私文件
- CocoaPods 方式是否仍需要手动添加官方列出的系统库
- Swift 工程应直接通过模块导入还是必须桥接 Objective-C 头文件
- 项目是否要接入语音验证码
- 项目是否要接入本机号码认证 Token 与手机号验证流程
- 是否需要启用扩展业务主动控制器
- App Store Connect 隐私标签的最终选择是否已由法务或隐私负责人确认
默认执行策略
- 默认集成方式:CocoaPods
- 默认先扫描工程,再给改动方案
- 默认优先复用工程已有隐私弹窗、手机号输入页和验证码提交入口,不新造完整登录页
- 默认先生成最小 Excel 模板,再等用户填写
- 默认不在 Excel 中收集 Bundle ID、Target 名称、入口类名、Info.plist 路径,因为这些应由扫描工程自动推断
- 默认只把短信验证码发送和验证码提交接入本轮主流程
- 语音验证码、本机号码认证和扩展业务主动控制器默认作为可选能力记录在项目文档里,只有用户明确要求时再接入
- 默认不运行 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
- 是否已有 SMSSDK、SMS_SDK、MOBFoundation、MOBAppKey、MOBAppSecret、MOBNetLater
- .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 'SMSSDK|SMS_SDK|MOBFoundation|MOBAppKey|MOBAppSecret|MOBNetLater|uploadPrivacyPermissionStatus|getVerificationCodeByMethod|commitVerificationCode|SWIFT_OBJC_BRIDGING_HEADER'
- 当前工程依赖方式
- 当前入口结构
- 当前代码语言形态:Objective-C / Swift / 混编
- Swift 工程是否已有 Bridging Header
- 是否已有 SMSSDK 残留
- 是否已经有隐私同意链路
- 是否已经有手机号输入、验证码发送和验证码提交链路
- CocoaPods 状态:是否有有效 Podfile、Podfile.lock、Pods/、.xcworkspace/contents.xcworkspacedata
第二步:生成并读取配置模板 2-1 模板生成 如果用户项目根目录还没有 SMSSDK_iOS_Config.xlsx:
- 运行本 skill 目录下的 assets/generate_excel_template.py
- 将生成的 assets/SMSSDK_iOS_Config_Template.xlsx 复制到用户项目根目录
- 在用户项目根目录命名为 SMSSDK_iOS_Config.xlsx
- appKey
- appSecret
- 短信签名是否已申请
- 是否需要语音验证码
- 是否需要本机号码认