# Jpush Jcore React Native Jcore React Native

> 你正在更新 **jcore-react-native** 插件。

- Skill: `tomevault-io/jpush-jcore-react-native-jcore-react-native` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/jpush-jcore-react-native-jcore-react-native`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/jpush-jcore-react-native-jcore-react-native/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/jpush-jcore-react-native-jcore-react-native

---


你正在更新 **jcore-react-native** 插件。

**用户参数：** $ARGUMENTS

---

## 第一步：解析参数

从 `$ARGUMENTS` 中提取版本号：
- `--android X.X.X` → Android JCore SDK 目标版本
- `--ios X.X.X` → iOS JCore SDK 目标版本
- `--jpush-ref X.X.X` → 查找 JCore API 变更所对应的 JPush 版本号（选填）

如果某端版本号缺失，先询问用户再继续。

**关于 `--jpush-ref`：** JCore 官网不单独发布更新日志，JCore 的 API 变更记录在 JPush 的更新日志里。若参数中未提供此值，询问用户：

> JCore 的 API 变更记录在哪个 JPush 版本的更新日志中？请提供 JPush 版本号（如 `4.9.0`），或回复"跳过"以略过 Changelog 拉取步骤。

若用户回复"跳过"，记录 `jpush_ref = null`，直接跳到第三步末尾说明。

---

## 第二步：安装依赖

```bash
pip3 install requests beautifulsoup4 -q 2>&1 | tail -1
```

---

## 第三步：拉取 SDK Changelog

> JCore 的更新日志发布在 JPush 的 changelog 页面中，需以 JPush 版本号查找对应章节，再从中提取 JCore 相关变更。

若 `jpush_ref` 已提供（非 null），执行：
```bash
python3 .claude/skills/update-sdk/scripts/changelog_fetcher.py --android <JPUSH_REF> --ios <JPUSH_REF>
```
读取 `.claude/skills/update-sdk/scripts/.changelog_cache.json` 获取 Changelog 内容。

若 `jpush_ref = null`，**跳过此步骤**，第四步分析时无 changelog 可读，仅做版本号更新，跳过 API 变更分析。

---

## 第四步：AI 分析变更

基于 Changelog，分析并整理：

> **注意**：Changelog 同时包含 JPush 和 JCore 的变更。只关注调用类以 `JCore` 开头的条目（如 `JCoreInterface`、`JCoreManager` 等），忽略类名以 `JPush` 开头的内容。

1. **新增 API**：同时存在于 Android 和 iOS 的功能 → 合并为一个插件统一 API；仅单端有的 → **先检查另一端是否已有等价实现**（见下方说明），确认缺失才标注平台注释
2. **移除/废弃 API**：确认是否需要从插件中删除或标记 `@deprecated`
3. **行为变更**：影响现有封装逻辑的改动
4. **新插件版本号**：始终升 patch（如 3.4.9 → 3.5.0，3.9.9 → 4.0.0）

> **跨平台等价检查**：当 Changelog 只在某一端出现新增 API 时，**不要直接标为单端 Only**。先读取另一端的 Native 文件（`android/src/.../JCoreModule.java` 或 `ios/RCTJCoreModule/RCTJCoreModule.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 层代码

根据第四步的变更计划，编辑以下文件：

**Android** — `android/src/main/java/cn/jiguang/plugins/core/JCoreModule.java`
- 为每个新增 API 添加对应的 `@ReactMethod` 方法，内部调用 `JCoreInterface.newMethod()`

**iOS** — `ios/RCTJCoreModule/RCTJCoreModule.m`
- 为每个新增 API 添加对应的 `RCT_EXPORT_METHOD` 块

移除 API：若 SDK 已完全删除则移除封装方法，若仅废弃则保留并添加 `@deprecated` 注释。

---

## 第七步：更新 Bridge 层代码

**JavaScript** — `index.js`
- 为每个新增 API 添加对应的导出函数，内部调用 `NativeModules.JCoreModule.newMethod()`

**TypeScript 类型** — `index.d.ts`
- 添加对应的函数类型声明

---

## 第八步：展示变更摘要并请求确认

展示如下格式的摘要，然后询问是否确认发布：

```
========== jcore-react-native 更新摘要 ==========
Android JCore SDK:  旧版本 → 新版本
iOS JCore SDK:      旧版本 → 新版本
插件版本:            旧版本 → 新版本

新增 API：
  + methodName(params)  // 说明

移除 API：
  - methodName()

行为变更：
  ! 变更说明

修改的文件：
  - android/build.gradle
  - JCoreRN.podspec
  - android/src/.../JCoreModule.java
  - ios/RCTJCoreModule/RCTJCoreModule.m
  - index.js
  - index.d.ts
  - package.json
  - CHANGELOG.md
==================================================

确认以上变更并发布到 npm? [y/N]
```

---

## 第九步：发布（确认后执行）

用户输入 `y` 后：

```bash
python3 .claude/skills/update-sdk/scripts/publisher.py
```

---
> Source: [jpush/jcore-react-native](https://github.com/jpush/jcore-react-native) — distributed by [TomeVault](https://tomevault.io).
<!-- tomevault:4.0:skill_md:2026-06-19 -->

