ios mobpush integration (MobTech MobPush 一键集成 ) — ios MobPush 集成(MobTech MobPush 一键集成)
v1.0.0面向 iOS 工程的 MobTech MobPush 集成 skill。默认先扫描工程,优先使用 CocoaPods,以最小改动完成推送依赖接入、APNs 配置、隐私合规、回调接线和项目内说明文档落地。 翻译后: 针对 iOS 工程的 MobTech MobPush 集成 skill。默认情况下先扫描工程,优先使用 CocoaPods,以最小的代码改动完成推送依赖接入、APNs 配置、隐私合规、回调接线以及在项目中添加说明文档。
运行时依赖
安装命令
点击复制技能文档
iOS MobPush 集成 Skill 当用户希望把 MobTech MobPush 集成到 iOS 工程,或者排查已有 MobPush 接入问题时,使用本 skill。
适用场景 当用户提到以下任一主题时,使用本 skill:
- iOS MobPush 集成
- iOS 推送接入
- iOS MobTech 推送
- MobPush CocoaPods 配置
- MobPush Info.plist 配置
- MobPush APNs 配置
- MobPush 隐私合规
- uploadPrivacyPermissionStatus 调用时机
- setupNotification / setAPNsForProduction 用法
- MobPush tag / alias 设置
- MobPush Live Activity 接入
- 帮我在 iOS 项目里增加推送
- 帮我把 MobPush 接进现有 iOS 工程
输出语言 默认使用中文与用户沟通。代码、配置键名、类名、命令名保持原文。回答尽量短,先给结论,再给动作。
官方资料 优先使用以下线上资料,不依赖本机资料路径:
- 主文档:MobTech 文档中心
- MobPush 产品页
- SDK 下载中心
- 创建应用流程
- 合规指南
- 集成指南
- SDK API 文档
- 证书配置
- App Store Connect 后台隐私数据项配置
- MobPush 扩展业务功能设置
- 其它 App 数据采集主动控制器配置
- MobPush 隐私政策
- 扩展资料:iOS 实时活动说明
已确认的官方事实 以下信息已经可作为执行依据,不需要再猜测:
- 默认开发环境要求为 Xcode 9.1.0+、iOS 8.0+
- 官方支持 CocoaPods 和手动导入两种集成方式
- 默认 Pod 为 pod 'mob_pushsdk'
- 工程需要链接 libc++.tbd、libz.1.2.5.tbd
- Info.plist 需要配置 MOBAppKey 与 MOBAppSecret
- 需要开启 Push Notifications
- 需要开启 Background Modes 并勾选 Remote notifications
- uploadPrivacyPermissionStatus 是 MobSDK 业务起点,必须在用户同意隐私政策后、使用 SDK 能力前调用
- 严格合规方案要求默认 plist 中增加 MOBNetLater = 2
- 推送环境应通过 setAPNsForProduction: 在开发与生产间切换
- 通知权限申请与推送注册通过 setupNotification: 配置
- 收到推送或自定义消息后,应监听 MobPushDidReceiveMessageNotification
- Swift API 注意:MobPushDidReceiveMessageNotification 在 Swift 中被重命名为 NSNotification.Name.MobPushDidReceiveMessage
- MPushMessage 的 msg 和 isCustomMessage 属性在 4.x 中已移除,改用 messageType(MPushMessageType.custom)和 message.notification.body
- 自定义消息内容存于 message.notification.userInfo["mobpushCustomTitle"] / ["mobpushCustomType"]
- MPushAuthorizationOptions 在 Swift 中以 OptionSet 形式可用:MPushAuthorizationOptions.badge.union(.sound).union(.alert)
- 纯 Swift 工程必须创建 Bridging Header 并添加 #import 和 #import
- Bridging Header 路径需在 .xcodeproj 的 Debug 和 Release 构建配置中设置 SWIFT_OBJC_BRIDGING_HEADER
- getRegistrationID 必须在推送设置接口之后调用
- SDK 支持 tag、alias、本地通知、badge 同步等能力
- iOS 端扩展业务能力仅支持“基于地域更精准推送”和“网络链路优化/特定区域服务”两类
- 扩展业务主动控制器应通过 MOBFoundationPrivacyDelegate 自定义类接入
- 证书鉴权支持 .p12 与 APNs Auth Key(.p8) 两种方式
- .p8 鉴权需要 Key ID、Team ID、Bundle ID
- Live Activity 功能需 iOS 16.1+、SwiftUI、ActivityKit,且需要 App 运行态配合
文档未明确,需向用户确认 以下内容在当前资料里没有被稳定、明确地定义,禁止猜:
- 是否支持 Swift Package Manager
- 是否需要 Bitcode、Privacy Manifest 或额外苹果隐私文件
- 用户项目应该使用 CocoaPods 还是已存在的手动导入体系
- 用户是否本次就要接入 Notification Service Extension
- Live Activity 官方独立文档深链地址在当前资料中未提供,若用户要正式启用该能力,需先确认要以当前资料版本为准还是由用户补充最新官方页面
- 如果缺这些信息且会阻塞安全修改,必须明确写:文档未明确,需向用户确认
默认执行策略 默认集成方式:CocoaPods 默认先扫描工程,再给改动方案 默认优先复用工程已有推送能力、隐私弹窗和 App 启动入口 默认先生成最小 Excel 模板,再等用户填写 默认不在 Excel 中收集 Bundle ID、Target 名称、Info.plist 路径、入口类名,因为这些应由扫描工程自动推断 默认不主动询问是否启用扩展业务主动控制器;仅在最终项目文档中说明这项可选能力 默认不主动启用 Live Activity;仅当用户明确需要时才进入该分支 默认不运行 pod install、xcodebuild 或其他会改动依赖状态的命令,先展示计划,再执行 默认不把 Pods/ 提交进项目;如项目未忽略 Pods/,补充 .gitignore,保留 Podfile 与 Podfile.lock 一次只问用户一个阻塞问题
执行流程 严格按以下顺序推进:
- 先扫描工程,再判断接入方式。
- 先生成或读取配置模板,再确定静态配置。
- 先展示最小改动计划,再修改文件。
- 依赖安装前先征求确认。
- 完成后补项目内说明文档。
第一步:扫描工程 优先扫描以下内容:
- .xcodeproj / .xcworkspace
- Podfile
- Podfile.lock
- Package.swift
- AppDelegate / SceneDelegate / SwiftUI @main
- Info.plist
- 现有通知权限申请、APNs 注册、UNUserNotificationCenter 代理代码
- 隐私政策弹窗或同意回调位置
- Objective-C / Swift / 混编类型,以及是否已有 Bridging Header
- 是否已有 MobPush、MOBAppKey、MOBAppSecret、MOBNetLater、uploadPrivacyPermissionStatus
- .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 'MobPush|MOBAppKey|MOBAppSecret|MOBNetLater|uploadPrivacyPermissionStatus|setAPNsForProduction|setupNotification|MobPushDidReceiveMessageNotification|UNUserNotificationCenter|didRegisterForRemoteNotificationsWithDeviceToken|SWIFT_OBJC_BRIDGING_HEADER'
- 当前工程依赖方式
- 当前入口结构
- 当前代码语言形态:Objective-C / Swift / 混编
- Swift 工程是否已有 Bridging Header
- 是否已有 MobPush 残留
- 是否已经有隐私同意链路
- 是否已经有推送能力接线
- CocoaPods 状态:是否有有效 Podfile、Podfile.lock、Pods/、.xcworkspace/contents.xcworkspacedata
第二步:生成并读取配置模板 2-1 模板生成 如果 {path} 下还没有 MobPush_iOS_Config.xlsx:
- 运行本 skill 目录下的 assets/generate_excel_template.py
- 将生成的 assets/MobPush_iOS_Config_Template.xlsx 复制到 {path} 下
- 在 {path} 下命名为 MobPush_iOS_Config.xlsx
- appKey
- appSecret
- apnsAuthMode
- needLiveActivity
- Bundle ID
- Target
- Info.plist 路径
- App 启动