Skip to content

Commit cd54f31

Browse files
authored
Merge pull request #9 from BlackishGreen33/bg/docs-readme-sync
docs(readme): sync repository structure and ios notes
2 parents 0373524 + 01d2862 commit cd54f31

2 files changed

Lines changed: 29 additions & 17 deletions

File tree

README.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,12 @@ manifestPlaceholders = [
193193
]
194194
```
195195

196+
同时建议检查 iOS 生成结果:
197+
198+
- `ios/<app>/Info.plist` 中的 `UIBackgroundModes` 会保留宿主已有值,并自动补齐 `fetch``remote-notification`
199+
- 如果项目使用 Swift,插件会优先复用已有 `SWIFT_OBJC_BRIDGING_HEADER`;如果未配置,则自动创建 `<target>-Bridging-Header.h`
200+
- 重复执行 `expo prebuild` 不会重复追加 JPush 所需的 Bridging Header import
201+
196202
如果你是在业务项目里临时直接改 `node_modules/mx-jpush-expo`,重装依赖后修改会丢失,正式建议使用 `pnpm patch mx-jpush-expo` 固化。
197203

198204
## 更新日志
@@ -220,7 +226,7 @@ manifestPlaceholders = [
220226
- ✨ 自动配置华为和 FCM 的 `apply plugin` 语句
221227
- ✨ 自动配置 project/build.gradle(Maven 仓库和 classpath)
222228
- ✨ 新增 `packageName` 必填配置项
223-
- � 完善厂商文通道配置文档,添加极光官方文档链接
229+
- 📝 完善厂商通道配置文档,添加极光官方文档链接
224230
- 📝 添加应用签名配置说明(华为、荣耀、蔚来必需)
225231
- 🔧 优化代码结构,移除手动下载 aar 的要求
226232

@@ -246,7 +252,8 @@ manifestPlaceholders = [
246252
1. 确保在 Xcode 中开启 Push Notifications 能力
247253
2. 在极光推送控制台上传正确的推送证书(Development/Production)
248254
3. 验证 Bundle ID 与极光控制台完全匹配
249-
4. 如果使用 Swift,插件会自动配置 Bridging Header
255+
4. 如果使用 Swift,插件会自动复用或创建 Bridging Header,并写入 JPush 所需 import
256+
5. 插件会合并 `UIBackgroundModes`,不会覆盖宿主已有后台模式
250257

251258
### Android 配置
252259
1. 确保在 AndroidManifest.xml 中已声明必要的权限
@@ -336,15 +343,15 @@ mx-jpush-expo/
336343
│ │ ├── ios/ # iOS 平台配置
337344
│ │ │ ├── index.ts # iOS 配置集成
338345
│ │ │ ├── infoPlist.ts # Info.plist 配置
339-
│ │ │ ├── appDelegateInterface.ts # AppDelegate 接口
340-
│ │ │ ├── appDelegate.ts # AppDelegate 实现
346+
│ │ │ ├── appDelegate.ts # AppDelegate 实现
341347
│ │ │ ├── bridgingHeader.ts # Swift/OC 桥接头文件
342-
│ │ │ └── podfile.ts # Podfile 配置
343348
│ │ └── android/ # Android 平台配置
344349
│ │ ├── index.ts # Android 配置集成
345350
│ │ ├── androidManifest.ts # AndroidManifest 配置
346-
│ │ ├── appBuildGradle.ts # build.gradle 配置
347-
│ │ └── settingsGradle.ts # settings.gradle 配置
351+
│ │ ├── appBuildGradle.ts # app/build.gradle 配置
352+
│ │ ├── projectBuildGradle.ts # project/build.gradle 配置
353+
│ │ ├── settingsGradle.ts # settings.gradle 配置
354+
│ │ └── gradleProperties.ts # gradle.properties 配置
348355
│ ├── build/ # 编译后的 JS 文件(发布到 npm)
349356
│ ├── __tests__/ # 单元测试
350357
│ ├── tsconfig.json # TypeScript 配置

plugin/README.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ plugin/
1414
│ ├── ios/ # iOS 平台配置
1515
│ │ ├── index.ts # iOS 配置集成入口
1616
│ │ ├── infoPlist.ts # Info.plist 配置
17-
│ │ ├── appDelegateInterface.ts # AppDelegate 接口配置
1817
│ │ ├── appDelegate.ts # AppDelegate 实现配置
1918
│ │ ├── bridgingHeader.ts # Swift/OC 桥接头文件配置
20-
│ │ └── podfile.ts # Podfile 配置
2119
│ └── android/ # Android 平台配置
2220
│ ├── index.ts # Android 配置集成入口
2321
│ ├── androidManifest.ts # AndroidManifest.xml 配置
2422
│ ├── appBuildGradle.ts # app/build.gradle 配置
25-
│ └── settingsGradle.ts # settings.gradle 配置
23+
│ ├── projectBuildGradle.ts # project/build.gradle 配置
24+
│ ├── settingsGradle.ts # settings.gradle 配置
25+
│ └── gradleProperties.ts # gradle.properties 配置
2626
├── build/ # 编译后的 JavaScript 文件(npm 发布)
2727
├── __tests__/ # 单元测试
28-
│ └── withJPush.test.ts # 主插件测试
28+
│ └── withJPush.test.ts # 参数校验测试
2929
├── tsconfig.json # TypeScript 配置
3030
└── jest.config.js # Jest 测试配置
3131
```
@@ -47,17 +47,20 @@ plugin/
4747

4848
### iOS 模块 (src/ios/)
4949
- **index.ts**: iOS 配置的集成入口
50-
- **infoPlist.ts**: 配置 Info.plist,添加后台模式和权限说明
51-
- **appDelegateInterface.ts**: 添加 JPUSHRegisterDelegate 协议
50+
- **infoPlist.ts**: 配置 Info.plist,写入 JPush 初始化参数并合并后台模式
5251
- **appDelegate.ts**: 注入 JPush 初始化和事件处理代码
53-
- **bridgingHeader.ts**: 配置 Swift/OC 混编的桥接头文件
54-
- **podfile.ts**: 配置 Podfile post_install 脚本
52+
- **bridgingHeader.ts**: 复用或创建 Swift/OC 混编的桥接头文件,并保证 import 幂等
5553

5654
### Android 模块 (src/android/)
5755
- **index.ts**: Android 配置的集成入口
5856
- **androidManifest.ts**: 配置 AndroidManifest.xml meta-data
59-
- **appBuildGradle.ts**: 配置 build.gradle 依赖和 manifestPlaceholders
60-
- **settingsGradle.ts**: 配置 settings.gradle 模块引用
57+
- **appBuildGradle.ts**: 配置 `app/build.gradle` 依赖和 `manifestPlaceholders`
58+
- **projectBuildGradle.ts**: 配置 project 级 Gradle 仓库和 classpath
59+
- **settingsGradle.ts**: 配置 `settings.gradle` 模块引用
60+
- **gradleProperties.ts**: 配置 Gradle 兼容性属性
61+
62+
### 测试模块 (__tests__/)
63+
- **withJPush.test.ts**: 参数校验和插件入口的基础测试
6164

6265
## 设计原则
6366

@@ -97,6 +100,8 @@ npm run build
97100
npm test
98101
```
99102

103+
当前主线包含基础的参数校验测试。
104+
100105
## 开发
101106

102107
修改源码后,需要重新构建:

0 commit comments

Comments
 (0)