Skip to content

Commit 4a52bcb

Browse files
committed
升级插件版本到2.3.5,iOS和安卓采用自动集成的方式依赖SDK。
1 parent 56bf3d2 commit 4a52bcb

File tree

17 files changed

+30
-865
lines changed

17 files changed

+30
-865
lines changed

.cursor/commands/update_sdk.md

Lines changed: 25 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -6,123 +6,32 @@
66

77
### 1. 更新iOS JCore SDK
88

9-
使用自动下载脚本更新
10-
11-
```bash
12-
# 在项目根目录执行
13-
./.cursor/scripts/download_ios_sdk.sh <版本标签>
14-
15-
# 示例:下载 5.3.0 版本(标签不带 v 前缀)
16-
./.cursor/scripts/download_ios_sdk.sh 5.3.0
9+
iOS 端通过 CocoaPods 依赖 JCore SDK。在 `JCoreRN.podspec` 中修改版本号即可
10+
11+
```ruby
12+
Pod::Spec.new do |s|
13+
# ...
14+
s.dependency 'JCore', '5.x.x' # 将 5.x.x 改为目标版本,如 5.3.0
15+
# ...
16+
end
1717
```
1818

19-
**注意**
20-
- 脚本会自动更新 project.pbxproj 中的 SDK 引用
21-
- **如果自动下载失败**,请手动更新:替换 `ios/RCTJCoreModule/jcore-ios-x.x.x.xcframework` 为对应版本,并修改 `ios/RCTJCoreModule.xcodeproj/project.pbxproj` 中相关引用
19+
**说明**:将 `JCore` 的版本号改为需要更新的版本(如 5.3.0)
2220

2321
### 2. 更新Android JCore SDK
2422

25-
使用自动下载脚本更新:
26-
27-
```bash
28-
# 在项目根目录执行
29-
./.cursor/scripts/download_android_sdk.sh <版本号>
23+
Android 端通过 Maven 依赖 JCore SDK。在 `android/build.gradle` 中修改版本号即可:
3024

31-
# 示例:下载 5.3.0 版本
32-
./.cursor/scripts/download_android_sdk.sh 5.3.0
25+
```gradle
26+
dependencies {
27+
implementation 'cn.jiguang.sdk:jcore:5.x.x' // 将 5.x.x 改为目标版本,如 5.3.0
28+
// ...
29+
}
3330
```
3431

35-
**注意**
36-
- 脚本会尝试自动下载;若失败,会引导从[极光官方资源下载页面](https://docs.jiguang.cn/jcore/resources)选择并输入 ZIP 路径(支持拖拽到终端)
37-
- 脚本会自动解压并从 `libs` 中提取 jar 或 aar,复制到 `android/libs`
38-
- `build.gradle` 已支持 `libs` 下的 jar 和 aar,无需改配置
39-
- **若自动下载/脚本均失败**,请手动更新:将对应版本的 `jcore-android-x.x.x.jar``jcore-android-x.x.x.aar` 放入 `android/libs`
40-
41-
<!--
42-
### 3. 查找SDK新增API
43-
44-
**⚠️ 重要:必须仔细逐项检查更新日志,不要因为看到"更新各厂商SDK"等主要更新内容就忽略新增API的检查!**
45-
46-
#### Android SDK
47-
- 访问 [Android SDK Changelog](https://docs.jiguang.cn/jcore/jcore_changelog/updates_Android) 查找新版本的新增对外API
48-
- **检查方法**:
49-
1. 找到目标版本(如 v5.2.0)的更新内容部分
50-
2. **逐项阅读**更新内容列表中的每一项,不要跳过任何条目
51-
3. 特别关注包含以下关键词的条目:
52-
- "新增"、"新增接口"、"新增API"、"新增方法"
53-
- "public static"、"public void" 等Java方法签名
54-
- "支持"、"功能"(可能包含新API)
55-
4. 对于每个疑似新增API的条目,记录:
56-
- API方法名(如 `setAuth`)
57-
- 完整方法签名(如 `public static void setAuth(boolean auth)`)
58-
- 功能描述
59-
- 在 [Android SDK API 文档](https://docs.jiguang.cn/jcore/client/Android/android_api) 中查找并确认新增API的详细用法、参数说明和示例代码
60-
61-
#### iOS SDK
62-
- 访问 [iOS SDK Changelog](https://docs.jiguang.cn/jcore/jcore_changelog/updates_iOS) 查找新版本的新增对外API
63-
- **检查方法**:
64-
1. 找到目标版本(如 v5.2.1)的更新内容部分
65-
2. **逐项阅读**更新内容列表中的每一项,不要跳过任何条目
66-
3. 特别关注包含以下关键词的条目:
67-
- "新增"、"新增接口"、"新增API"、"新增方法"
68-
- Objective-C方法签名(如 `+ (void)setAuth:`)
69-
- "支持"、"功能"(可能包含新API)
70-
4. 对于每个疑似新增API的条目,记录:
71-
- API方法名
72-
- 完整方法签名
73-
- 功能描述
74-
- 在 [iOS SDK API 文档](https://docs.jiguang.cn/jcore/client/iOS/ios_api) 中查找并确认新增API的详细用法、参数说明和示例代码
75-
76-
**检查清单**(在完成检查后确认):
77-
- [ ] 已找到目标版本的更新日志
78-
- [ ] 已逐项阅读所有更新内容条目(包括次要更新)
79-
- [ ] 已识别所有包含"新增"、"API"、"接口"、"方法"等关键词的条目
80-
- [ ] 已记录所有新增API的方法名和签名
81-
- [ ] 已在API文档中查找并确认了每个新增API的详细用法
82-
- [ ] 已区分哪些是新增的对外API(需要封装),哪些是内部更新(不需要封装)
83-
84-
**常见误区**:
85-
- ❌ 错误:看到"更新各厂商SDK"就认为只是版本更新,没有新增API
86-
- ✅ 正确:即使主要更新是版本升级,也要仔细检查是否有新增API
87-
- ❌ 错误:只关注主要更新内容,忽略列表中的其他条目
88-
- ✅ 正确:必须逐项检查更新内容列表中的每一项
89-
- ❌ 错误:依赖搜索结果判断是否有新增API
90-
- ✅ 正确:直接查看官方更新日志,逐项检查
91-
- ❌ 错误:文本识别有问题时(如缺少字母),直接忽略
92-
- ✅ 正确:如果文本识别有问题,需要手动访问官方文档确认
93-
94-
### 4. 封装新增API(如有)
95-
96-
**⚠️ 重要:如果没有新增API,必须明确说明"经检查,该版本无新增对外API",而不是简单说"没有新增API"。**
97-
98-
如果SDK有新增API,需要在插件中进行封装:
99-
- 在 `index.js` 中添加JavaScript方法
100-
- 在 `index.d.ts` 中添加TypeScript类型定义
101-
- 在 `android/src/main/java/cn/jiguang/plugins/core/JCoreModule.java` 中实现Android端逻辑
102-
- 在 `ios/RCTJCoreModule/RCTJCoreModule.m` 中实现iOS端逻辑
103-
104-
**封装原则**:
105-
- 如果Android和iOS新增的API是同一个功能,封装成一个插件方法
106-
- 如果不是同一个功能,分开封装
107-
- **不要使用反射的方式调用SDK API,直接调用即可**
108-
- 如果没有新增API,**必须明确说明已检查并确认无新增API**,然后跳过此步骤
109-
110-
**封装步骤**:
111-
1. 确定API的完整签名和参数类型
112-
2. 确定API的调用时机(是否需要在init之前调用)
113-
3. 在对应平台实现方法(Android在JCoreModule.java,iOS在RCTJCoreModule.m)
114-
4. 在 `index.js` 中添加JavaScript方法,保持与现有API风格一致
115-
5. 在 `index.d.ts` 中添加TypeScript类型定义
116-
6. 添加必要的错误处理和日志
117-
118-
**注意**:React Native插件新增方法还需要在 `index.js` 和 `index.d.ts` 文件中声明。
119-
120-
### 5. 更新示例代码
121-
122-
在插件示例demo中添加新增API的示例调用代码(如有新增API)。注意RN插件新增方法还需要在 `index.js` 和 `index.d.ts` 文件中声明。
123-
-->
124-
125-
### 6. 更新插件版本号
32+
**说明**:将 `cn.jiguang.sdk:jcore` 的版本号改为需要更新的版本(如 5.3.0)
33+
34+
### 3. 更新插件版本号
12635

12736
`package.json` 中更新插件版本号:
12837

@@ -133,7 +42,7 @@
13342
- 假设当前版本为 `2.3.3`
13443
- 更新后版本为 `2.3.4`
13544

136-
### 7. 更新示例项目依赖版本(如有示例项目)
45+
### 4. 更新示例项目依赖版本(如有示例项目)
13746

13847
如果项目包含示例项目,在 `example/package.json` 中更新示例项目的插件依赖版本,改为最新的插件版本号:
13948

@@ -145,7 +54,7 @@
14554
}
14655
```
14756

148-
### 8. 更新CHANGELOG.md(如有)
57+
### 5. 更新CHANGELOG.md(如有)
14958

15059
如果项目包含 `CHANGELOG.md` 文件,在其中记录本次更新的变更内容,包括:
15160
- SDK版本更新
@@ -167,15 +76,9 @@
16776

16877
## 注意事项
16978

170-
- **必须逐项检查更新日志,不要遗漏任何新增API**
171-
- 确保Android和iOS的SDK版本对应关系正确
172-
- 新增API的封装需要保持与现有API风格一致
173-
- **React Native插件新增方法需要在 `index.js``index.d.ts` 两个文件中都声明**
79+
- 确保 Android 和 iOS 的 SDK 版本对应关系正确
17480
- 更新后建议进行测试验证
175-
- **如果更新日志中的文本识别有问题(如缺少字母),需要手动访问官方文档确认**
176-
- 根据 `cursor.md` 文档,更新步骤应遵循:
177-
1. 替换 iOS SDK:`ios/RCTJCoreModule/jcore-ios-x.x.x.xcframework`
178-
2. 更新 `ios/RCTJCoreModule.xcodeproj/project.pbxproj` 中的 SDK 引用
179-
3. 替换 Android SDK:`android/libs/jcore-android-x.x.x.jar`
180-
4. 封装新增方法(如有)并在 `index.js``index.d.ts` 中声明
181-
5. 更新 `package.json` 版本号(+0.0.1)
81+
- 更新步骤应遵循:
82+
1. 更新 iOS SDK:在 `JCoreRN.podspec` 中修改 `s.dependency 'JCore', '5.x.x'` 的版本号
83+
2. 更新 Android SDK:在 `android/build.gradle` 中修改 `implementation 'cn.jiguang.sdk:jcore:5.x.x'` 的版本号
84+
3. 更新 `package.json` 版本号(+0.0.1)

0 commit comments

Comments
 (0)