|
6 | 6 |
|
7 | 7 | ### 1. 更新iOS JCore SDK |
8 | 8 |
|
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 |
17 | 17 | ``` |
18 | 18 |
|
19 | | -**注意**: |
20 | | -- 脚本会自动更新 project.pbxproj 中的 SDK 引用 |
21 | | -- **如果自动下载失败**,请手动更新:替换 `ios/RCTJCoreModule/jcore-ios-x.x.x.xcframework` 为对应版本,并修改 `ios/RCTJCoreModule.xcodeproj/project.pbxproj` 中相关引用 |
| 19 | +**说明**:将 `JCore` 的版本号改为需要更新的版本(如 5.3.0) |
22 | 20 |
|
23 | 21 | ### 2. 更新Android JCore SDK |
24 | 22 |
|
25 | | -使用自动下载脚本更新: |
26 | | - |
27 | | -```bash |
28 | | -# 在项目根目录执行 |
29 | | -./.cursor/scripts/download_android_sdk.sh <版本号> |
| 23 | +Android 端通过 Maven 依赖 JCore SDK。在 `android/build.gradle` 中修改版本号即可: |
30 | 24 |
|
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 | +} |
33 | 30 | ``` |
34 | 31 |
|
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. 更新插件版本号 |
126 | 35 |
|
127 | 36 | 在 `package.json` 中更新插件版本号: |
128 | 37 |
|
|
133 | 42 | - 假设当前版本为 `2.3.3` |
134 | 43 | - 更新后版本为 `2.3.4` |
135 | 44 |
|
136 | | -### 7. 更新示例项目依赖版本(如有示例项目) |
| 45 | +### 4. 更新示例项目依赖版本(如有示例项目) |
137 | 46 |
|
138 | 47 | 如果项目包含示例项目,在 `example/package.json` 中更新示例项目的插件依赖版本,改为最新的插件版本号: |
139 | 48 |
|
|
145 | 54 | } |
146 | 55 | ``` |
147 | 56 |
|
148 | | -### 8. 更新CHANGELOG.md(如有) |
| 57 | +### 5. 更新CHANGELOG.md(如有) |
149 | 58 |
|
150 | 59 | 如果项目包含 `CHANGELOG.md` 文件,在其中记录本次更新的变更内容,包括: |
151 | 60 | - SDK版本更新 |
|
167 | 76 |
|
168 | 77 | ## 注意事项 |
169 | 78 |
|
170 | | -- **必须逐项检查更新日志,不要遗漏任何新增API** |
171 | | -- 确保Android和iOS的SDK版本对应关系正确 |
172 | | -- 新增API的封装需要保持与现有API风格一致 |
173 | | -- **React Native插件新增方法需要在 `index.js` 和 `index.d.ts` 两个文件中都声明** |
| 79 | +- 确保 Android 和 iOS 的 SDK 版本对应关系正确 |
174 | 80 | - 更新后建议进行测试验证 |
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