Skip to main content

update-sdk

更新 jpush-react-native 插件的 JPush SDK 版本。自动拉取极光官网 Changelog,分析新增/移除/变更 API,更新 Android(Maven)、iOS(CocoaPods)版本引用,同步更新 Native 层(Java/ObjC)和 Bridge 层(JS/TS)代码,展示变更摘要确认后发布到 npm。 Use when: 更新 JPush SDK、升级推送 SDK 版本、jpush-react-native 发布新版本、RN 插件 SDK 更新。

소스 정보

저장소
jpush/jpush-react-native
최근 소스 활동
2026년 5월 15일 08:09
감지된 SKILL.md 언어
중국어
스타
1,380
포크
349

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
7 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
update-sdk
description
更新 jpush-react-native 插件的 JPush SDK 版本。自动拉取极光官网 Changelog,分析新增/移除/变更 API,更新 Android(Maven)、iOS(CocoaPods)版本引用,同步更新 Native 层(Java/ObjC)和 Bridge 层(JS/TS)代码,展示变更摘要确认后发布到 npm。 Use when: 更新 JPush SDK、升级推送 SDK 版本、jpush-react-native 发布新版本、RN 插件 SDK 更新。
allowed-tools
["Bash","Read","Edit","Write","WebFetch"]
你正在更新 **jpush-react-native** 插件。 **用户参数:** $ARGUMENTS --- ## 第一步:解析参数 从 `$ARGUMENTS` 中提取版本号: - `--android X.X.X` → Android JPush SDK 目标版本 - `--ios X.X.X` → iOS JPush SDK 目标版本 如果某端版本号缺失,先询问用户再继续。 --- ## 第二步:安装依赖 ```bash pip3 install requests beautifulsoup4 -q 2>&1 | tail -1 ``` --- ## 第三步:拉取 SDK Changelog ```bash python3 .claude/skills/update-sdk/scripts/changelog_fetcher.py --android <ANDROID_VERSION> --ios <IOS_VERSION> ``` 读取 `.claude/skills/update-sdk/scripts/.changelog_cache.json` 获取 Changelog 内容。 --- ## 第四步:AI 分析变更 基于 Changelog,分析并整理: > **注意**:Changelog 同时包含 JPush 和 JCore 的变更。只关注调用类以 `JPush` 开头的条目,忽略类名以 `JCore` 开头的内容。 1. **新增 API**:同时存在于 Android 和 iOS 的功能 → 合并为一个插件统一 API;仅单端有的 → **先检查另一端是否已有等价实现**(见下方说明),确认缺失才标注平台注释(`// Android only` / `// iOS only`) 2. **移除/废弃 API**:确认是否需要从插件中删除或标记 `@deprecated` 3. **行为变更**:影响现有封装逻辑的改动 4. **新插件版本号**:始终升 patch(如 3.4.9 → 3.5.0,3.9.9 → 4.0.0) > **跨平台等价检查**:当 Changelog 只在某一端出现新增 API 时,**不要直接标为单端 Only**。先读取另一端的 Native 文件(`android/src/.../JPushModule.java` 或 `ios/RCTJPushModule/RCTJPushModule.m`)和 Bridge 层(`index.js`),搜索功能相同或名称相近的方法。如果另一端已有对应实现,则合并为统一 API;只有确认另一端完全没有等价功能时,才标注 Android Only / iOS Only。 输出结构化变更计划后再执行后续步骤。 --- ## 第五步:更新版本号引用 ```bash python3 .claude/skills/update-sdk/scripts/plugin_updater.py \ --android <ANDROID_VERSION> \ --ios <IOS_VERSION> \ --bump-patch \ --changelog-summary "<ONE_LINE_SUMMARY>" ``` --- ## 第六步:更新 Native 层代码 **编写代码前,先通过 WebFetch 查询官网 API 文档,确认新增方法的完整签名、参数类型和返回值:** - Android 文档:`https://docs.jiguang.cn/jpush/client/Android/android_api` - iOS 文档:`https://docs.jiguang.cn/jpush/client/iOS/ios_api` 在文档中搜索第四步识别出的新增方法名,确认签名后再编写下方代码。 根据第四步的变更计划,编辑以下文件: **Android** — `android/src/main/java/cn/jiguang/plugins/push/JPushModule.java` - 为每个新增 API 添加对应的 `@ReactMethod` 方法,内部调用 `JPushInterface.newMethod()` **iOS** — `ios/RCTJPushModule/RCTJPushModule.m` - 为每个新增 API 添加对应的 `RCT_EXPORT_METHOD` 块 移除 API:若 SDK 已完全删除则移除封装方法,若仅废弃则保留并添加 `@deprecated` 注释。 --- ## 第七步:更新 Bridge 层代码 **JavaScript** — `index.js` - 为每个新增 API 添加对应的导出函数,调用 `NativeModules.JPushModule.newMethod()` **TypeScript 类型** — `index.d.ts` - 添加对应的函数类型声明 --- ## 第八步:展示变更摘要并请求确认 ``` ========== jpush-react-native 更新摘要 ========== Android JPush SDK: 旧版本 → 新版本 iOS JPush SDK: 旧版本 → 新版本 插件版本: 旧版本 → 新版本 新增 API: + methodName(params) // 说明(双端统一) + methodName() // iOS only 移除 API: - methodName() 行为变更: ! 变更说明 修改的文件: - android/build.gradle - JPushRN.podspec - android/src/.../JPushModule.java - ios/RCTJPushModule/RCTJPushModule.m - index.js - index.d.ts - package.json - CHANGELOG.md ================================================== 确认以上变更并发布到 npm? [y/N] ``` --- ## 第九步:发布(确认后执行) 用户输入 `y` 后: ```bash python3 .claude/skills/update-sdk/scripts/publisher.py ```
GitHub에서 보기