@leonxin/meetgames 0.1.8 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/.agents/skills/meet-sdk-regression/SKILL.md +93 -0
  2. package/.cursor/mcp.example.json +16 -0
  3. package/.cursor/mcp.json +11 -0
  4. package/.cursor/skills/meetgames-mcp/SKILL.md +48 -0
  5. package/.vite/vitest/results.json +1 -0
  6. package/README.md +31 -8
  7. package/dist/aab-converter/aab-entry.d.ts +3 -0
  8. package/dist/aab-converter/aab-entry.d.ts.map +1 -0
  9. package/dist/aab-converter/aab-entry.js +49 -0
  10. package/dist/aab-converter/aab-entry.js.map +1 -0
  11. package/dist/aab-converter/apksExtractor.d.ts +2 -0
  12. package/dist/aab-converter/apksExtractor.d.ts.map +1 -0
  13. package/dist/aab-converter/apksExtractor.js +108 -0
  14. package/dist/aab-converter/apksExtractor.js.map +1 -0
  15. package/dist/aab-converter/bundletoolRunner.d.ts +15 -0
  16. package/dist/aab-converter/bundletoolRunner.d.ts.map +1 -0
  17. package/dist/aab-converter/bundletoolRunner.js +46 -0
  18. package/dist/aab-converter/bundletoolRunner.js.map +1 -0
  19. package/dist/aab-converter/cliArgs.d.ts +27 -0
  20. package/dist/aab-converter/cliArgs.d.ts.map +1 -0
  21. package/dist/aab-converter/cliArgs.js +170 -0
  22. package/dist/aab-converter/cliArgs.js.map +1 -0
  23. package/dist/aab-converter/convertAabToApk.d.ts +7 -0
  24. package/dist/aab-converter/convertAabToApk.d.ts.map +1 -0
  25. package/dist/aab-converter/convertAabToApk.js +69 -0
  26. package/dist/aab-converter/convertAabToApk.js.map +1 -0
  27. package/dist/aab-converter/resourcePaths.d.ts +4 -0
  28. package/dist/aab-converter/resourcePaths.d.ts.map +1 -0
  29. package/dist/aab-converter/resourcePaths.js +42 -0
  30. package/dist/aab-converter/resourcePaths.js.map +1 -0
  31. package/dist/aab-converter/signingOptions.d.ts +9 -0
  32. package/dist/aab-converter/signingOptions.d.ts.map +1 -0
  33. package/dist/aab-converter/signingOptions.js +21 -0
  34. package/dist/aab-converter/signingOptions.js.map +1 -0
  35. package/dist/aab-converter/types.d.ts +24 -0
  36. package/dist/aab-converter/types.d.ts.map +1 -0
  37. package/dist/aab-converter/types.js +2 -0
  38. package/dist/aab-converter/types.js.map +1 -0
  39. package/dist/android/adapter.d.ts.map +1 -1
  40. package/dist/android/adapter.js +2 -2
  41. package/dist/android/adapter.js.map +1 -1
  42. package/dist/android/detect.d.ts +2 -2
  43. package/dist/android/detect.d.ts.map +1 -1
  44. package/dist/android/detect.js +36 -8
  45. package/dist/android/detect.js.map +1 -1
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +157 -31
  48. package/dist/cli.js.map +1 -1
  49. package/dist/config/meetSdkDefaultConfig.d.ts +19 -2
  50. package/dist/config/meetSdkDefaultConfig.d.ts.map +1 -1
  51. package/dist/config/meetSdkDefaultConfig.js +67 -5
  52. package/dist/config/meetSdkDefaultConfig.js.map +1 -1
  53. package/dist/config/meetSdkIosConfig.d.ts +21 -0
  54. package/dist/config/meetSdkIosConfig.d.ts.map +1 -0
  55. package/dist/config/meetSdkIosConfig.js +66 -0
  56. package/dist/config/meetSdkIosConfig.js.map +1 -0
  57. package/dist/config/meetSdkRemoteConfig.d.ts +18 -1
  58. package/dist/config/meetSdkRemoteConfig.d.ts.map +1 -1
  59. package/dist/config/meetSdkRemoteConfig.js +61 -25
  60. package/dist/config/meetSdkRemoteConfig.js.map +1 -1
  61. package/dist/contracts/types.d.ts +19 -6
  62. package/dist/contracts/types.d.ts.map +1 -1
  63. package/dist/core/doctor.d.ts +17 -0
  64. package/dist/core/doctor.d.ts.map +1 -0
  65. package/dist/core/doctor.js +444 -0
  66. package/dist/core/doctor.js.map +1 -0
  67. package/dist/core/pipeline.d.ts.map +1 -1
  68. package/dist/core/pipeline.js +0 -15
  69. package/dist/core/pipeline.js.map +1 -1
  70. package/dist/core/platform.d.ts +12 -0
  71. package/dist/core/platform.d.ts.map +1 -0
  72. package/dist/core/platform.js +40 -0
  73. package/dist/core/platform.js.map +1 -0
  74. package/dist/core/reporter.js +1 -1
  75. package/dist/core/reporter.js.map +1 -1
  76. package/dist/core/workspace.d.ts +2 -2
  77. package/dist/core/workspace.d.ts.map +1 -1
  78. package/dist/core/workspace.js +4 -5
  79. package/dist/core/workspace.js.map +1 -1
  80. package/dist/index.d.ts +3 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +3 -1
  83. package/dist/index.js.map +1 -1
  84. package/dist/ios/channelConfig.d.ts +1 -0
  85. package/dist/ios/channelConfig.d.ts.map +1 -1
  86. package/dist/ios/channelConfig.js +82 -0
  87. package/dist/ios/channelConfig.js.map +1 -1
  88. package/dist/ios/codeUtils.d.ts +1 -0
  89. package/dist/ios/codeUtils.d.ts.map +1 -1
  90. package/dist/ios/codeUtils.js +11 -2
  91. package/dist/ios/codeUtils.js.map +1 -1
  92. package/dist/ios/detect.d.ts +2 -2
  93. package/dist/ios/detect.d.ts.map +1 -1
  94. package/dist/ios/detect.js +49 -10
  95. package/dist/ios/detect.js.map +1 -1
  96. package/dist/ios/entitlements.d.ts +4 -0
  97. package/dist/ios/entitlements.d.ts.map +1 -0
  98. package/dist/ios/entitlements.js +53 -0
  99. package/dist/ios/entitlements.js.map +1 -0
  100. package/dist/ios/fileManager.d.ts.map +1 -1
  101. package/dist/ios/fileManager.js +3 -2
  102. package/dist/ios/fileManager.js.map +1 -1
  103. package/dist/ios/infoPlist.d.ts +1 -1
  104. package/dist/ios/infoPlist.d.ts.map +1 -1
  105. package/dist/ios/infoPlist.js.map +1 -1
  106. package/dist/ios/integrate.d.ts.map +1 -1
  107. package/dist/ios/integrate.js +211 -36
  108. package/dist/ios/integrate.js.map +1 -1
  109. package/dist/ios/pbxprojEditor.d.ts +2 -0
  110. package/dist/ios/pbxprojEditor.d.ts.map +1 -1
  111. package/dist/ios/pbxprojEditor.js +179 -1
  112. package/dist/ios/pbxprojEditor.js.map +1 -1
  113. package/dist/ios/pluginConfig.d.ts +1 -0
  114. package/dist/ios/pluginConfig.d.ts.map +1 -1
  115. package/dist/ios/pluginConfig.js +36 -4
  116. package/dist/ios/pluginConfig.js.map +1 -1
  117. package/dist/ios/sdkBundle.d.ts +1 -1
  118. package/dist/ios/sdkBundle.d.ts.map +1 -1
  119. package/dist/ios/sdkBundle.js +7 -5
  120. package/dist/ios/sdkBundle.js.map +1 -1
  121. package/dist/ios/template.d.ts +1 -0
  122. package/dist/ios/template.d.ts.map +1 -1
  123. package/dist/ios/template.js +14 -1
  124. package/dist/ios/template.js.map +1 -1
  125. package/dist/ios/types.d.ts +2 -2
  126. package/dist/ios/types.d.ts.map +1 -1
  127. package/dist/mcp/server.d.ts.map +1 -1
  128. package/dist/mcp/server.js +14 -13
  129. package/dist/mcp/server.js.map +1 -1
  130. package/dist/mcp/service.d.ts +8 -6
  131. package/dist/mcp/service.d.ts.map +1 -1
  132. package/dist/mcp/service.js +34 -14
  133. package/dist/mcp/service.js.map +1 -1
  134. package/dist/ops/handlers.d.ts.map +1 -1
  135. package/dist/ops/handlers.js +10 -4
  136. package/dist/ops/handlers.js.map +1 -1
  137. package/dist/remote/sdkHomeDownload.d.ts +65 -0
  138. package/dist/remote/sdkHomeDownload.d.ts.map +1 -0
  139. package/dist/remote/sdkHomeDownload.js +208 -0
  140. package/dist/remote/sdkHomeDownload.js.map +1 -0
  141. package/dist/remote/topsdkDownloadSdkConfig.d.ts.map +1 -1
  142. package/dist/remote/topsdkDownloadSdkConfig.js +11 -1
  143. package/dist/remote/topsdkDownloadSdkConfig.js.map +1 -1
  144. package/dist/shared/errors.d.ts +7 -0
  145. package/dist/shared/errors.d.ts.map +1 -0
  146. package/dist/shared/errors.js +16 -0
  147. package/dist/shared/errors.js.map +1 -0
  148. package/dist/shared/fileUtils.d.ts +5 -0
  149. package/dist/shared/fileUtils.d.ts.map +1 -0
  150. package/dist/shared/fileUtils.js +35 -0
  151. package/dist/shared/fileUtils.js.map +1 -0
  152. package/dist/shared/logger.d.ts +10 -0
  153. package/dist/shared/logger.d.ts.map +1 -0
  154. package/dist/shared/logger.js +37 -0
  155. package/dist/shared/logger.js.map +1 -0
  156. package/dist/shared/pathUtils.d.ts +4 -0
  157. package/dist/shared/pathUtils.d.ts.map +1 -0
  158. package/dist/shared/pathUtils.js +22 -0
  159. package/dist/shared/pathUtils.js.map +1 -0
  160. package/dist/shared/processRunner.d.ts +12 -0
  161. package/dist/shared/processRunner.d.ts.map +1 -0
  162. package/dist/shared/processRunner.js +31 -0
  163. package/dist/shared/processRunner.js.map +1 -0
  164. package/docs/AAB_CONVERTER_CLI_PLAN.md +392 -0
  165. package/docs/API.md +246 -32
  166. package/docs/CLI.md +292 -0
  167. package/docs/INTEGRATION.md +116 -0
  168. package/docs/MCP.md +86 -0
  169. package/docs/README.md +19 -10
  170. package/docs/{api → archive/api}/downloadSDKConfig.md +8 -6
  171. package/docs/{api → archive/api}/getChannelConfig-meetgames.md +1 -1
  172. package/docs/archive/ios-migration.md +2139 -0
  173. package/docs/{ → archive/product/}/346/212/200/346/234/257/346/226/271/346/241/210/350/260/203/347/240/224.md +7 -7
  174. package/docs/{ → archive/product/}/351/234/200/346/261/202/346/226/207/346/241/243.md +15 -14
  175. package/logs/convert-20260622-155037.log +5 -0
  176. package/logs/convert-20260622-155226.log +6 -0
  177. package/meetsdk-android.json +2 -1
  178. package/meetsdk-ios.json +15 -0
  179. package/package.json +10 -36
  180. package/scripts/package-aab-cli-win.mjs +193 -0
  181. package/src/aab-converter/aab-entry.ts +48 -0
  182. package/src/aab-converter/apksExtractor.ts +119 -0
  183. package/src/aab-converter/bundletoolRunner.ts +63 -0
  184. package/src/aab-converter/cliArgs.ts +194 -0
  185. package/src/aab-converter/convertAabToApk.ts +81 -0
  186. package/src/aab-converter/resourcePaths.ts +43 -0
  187. package/src/aab-converter/signingOptions.ts +29 -0
  188. package/src/aab-converter/types.ts +26 -0
  189. package/src/android/adapter.ts +9 -0
  190. package/src/android/assembleIntegrationJson.ts +33 -0
  191. package/src/android/detect.ts +132 -0
  192. package/src/android/downloadGoogleServicesJson.ts +56 -0
  193. package/src/android/gradle.ts +116 -0
  194. package/src/android/manifest.ts +50 -0
  195. package/src/android/meetSdkRemoteGradle.ts +837 -0
  196. package/src/cli.ts +488 -0
  197. package/src/config/fetchConfigWrite.ts +30 -0
  198. package/src/config/loadAndroidIntegration.ts +41 -0
  199. package/src/config/loadManifest.ts +40 -0
  200. package/src/config/meetSdkDefaultConfig.ts +99 -0
  201. package/src/config/meetSdkIosConfig.ts +87 -0
  202. package/src/config/meetSdkRemoteConfig.ts +1211 -0
  203. package/src/config/topsdkFeatureModules.ts +92 -0
  204. package/src/contracts/types.ts +121 -0
  205. package/src/core/doctor.ts +485 -0
  206. package/src/core/patch.ts +64 -0
  207. package/src/core/pipeline.ts +107 -0
  208. package/src/core/platform.ts +47 -0
  209. package/src/core/previewPatches.ts +23 -0
  210. package/src/core/reporter.ts +24 -0
  211. package/src/core/workspace.ts +29 -0
  212. package/src/entry.ts +7 -0
  213. package/src/index.ts +133 -0
  214. package/src/ios/channelConfig.ts +128 -0
  215. package/src/ios/codeUtils.ts +160 -0
  216. package/src/ios/detect.ts +105 -0
  217. package/src/ios/entitlements.ts +61 -0
  218. package/src/ios/fileManager.ts +48 -0
  219. package/src/ios/infoPlist.ts +55 -0
  220. package/src/ios/integrate.ts +516 -0
  221. package/src/ios/pbxprojEditor.ts +383 -0
  222. package/src/ios/pluginConfig.ts +97 -0
  223. package/src/ios/reserved.ts +8 -0
  224. package/src/ios/sdkBundle.ts +36 -0
  225. package/src/ios/template.ts +36 -0
  226. package/src/ios/types.ts +65 -0
  227. package/src/mcp/server.ts +170 -0
  228. package/src/mcp/service.ts +222 -0
  229. package/src/mcp-entry.ts +7 -0
  230. package/src/ops/fileStore.ts +56 -0
  231. package/src/ops/handlers.ts +304 -0
  232. package/src/remote/fetchJson.ts +22 -0
  233. package/src/remote/sdkHomeDownload.ts +274 -0
  234. package/src/remote/topsdkDownloadSdkConfig.ts +93 -0
  235. package/src/remote/topsdkGetSdkConfig.ts +122 -0
  236. package/src/remote/topsdkSign.ts +10 -0
  237. package/src/shared/errors.ts +16 -0
  238. package/src/shared/fileUtils.ts +41 -0
  239. package/src/shared/logger.ts +49 -0
  240. package/src/shared/pathUtils.ts +24 -0
  241. package/src/shared/processRunner.ts +43 -0
  242. package/test-projects/README.md +51 -0
  243. package/test-projects/_preview/pipeline.patch +281 -0
  244. package/tests/aab-converter.test.ts +213 -0
  245. package/tests/assemble.test.ts +12 -0
  246. package/tests/doctor.test.ts +89 -0
  247. package/tests/downloadGoogleServicesJson.test.ts +47 -0
  248. package/tests/fetch-remote.test.ts +23 -0
  249. package/tests/fetchConfigOverrides.test.ts +28 -0
  250. package/tests/fetchConfigWrite.test.ts +54 -0
  251. package/tests/gradle.test.ts +33 -0
  252. package/tests/integration-json.test.ts +29 -0
  253. package/tests/ios.codeUtils.test.ts +23 -0
  254. package/tests/ios.sdkBundle.test.ts +16 -0
  255. package/tests/loadManifest.test.ts +15 -0
  256. package/tests/manifest-xml.test.ts +30 -0
  257. package/tests/mcp.e2e.ts +217 -0
  258. package/tests/mcp.service.test.ts +53 -0
  259. package/tests/meetSdkRemoteConfig.test.ts +456 -0
  260. package/tests/meetSdkRemoteGradle.test.ts +414 -0
  261. package/tests/pipeline.android.test.ts +96 -0
  262. package/tests/pipeline.integration-json.test.ts +58 -0
  263. package/tests/pipeline.ios.test.ts +385 -0
  264. package/tests/pipeline.preview.patch.test.ts +85 -0
  265. package/tests/platformSelection.test.ts +77 -0
  266. package/tests/sdkHomeDownload.test.ts +124 -0
  267. package/tests/sdkVersionConfig.test.ts +130 -0
  268. package/tests/test-projects-hosts.test.ts +78 -0
  269. package/tests/topsdk.test.ts +53 -0
  270. package/tests/topsdkDownloadSdkConfig.test.ts +81 -0
  271. package/tests/topsdkFeatureModules.test.ts +116 -0
  272. package/tsconfig.json +19 -0
  273. package/vitest.config.ts +9 -0
  274. package/vitest.mcp.config.ts +11 -0
  275. package/bundled/android/sample.txt +0 -1
  276. package/docs/ANDROID.md +0 -133
  277. package/docs/CURSOR-MCP-SETUP.md +0 -72
  278. package/docs/MCP-SKILL.md +0 -63
  279. package/fixtures/api-samples/getChannelConfig-meetgames.sample.json +0 -123
  280. package/fixtures/meetsdk-remote-config.download-shape.json +0 -20
  281. package/fixtures/meetsdk-remote-config.mock.json +0 -69
  282. package/fixtures/recipes/android-default.fixture.yaml +0 -15
  283. package/fixtures/recipes/android-integration.fixture.json +0 -29
  284. package/fixtures/topsdk-config-reference.json +0 -39
  285. /package/docs/{api → archive/api}/getSDKConfig.md +0 -0
@@ -0,0 +1,116 @@
1
+ # SDK 接入说明
2
+
3
+ 本文档说明 `meet-sdk-tool` 当前支持的 Android / iOS 原生工程接入流程。历史迁移资料已归档到 [`archive/`](./archive/)。
4
+
5
+ ## 支持范围
6
+
7
+ | 平台 | 支持情况 | 说明 |
8
+ |---|---|---|
9
+ | Android 原生工程 | 支持 | Groovy `build.gradle` / `settings.gradle`;不支持 Kotlin DSL `.kts` 自动改写 |
10
+ | iOS 原生工程 | 支持 | `.xcodeproj`;支持传工程目录或 `.xcodeproj` 目录作为 `--project-root` |
11
+ | Unity / Cocos / LayaNative / Unreal | 不支持 | 当前工具只面向原生 Android / iOS 工程 |
12
+
13
+ ## 配置文件
14
+
15
+ 工具使用两类配置和一个版本接口:
16
+
17
+ | 来源 | 类型 | 作用 |
18
+ |---|---|---|
19
+ | `<project-root>/meetsdk-remote-config.json` | `downloadSDKConfig` 接口拉取后落盘 | 每个游戏/渠道不同的业务参数,例如 `appId`、登录渠道 `clientId/secret/redirect/scheme/name` |
20
+ | `meetsdk-android.json` | 工具内置文件 | Android 固定 SDK 集成配置,例如 SDK 版本、Maven 仓库、依赖坐标、Firebase Gradle plugin |
21
+ | `meetsdk-ios.json` | 工具内置文件 | iOS 固定 SDK 集成配置,例如当前 bundled SDK 版本、发布日期、包类型、插件组合 |
22
+ | `GET https://business-api.meetgames.com/sdk/home/version` | sdk-home 接口 | Android 接入/检查时读取 `data.result.android.ver` 并写入 `meetsdk-android.json`;iOS 下载时读取 `data.result.ios.ver` 并写入 `meetsdk-ios.json` |
23
+
24
+ `meetsdk-remote-config.json` 由 `fetch-config`、`setup`、`doctor` 拉取并原样写入工程根目录。
25
+ `integrate` 读取本地配置并执行接入;Android 接入会额外请求 sdk-home 版本接口获取最新 SDK 版本,并同步写回 `meetsdk-android.json`,不会重新拉取 `meetsdk-remote-config.json`。
26
+
27
+ ## 推荐流程
28
+
29
+ ### 一步接入
30
+
31
+ ```bash
32
+ node dist/entry.js setup \
33
+ --app-id <APP_ID> \
34
+ --app-secret '<APP_SECRET>' \
35
+ --channel-type GOOGLE \
36
+ --project-root /path/to/project \
37
+ --env test \
38
+ --verbose
39
+ ```
40
+
41
+ ### 接入后校验
42
+
43
+ ```bash
44
+ node dist/entry.js doctor \
45
+ --app-id <APP_ID> \
46
+ --app-secret '<APP_SECRET>' \
47
+ --channel-type GOOGLE \
48
+ --project-root /path/to/project \
49
+ --env test \
50
+ --verbose
51
+ ```
52
+
53
+ `doctor` 会先重新拉取远程配置,再根据当前工程类型执行 Android 或 iOS 的详细校验。
54
+
55
+ ## 本地 console 联调
56
+
57
+ 如果本地启动了 gp-sdk console:
58
+
59
+ ```bash
60
+ TOPSDK_API_BASE_URL=http://127.0.0.1:8081/ \
61
+ node dist/entry.js setup \
62
+ --app-id 791251136341225472 \
63
+ --app-secret 'YOUR_APP_SECRET' \
64
+ --channel-type APPLE \
65
+ --project-root ./fixtures/ios-test-project/tooltest \
66
+ --env test \
67
+ --verbose
68
+ ```
69
+
70
+ `TOPSDK_API_BASE_URL` 会覆盖 `--env` 对应的默认域名。
71
+
72
+ ## Android 接入内容
73
+
74
+ Android 接入时会根据 `meetsdk-remote-config.json` 和内置默认配置检查/写入:
75
+
76
+ - Application module 默认自动检测;如果工程存在多个 application module,需要通过 `--app-target <module>` 指定,例如 `:app` 或 `launcher`。
77
+ - sdk-home `version` 接口中的 `data.result.android.ver` / `date`,用于更新 `meetsdk-android.json` 并生成 App Module `build.gradle` 里的 `topsdk_version`。
78
+ - `settings.gradle` 或根 `build.gradle` 中的 Maven 仓库。
79
+ - 根 `build.gradle` 中的 Gradle plugin 声明,例如 Firebase google-services。
80
+ - App Module `build.gradle` 中的 SDK 依赖。
81
+ - App Module `defaultConfig` 中的 `resValue` 参数。
82
+ - `google-services.json` 下载和落盘。
83
+ - 默认 recipe 中声明的其他资源拷贝。
84
+
85
+ `doctor` 会校验仓库、依赖、`resValue`、Firebase 文件等是否已正确接入。
86
+
87
+ ## iOS 接入内容
88
+
89
+ iOS 接入时会根据 bundled iOS SDK 中的 `config.t.json` 执行:
90
+
91
+ - 复制 framework / xcframework / bundle / lib / source 到 `topSDK/`。
92
+ - 启用 Firebase 时,从 `meetsdk-remote-config.json` 中的 `sdkModules.analytics.firebase.firebaseUrl` 下载 `GoogleService-Info.plist` 到和 `Info.plist` 同级的 App target 目录,不要求 bundled SDK 内置该 plist。
93
+ - 修改 `.xcodeproj/project.pbxproj`,加入 framework、资源、系统库、build settings、copy files 等配置。
94
+ - 修改 `Info.plist`,写入 `TOPSDK`、三方 SDK 参数、URL Scheme、Queries Schemes。
95
+ - 启用 Apple Sign In 时创建/更新 entitlements。
96
+ - 注入 Objective-C `AppDelegate` / `SceneDelegate` 回调代码:启动初始化保留在 `AppDelegate`;存在唯一 `SceneDelegate` 时,URL、Universal Link、前后台回调写入 `SceneDelegate`。
97
+
98
+ `doctor` 会校验 SDK 文件、Xcode 引用、`GoogleService-Info.plist`、`Info.plist` 参数、插件参数、URL Scheme 是否按配置写入,以及 Delegate 注入是否完整。
99
+
100
+ `meetsdk-ios.json` 由 `download-ios-sdk` 更新,用于记录当前工具包内 `bundled/ios-sdk` 对应的 SDK 版本信息。iOS 接入的具体文件复制和参数模板仍以 bundled SDK 内的 `sdk/`、`plugins/` 配置为准。
101
+
102
+ ## iOS 插件模板字段
103
+
104
+ iOS bundled SDK 插件中的 `config.t.json` 是接入规则来源:
105
+
106
+ | 字段 | 作用 |
107
+ |---|---|
108
+ | `requireConfigs` | 声明插件必需的远程配置字段,缺失时接入/doctor 失败 |
109
+ | `pluginParams` | 写入 `Info.plist -> TOPSDK -> Plugins -> params` |
110
+ | `infoParams` | 写入 `Info.plist` 顶层字段,供三方 SDK 读取 |
111
+ | `urlScheme` | 写入 `Info.plist -> CFBundleURLTypes -> CFBundleURLSchemes` |
112
+ | `queriesSchemes` | 写入 `Info.plist -> LSApplicationQueriesSchemes` |
113
+ | `frameworks` / `libs` / `sources` | 声明需要复制并加入 Xcode 工程的资源 |
114
+ | `appDelegateCodes` / `sceneDelegateCodes` | 声明要注入 Delegate 的代码片段 |
115
+
116
+ 例如 `"{$C.FACEBOOK.scheme}"` 表示从远程配置 `sdkModules.login.facebook.scheme` 构建出的 `C.FACEBOOK.scheme` 取值。
package/docs/MCP.md ADDED
@@ -0,0 +1,86 @@
1
+ # MCP 使用说明
2
+
3
+ 本文档说明 `meet-sdk-tool` 的 MCP server 及 Cursor 配置方式。
4
+
5
+ ## 构建
6
+
7
+ ```bash
8
+ cd /Users/work/Workspace/Projects/meet-sdk-tool
9
+ npm run build
10
+ ```
11
+
12
+ ## 启动 MCP server
13
+
14
+ ```bash
15
+ npm run mcp:stdio
16
+ ```
17
+
18
+ 或直接:
19
+
20
+ ```bash
21
+ node dist/mcp-entry.js
22
+ ```
23
+
24
+ ## 暴露工具
25
+
26
+ | MCP 工具 | 作用 |
27
+ |---|---|
28
+ | `meetgames_doctor` | 拉取配置并检查 Android / iOS 接入是否正确 |
29
+ | `meetgames_fetch_config` | 调用 `downloadSDKConfig` 并写入 `meetsdk-remote-config.json` |
30
+ | `meetgames_integrate_dry_run` | 只生成接入预览,不写工程文件 |
31
+ | `meetgames_integrate_apply` | 执行接入并写工程文件 |
32
+ | `meetgames_setup` | 先 fetch-config,再 integrate |
33
+
34
+ 所有 integrate 类工具都使用内置 recipe:
35
+
36
+ ```text
37
+ recipes/integrate-default.yaml
38
+ ```
39
+
40
+ 与 CLI 一样,多入口工程可显式指定目标:
41
+
42
+ | 参数 | 适用平台 | 说明 |
43
+ |---|---|---|
44
+ | `appTarget` | Android / iOS | 统一指定要接入/检查的 App 目标;Android 传 application module(如 `:app` / `app`),iOS 传 App target 名 |
45
+
46
+ 传入 `appTarget` 时会校验目标是否存在:Android 校验目标 application module,iOS 校验目标 App target。
47
+
48
+ ## 推荐调用顺序
49
+
50
+ 一次性接入:
51
+
52
+ ```text
53
+ meetgames_setup(dryRun=false)
54
+ meetgames_doctor()
55
+ ```
56
+
57
+ 需要先审查 diff:
58
+
59
+ ```text
60
+ meetgames_fetch_config()
61
+ meetgames_integrate_dry_run()
62
+ meetgames_integrate_apply()
63
+ meetgames_doctor()
64
+ ```
65
+
66
+ ## Cursor 配置
67
+
68
+ 将 `.cursor/mcp.example.json` 中的 server 配置复制到 Cursor MCP 配置中。
69
+
70
+ 推荐本地开发配置:
71
+
72
+ ```json
73
+ {
74
+ "mcpServers": {
75
+ "meetgames-mcp-local-node": {
76
+ "command": "node",
77
+ "args": [
78
+ "/Users/work/Workspace/Projects/meet-sdk-tool/dist/mcp-entry.js"
79
+ ],
80
+ "cwd": "/Users/work/Workspace/Projects/meet-sdk-tool"
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ 如果已经全局安装 npm 包,也可以使用全局 bin 方式;开发阶段建议使用本地 `dist/mcp-entry.js`,避免版本不一致。
package/docs/README.md CHANGED
@@ -1,12 +1,21 @@
1
1
  # meet-sdk-tool 文档索引
2
2
 
3
- | 文档 | 类型 | 说明 |
4
- |------|------|------|
5
- | [需求文档.md](./需求文档.md) | 产品需求(PRD) v1.0 | 目标、四大功能、MG/服务端配套、验收与里程碑 |
6
- | [技术方案调研.md](./技术方案调研.md) | 技术调研 v1.2 | Gradle:现阶段正则,规划 Groovy AST only(不支持 `.kts`) |
7
- | [ANDROID.md](./ANDROID.md) | 使用说明 | Android 集成、CLI 参数、Gradle 行为 |
8
- | [API.md](./API.md) | 接口索引 | `downloadSDKConfig` HTTP 接口 |
9
- | [MCP-SKILL.md](./MCP-SKILL.md) | 运维 / Agent | MCP 工具与推荐调用顺序 |
10
- | [CURSOR-MCP-SETUP.md](./CURSOR-MCP-SETUP.md) | 环境 | Cursor MCP 配置 |
11
-
12
- 实现细节以仓库代码为准;PRD 中标注 **【待补充】** 的条目需产品 / 业务方确认后定稿。
3
+ 当前日常使用只需要优先查看根目录下的文档:
4
+
5
+ | 文档 | 用途 |
6
+ |---|---|
7
+ | [CLI.md](./CLI.md) | `meetgames` 命令、参数、环境变量和退出码 |
8
+ | [INTEGRATION.md](./INTEGRATION.md) | Android / iOS SDK 自动接入流程、doctor 校验内容、发版前测试方式 |
9
+ | [API.md](./API.md) | `downloadSDKConfig` 接口、签名、落盘 JSON 结构 |
10
+ | [MCP.md](./MCP.md) | MCP server、Cursor 配置和 Agent 调用顺序 |
11
+ | [AAB_CONVERTER_CLI_PLAN.md](./AAB_CONVERTER_CLI_PLAN.md) | AAB 转 APK 命令行绿色版工具方案 |
12
+
13
+ 历史资料已归档到 [`archive/`](./archive/):
14
+
15
+ | 目录 / 文件 | 内容 |
16
+ |---|---|
17
+ | [archive/ios-migration.md](./archive/ios-migration.md) | iOS Python 工具迁移到 TypeScript 的完整历史记录 |
18
+ | [archive/api/](./archive/api/) | 旧接口、对照接口和旧版详细接口文档 |
19
+ | [archive/product/](./archive/product/) | PRD、技术调研等过程文档 |
20
+
21
+ 实现细节以代码为准;如果文档和代码不一致,以 `src/cli.ts`、`src/core/doctor.ts`、`src/ios/`、`src/android/` 当前实现为准。
@@ -48,15 +48,17 @@ meetgames fetch-config --app-id 791251136341225472 --app-secret YOUR_APP_SECRET
48
48
  | `channel` | `channel.channel_type` | 枚举名如 `GOOGLE` / `APPLE` |
49
49
  | `devicePlatform` | `channel.device_platform` | 小写,如 `android` / `ios` |
50
50
  | `topsdk.appId` / `topsdk.appSecret` | `app` | |
51
- | `sdkModules.login.*` | `channel_auth`(`enable=true`) | 各登录渠道凭证 |
51
+ | `sdkModules.login.*` | `channel_auth` | key 直接使用 `authType` 小写,如 `guest` / `email` / `google` / `snapchat`;参数使用 `DTOChannelAuth` 字段名 |
52
52
  | `sdkModules.payment.*` | `channel_payment` + 部分 `channel_auth` | IAP 平台 |
53
- | `sdkModules.analytics.*` | `channel_third_data_platform` | AppsFlyer / Firebase / Adjust |
54
- | `sdkModules.analytics.firebase.firebase_file_url` | `channel_third_data_platform.firebase_url` | MG 经 **uploadV2** 上传后多为 OSS **objectKey**;组装 JSON 时经 `AliYunOssUtil.getOssUr` 生成下载链接(与 `downLoadXml` 一致)。若库内为 http(s) URL 则 `getFileUrl` 换签 |
55
- | `sdkModules.analytics.firebase.firebase_file_name` | `channel_third_data_platform.firebase_name` | 上传原始文件名(含后缀);落盘路径由 meet-sdk-tool 按工程 **app module** 检测 |
53
+ | `sdkModules.analytics.*` | `channel_third_data_platform` | AppsFlyer / Firebase / Adjust;参数使用 `ChannelThirdDataPlatform` 字段名 |
54
+ | `sdkModules.analytics.firebase.firebaseUrl` | `channel_third_data_platform.firebase_url` | MG 经 **uploadV2** 上传后多为 OSS **objectKey**;组装 JSON 时经 `AliYunOssUtil.getOssUr` 生成下载链接(与 `downLoadXml` 一致)。若库内为 http(s) URL 则 `getFileUrl` 换签 |
55
+ | `sdkModules.analytics.firebase.firebaseName` | `channel_third_data_platform.firebase_name` | 上传原始文件名(含后缀);落盘路径由 meet-sdk-tool 按检测到或通过 `--app-target` 指定的工程 **app module** 决定 |
56
56
 
57
57
  详见 gp-sdk `SdkConfigDownloadServiceImpl`;**不包含** `topsdk.version`(integrate 时用 `meetsdk-android.json` 兜底)。
58
58
 
59
- **子模块写入**:只要库表里有对应配置参数即写入子键,value 为对象(或 `{}`);无配置**不写该键**(不出现 `false`)。**不**再根据 `channel_auth.enable` / `channel_payment.enable` 过滤。`analytics.facebookdata` 等独立开关字段预留,待 meetgames-business 配置后再接。
59
+ **子模块写入**:只要库表里有对应配置参数即写入子键,value 为对象(或 `{}`);无配置**不写该键**(不出现 `false`)。插件对象内只写有值字段,不写空字符串占位。`channel_auth` 输出字段为 `clientId` / `secret` / `redirect` / `scheme` / `name`;`channel_third_data_platform` 输出字段保持 `devKey` / `appleAppId` / `firebaseUrl` / `firebaseName` / `appCode` 等实体字段名。**不**再根据 `channel_auth.enable` / `channel_payment.enable` 过滤。`analytics.facebookdata` 等独立开关字段预留,待 meetgames-business 配置后再接。
60
+
61
+ `meet-sdk-tool` 按上述 DTO/entity 原字段名读取配置;旧字段名不再作为兼容输入。
60
62
 
61
63
  **meet-sdk-tool integrate**:仅当 JSON 里写了对应子键时接入(如 `login.kakao`、`analytics.appsflyer`);有键则 value 必为 `{…}`。
62
64
 
@@ -83,7 +85,7 @@ JSON Schema:[`schema/meetsdk-remote-config.schema.json`](../../schema/meetsdk-
83
85
  ### 响应体样例
84
86
 
85
87
  仓库内测试用 mock:[`fixtures/meetsdk-remote-config.mock.json`](../../fixtures/meetsdk-remote-config.mock.json)
86
- Vitest 样例工程:[`test-projects/android-latest-project/meetsdk-remote-config.json`](../../test-projects/android-latest-project/meetsdk-remote-config.json)(联调后可能被覆盖)
88
+ Vitest 样例工程:[`fixtures/android-test-project/android-latest-project/meetsdk-remote-config.json`](../../../fixtures/android-test-project/android-latest-project/meetsdk-remote-config.json)(联调后可能被覆盖)
87
89
 
88
90
  ## 与 getChannelConfig 的区别
89
91
 
@@ -90,7 +90,7 @@ GET https://test-business-api.meetgames.com/customer/topsdk/console/meetgames/ch
90
90
  | `appId` | `topsdk.appId`(secret 在 `app` 表,此接口 result 未必带出) |
91
91
  | `authConfigs[]`(`enable`) | `sdkModules.login.*` |
92
92
  | `thirdDataPlatform.devKey` | `sdkModules.analytics.appsflyer` 等 |
93
- | `thirdDataPlatform.firebaseUrl` | Firebase / `firebase_file_url` 类字段 |
93
+ | `thirdDataPlatform.firebaseUrl` | Firebase / `firebaseUrl` 字段 |
94
94
  | `parameterConfig` | 支付 / Google Play 服务账号等,与 `channel_payment`、parameter 表相关 |
95
95
 
96
96
  完整 Gradle 集成仍依赖工具侧 [`meetsdk-android.json`](../../meetsdk-android.json) 合并版本与依赖。