@cometchat/skills 4.4.2 → 5.0.1

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 (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,1003 +1,45 @@
1
1
  ---
2
2
  name: cometchat-ios-troubleshooting
3
- description: "Diagnose and fix common CometChat iOS integration issues build errors, runtime errors, and debugging techniques."
3
+ description: "Diagnose a broken CometChat iOS (Swift) integration — a screen that never populates, credentials read as the literal $(...), login that silently fails, empty lists, no messages, or a version/SDK mismatch. Triggers: 'cometchat ios not working', 'chat screen blank swift', 'cometchat login not working ios', 'credentials not read swift', 'conversations empty ios', 'cometchat swift errors'."
4
4
  license: "MIT"
5
- compatibility: "CometChatUIKitSwift ^5; iOS 13+"
5
+ compatibility: "CometChatUIKitSwift 5.1.22 + CometChatSDK 4.1.7; Xcode 16+; iOS 15.1+; SPM only"
6
6
  metadata:
7
7
  author: "CometChat"
8
- version: "3.0.0"
9
- tags: "chat cometchat ios troubleshooting debugging errors fixes"
8
+ version: "1.0.0"
9
+ tags: "cometchat ios swift troubleshooting debug diagnostics blank-screen spm"
10
10
  ---
11
11
 
12
- > **Ground truth:** `CometChatUIKitSwift ~> 5` (+ `CometChatCallsSDK ~> 5`) Pods/SPM `.swiftinterface` + `ui-kit/ios`. **Official docs:** https://www.cometchat.com/docs/ui-kit/ios/overview · **Docs MCP:** `claude mcp add --transport http cometchat-docs https://www.cometchat.com/docs/mcp` (or fetch the URL directly without MCP). Verify symbols against the installed package/source before relying on them.
12
+ > **Ground truth:** `CometChatUIKitSwift` 5.1.22 + `CometChatSDK` 4.1.7 (symbols verified vs `catalogs/ios-v5.json`); signatures FETCHED via `cometchat-ios-core/references/docs-map.md`; the invariants below (init→login order, credentials flow, SPM-only) are `RULES.md` + `cometchat-ios-core`. This diagnostics catalog is cross-checked against the live `{DOCS_BASE}/ui-kit/ios/troubleshooting.md` page (base + paths in `cometchat-ios-core/references/docs-map.md`), and adds the host-side/runtime symptoms it doesn't cover.
13
13
 
14
- ## Purpose
14
+ ## Companion skills (read first)
15
+ - `cometchat-ios-core` — the correct init→login→render order, the `Secrets.xcconfig`→Info.plist→`Bundle.main` credential flow, and the SwiftUI launch hook the fixes below restore.
15
16
 
16
- This skill helps diagnose and fix common issues when integrating CometChat iOS UI Kit. It covers build errors, runtime errors, and debugging techniques.
17
+ ## Use this skill when
18
+ An iOS CometChat integration compiles but misbehaves at runtime: a screen that never fills, login that does nothing, or empty data.
17
19
 
18
- ---
19
-
20
- ## 1. Build Errors
21
-
22
- ### "No such module 'CometChatUIKitSwift'"
23
-
24
- **Cause:** SDK not installed or not linked properly.
25
-
26
- **Solutions:**
27
-
28
- **CocoaPods:**
29
- ```bash
30
- # Clean and reinstall
31
- cd /path/to/your/project
32
- rm -rf Pods Podfile.lock
33
- pod install --repo-update
34
-
35
- # Open workspace (not project!)
36
- open YourApp.xcworkspace
37
- ```
38
-
39
- **Swift Package Manager:**
40
- 1. In Xcode, go to File → Packages → Reset Package Caches
41
- 2. File → Packages → Resolve Package Versions
42
- 3. Clean build folder: Cmd + Shift + K
43
- 4. Build again
44
-
45
- **Check Podfile:**
46
- ```ruby
47
- platform :ios, '13.0'
48
- use_frameworks!
49
-
50
- target 'YourApp' do
51
- pod 'CometChatUIKitSwift', '~> 5.1'
52
- end
53
- ```
54
-
55
- ---
56
-
57
- ### "No such module 'CometChatSDK'"
58
-
59
- **Cause:** Core SDK not installed alongside UI Kit.
60
-
61
- **Solution:** The UI Kit should include the SDK automatically. If not:
62
-
63
- ```ruby
64
- # Podfile
65
- pod 'CometChatUIKitSwift', '~> 5.1'
66
- pod 'CometChatSDK', '~> 4.0' # Add explicitly if needed
67
- ```
68
-
69
- ---
70
-
71
- ### "No such module 'CometChatCallsSDK'"
72
-
73
- **Cause:** Calls SDK not installed but code references it.
74
-
75
- **Solutions:**
76
-
77
- 1. **If you need calls:**
78
- ```ruby
79
- # Podfile
80
- pod 'CometChatCallsSDK', '~> 5.0'
81
- ```
82
-
83
- 2. **If you don't need calls:**
84
- Wrap call-related code in conditional compilation:
85
- ```swift
86
- #if canImport(CometChatCallsSDK)
87
- import CometChatCallsSDK
88
- // Call-related code here
89
- #endif
90
- ```
91
-
92
- ---
93
-
94
- ### "Value of type 'CometChatException' has no member 'localizedDescription'"
95
-
96
- **Cause:** Using wrong property for error description.
97
-
98
- **Solution:** Use `errorDescription` instead of `localizedDescription`:
99
-
100
- ```swift
101
- case .onError(let error):
102
- print(error.errorDescription)
103
- print(error.errorCode)
104
- ```
105
-
106
- `CometChatException` has:
107
- - `errorDescription` — human-readable error message
108
- - `errorCode` — error code string
109
- - `details` — optional dictionary with additional info
110
-
111
- ---
112
-
113
- ### "'CometChatException' is not convertible to 'any Error'"
114
-
115
- **Cause:** Trying to use `CometChatException` with Swift's `Result<T, Error>` type.
116
-
117
- **Solution:** `CometChatException` does NOT conform to Swift's `Error` protocol. Don't use `Result<T, Error>` with CometChat callbacks. Instead, use direct callbacks:
118
-
119
- ```swift
120
- // tier2-expect-error — this block intentionally demonstrates the compile error below
121
- // ❌ WRONG - Don't use Result<T, Error>
122
- func login(completion: @escaping (Result<User, Error>) -> Void) {
123
- CometChatUIKit.login(uid: uid) { result in
124
- switch result {
125
- case .success(let user):
126
- completion(.success(user))
127
- case .onError(let error):
128
- completion(.failure(error)) // ERROR: CometChatException is not Error
129
- }
130
- }
131
- }
132
-
133
- // ✅ CORRECT - Use CometChatException directly
134
- func login(completion: @escaping (User?, CometChatException?) -> Void) {
135
- CometChatUIKit.login(uid: uid) { result in
136
- switch result {
137
- case .success(let user):
138
- completion(user, nil)
139
- case .onError(let error):
140
- completion(nil, error)
141
- @unknown default:
142
- completion(nil, nil)
143
- }
144
- }
145
- }
146
- ```
147
-
148
- ---
149
-
150
- ### "Cannot find 'CometChatConversationsWithMessages' in scope" or "Cannot find 'CometChatMessages' in scope"
151
-
152
- **Cause:** Neither class exists in the kit. They look like "pre-built composite UIViewControllers" but are NOT exported from `CometChatUIKitSwift`. Older docs and AI-generated guides sometimes claim they exist.
153
-
154
- **Solution:** Compose your own `MessagesVC` from the real building blocks (`CometChatMessageHeader` + `CometChatMessageList` + `CometChatMessageComposer`). The pattern is the same one the kit's sample app uses (`SampleApp/View Controllers/CometChat Components/MessagesVC.swift`).
155
-
156
- ```swift
157
- import CometChatUIKitSwift
158
- import CometChatSDK
159
-
160
- let conversations = CometChatConversations()
161
- let navController = UINavigationController(rootViewController: conversations)
162
-
163
- conversations.set(onItemClick: { [weak navController] conversation, _ in
164
- let messagesVC = MessagesVC() // your own VC composing CometChatMessageHeader + List + Composer
165
- if let group = conversation.conversationWith as? Group {
166
- messagesVC.set(group: group)
167
- } else if let user = conversation.conversationWith as? User {
168
- messagesVC.set(user: user)
169
- }
170
- navController?.pushViewController(messagesVC, animated: true)
171
- })
172
- ```
173
-
174
- See `cometchat-ios-components` § 13 ("Custom MessagesVC Implementation") for the full `MessagesVC` source.
175
-
176
- ---
177
-
178
- ### "Cannot find 'CometChatCallLogs' in scope"
179
-
180
- **Cause:** `CometChatCallLogs` requires `CometChatCallsSDK` which is not installed.
181
-
182
- **Solutions:**
183
-
184
- 1. **Install the Calls SDK:**
185
- ```ruby
186
- # Podfile
187
- pod 'CometChatCallsSDK', '~> 5.0'
188
- ```
189
-
190
- 2. **Or wrap in conditional compilation:**
191
- ```swift
192
- #if canImport(CometChatCallsSDK)
193
- let callLogs = CometChatCallLogs()
194
- #else
195
- // Show placeholder or hide calls tab
196
- #endif
197
- ```
198
-
199
- ---
200
-
201
- ### "Duplicate symbols" or "Multiple commands produce"
202
-
203
- **Cause:** Conflicting dependencies or duplicate frameworks.
204
-
205
- **Solutions:**
206
-
207
- 1. **Clean derived data:**
208
- ```bash
209
- rm -rf ~/Library/Developer/Xcode/DerivedData
210
- ```
211
-
212
- 2. **Check for duplicate pods:**
213
- ```bash
214
- pod deintegrate
215
- pod install
216
- ```
217
-
218
- 3. **Check Build Phases:**
219
- - Go to Target → Build Phases → Link Binary With Libraries
220
- - Remove any duplicate frameworks
221
-
222
- ---
223
-
224
- ### "The iOS deployment target is set to X.X, but the range of supported deployment target versions is Y.Y to Z.Z"
225
-
226
- **Cause:** Minimum iOS version mismatch.
227
-
228
- **Solution:**
229
-
230
- 1. Update your project's deployment target to iOS 13.0 or higher
231
- 2. Update Podfile:
232
- ```ruby
233
- platform :ios, '13.0'
234
- ```
235
-
236
- 3. Run:
237
- ```bash
238
- pod install
239
- ```
240
-
241
- ---
242
-
243
- ### "Sandbox: rsync.samba denied"
244
-
245
- **Cause:** Xcode sandbox permission issue (common in Xcode 15+).
246
-
247
- **Solution:**
248
-
249
- 1. Disable User Script Sandboxing in Build Settings:
250
- - Select your app target
251
- - Go to Build Settings
252
- - Search for "User Script Sandboxing"
253
- - Set **ENABLE_USER_SCRIPT_SANDBOXING** to **No**
254
-
255
- 2. Or add to your `Podfile`:
256
- ```ruby
257
- post_install do |installer|
258
- installer.pods_project.targets.each do |target|
259
- target.build_configurations.each do |config|
260
- config.build_settings['ENABLE_USER_SCRIPT_SANDBOXING'] = 'NO'
261
- end
262
- end
263
- end
264
- ```
265
-
266
- 3. Then run:
267
- ```bash
268
- pod install
269
- ```
270
-
271
- 4. Clean and rebuild:
272
- ```bash
273
- rm -rf ~/Library/Developer/Xcode/DerivedData
274
- ```
275
-
276
- ---
277
-
278
- ### "Framework not found" during archive
279
-
280
- **Cause:** Framework search paths issue.
281
-
282
- **Solution:**
283
-
284
- 1. Go to Target → Build Settings
285
- 2. Search for "Framework Search Paths"
286
- 3. Add: `$(inherited)` and `$(PROJECT_DIR)/Pods`
287
- 4. Set "Build Active Architecture Only" to No for Release
288
-
289
- ---
290
-
291
- ## 2. Runtime Errors
292
-
293
- ### "CometChat is not initialized"
294
-
295
- **Cause:** Trying to use CometChat before initialization completes.
296
-
297
- **Solution:**
298
-
299
- ```swift
300
- // ❌ Wrong - using before init completes
301
- CometChatUIKit(uiKitSettings: settings) { _ in }
302
- let conversations = CometChatConversations() // Too early!
303
-
304
- // ✅ Correct - wait for completion
305
- CometChatUIKit(uiKitSettings: settings) { result in
306
- switch result {
307
- case .success:
308
- DispatchQueue.main.async {
309
- let conversations = CometChatConversations()
310
- // Now safe to use
311
- }
312
- case .failure(let error):
313
- print("Init failed: \(error)")
314
- }
315
- }
316
- ```
317
-
318
- ---
319
-
320
- ### "Invalid App ID" or "App not found"
321
-
322
- **Cause:** Wrong App ID or region.
323
-
324
- **Solutions:**
325
-
326
- 1. Verify App ID in CometChat Dashboard
327
- 2. Check region matches (us, eu, or in)
328
- 3. Ensure no extra spaces in credentials
329
-
330
- ```swift
331
- let uiKitSettings = UIKitSettings()
332
- .set(appID: "YOUR_APP_ID") // No spaces!
333
- .set(region: "us") // Lowercase
334
- .build()
335
- ```
336
-
337
- ---
338
-
339
- ### "Invalid Auth Key"
340
-
341
- **Cause:** Wrong or expired Auth Key.
342
-
343
- **Solutions:**
344
-
345
- 1. Get fresh Auth Key from Dashboard → API & Auth Keys
346
- 2. Use the correct key type (Auth Key, not REST API Key)
347
- 3. Check for copy/paste errors
348
-
349
- ---
350
-
351
- ### "User not found" or "UID not found"
352
-
353
- **Cause:** Trying to login with a UID that doesn't exist.
354
-
355
- **Solutions:**
356
-
357
- 1. **Use pre-created test users:**
358
- - `cometchat-uid-1` through `cometchat-uid-5`
359
-
360
- 2. **Create user first:**
361
- ```swift
362
- let user = User(uid: "new-user-123", name: "John Doe")
363
- CometChatUIKit.create(user: user) { result in
364
- switch result {
365
- case .success(let user):
366
- // Now login
367
- CometChatUIKit.login(uid: user.uid ?? "") { _ in }
368
- case .onError(let error):
369
- print("Create failed: \(error)")
370
- }
371
- }
372
- ```
373
-
374
- ---
375
-
376
- ### "Already logged in"
377
-
378
- **Cause:** Calling login when user is already logged in.
379
-
380
- **Solution:**
381
-
382
- ```swift
383
- // Check for existing session first
384
- if let currentUser = CometChatUIKit.getLoggedInUser() {
385
- print("Already logged in as: \(currentUser.name ?? "")")
386
- // Proceed to chat UI
387
- } else {
388
- // Login
389
- CometChatUIKit.login(uid: "user-123") { _ in }
390
- }
391
- ```
392
-
393
- ---
394
-
395
- ### Blank/Empty Conversation List
396
-
397
- **Cause:** No conversations exist for the logged-in user.
398
-
399
- **Solutions:**
400
-
401
- 1. **Send a test message:**
402
- - Go to CometChat Dashboard → Users
403
- - Select another user
404
- - Send a message to your logged-in user
405
-
406
- 2. **Check user is logged in:**
407
- ```swift
408
- if let user = CometChatUIKit.getLoggedInUser() {
409
- print("Logged in as: \(user.uid ?? "")")
410
- } else {
411
- print("Not logged in!")
412
- }
413
- ```
414
-
415
- 3. **Check for errors:**
416
- ```swift
417
- let conversations = CometChatConversations()
418
- conversations.set(onError: { error in
419
- print("Error loading conversations: \(error.errorDescription ?? "")")
420
- })
421
- conversations.set(onEmpty: {
422
- print("No conversations found")
423
- })
424
- ```
425
-
426
- ---
427
-
428
- ### Messages Not Sending
429
-
430
- **Cause:** Various issues with message sending.
431
-
432
- **Solutions:**
433
-
434
- 1. **Check user/group is set:**
435
- ```swift
436
- let composer = CometChatMessageComposer()
437
- composer.set(user: user) // Must be set!
438
- ```
439
-
440
- 2. **Check for errors:**
441
- ```swift
442
- composer.set(onError: { error in
443
- print("Composer error: \((error as? CometChatException)?.errorDescription ?? "")")
444
- })
445
- ```
446
-
447
- 3. **Verify network connection:**
448
- ```swift
449
- import Network
450
-
451
- let monitor = NWPathMonitor()
452
- monitor.pathUpdateHandler = { path in
453
- if path.status == .satisfied {
454
- print("Connected")
455
- } else {
456
- print("No connection")
457
- }
458
- }
459
- monitor.start(queue: DispatchQueue.global())
460
- ```
461
-
462
- ---
463
-
464
- ### Push Notifications Not Working
465
-
466
- **Cause:** Multiple possible issues.
467
-
468
- **Checklist:**
469
-
470
- 1. **Physical device?** Push doesn't work on simulator
471
-
472
- 2. **Permissions granted?**
473
- ```swift
474
- UNUserNotificationCenter.current().getNotificationSettings { settings in
475
- print("Authorization status: \(settings.authorizationStatus.rawValue)")
476
- }
477
- ```
478
-
479
- 3. **Token registered?**
480
- ```swift
481
- func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
482
- let token = deviceToken.map { String(format: "%02.2hhx", $0) }.joined()
483
- print("APNs Token: \(token)")
484
-
485
- // Register with CometChat
486
- CometChat.registerTokenForPushNotification(token: token, settings: ["voip": false]) { success in
487
- print("Token registered: \(success)")
488
- } onError: { error in
489
- print("Token registration failed: \(error?.errorDescription ?? "")")
490
- }
491
- }
492
- ```
493
-
494
- 4. **Certificate uploaded?** Check Dashboard → Notifications → Push Notifications
495
-
496
- 5. **Correct environment?** Development vs Production certificate must match
497
-
498
- ---
499
-
500
- ### Calls Not Working
501
-
502
- **Cause:** Missing SDK or permissions.
503
-
504
- **Checklist:**
505
-
506
- 1. **CometChatCallsSDK installed?**
507
- ```ruby
508
- pod 'CometChatCallsSDK', '~> 5.0'
509
- ```
510
-
511
- 2. **Permissions in Info.plist?**
512
- ```xml
513
- <key>NSCameraUsageDescription</key>
514
- <string>Camera access for video calls</string>
515
- <key>NSMicrophoneUsageDescription</key>
516
- <string>Microphone access for calls</string>
517
- ```
518
-
519
- 3. **Background modes enabled?**
520
- - Audio, AirPlay, and Picture in Picture
521
- - Voice over IP
522
-
523
- 4. **Testing on real device?** Calls don't work on simulator
524
-
525
- 5. **Did you call `CometChatCalls.login(...)`?** ⚠️ **On iOS there is NO `CometChatCalls.login`** — the iOS `CometChatCallsSDK` has no `login`/`joinSession`/`SessionSettingsBuilder`. The authority is the vendored `CometChatCallsSDK.swiftinterface` (`generateToken` / `startSession` / `CallSettingsBuilder` / `CallsEventsDelegate`). The `calls-sdk-ios` repo's own `skills/` describe a *different* API and will mislead you — don't follow them. Default calling works through the UI Kit (`CometChatUIKit` calling-enabled) without a separate calls login; for custom calling, use `generateToken` → `startSession`.
526
-
527
- ### Background push for calls not arriving (Privacy manifest / APNs vs FCM)
528
-
529
- **Cause:** Missing privacy manifest, or an APNs-vs-FCM provider mismatch.
530
-
531
- **Fix:**
532
- - Add a **`PrivacyInfo.xcprivacy`** privacy manifest to the app target (required by App Store review; its absence can also break some push/SDK behaviors).
533
- - Match the **provider** to your token type: if you registered an **APNs** device/VoIP token, the dashboard provider must be **APNs** (`.p8` + Team ID + Key ID, dev-vs-prod environment matching the build); if you route iOS through **FCM**, register with the FCM provider and the `FCM_IOS` platform. A token registered against the wrong provider silently never delivers. See `cometchat-ios-push`.
534
-
535
- ---
536
-
537
- ### Memory Warnings / Crashes
538
-
539
- **Cause:** Memory leaks or retain cycles.
540
-
541
- **Solutions:**
542
-
543
- 1. **Use weak references in closures:**
544
- ```swift
545
- conversations.set(onItemClick: { [weak self] conversation, _ in
546
- self?.openMessages(for: conversation)
547
- })
548
- ```
549
-
550
- 2. **Remove listeners when done:**
551
- ```swift
552
- override func viewWillDisappear(_ animated: Bool) {
553
- super.viewWillDisappear(animated)
554
- CometChatMessageEvents.removeListener("my-listener")
555
- }
556
- ```
557
-
558
- 3. **Profile with Instruments:**
559
- - Product → Profile → Leaks
560
- - Look for CometChat-related leaks
561
-
562
- ---
563
-
564
- ### UI Not Updating
565
-
566
- **Cause:** Updates happening on background thread.
567
-
568
- **Solution:**
569
-
570
- ```swift
571
- // Always update UI on main thread
572
- CometChatUIKit.login(uid: "user-123") { result in
573
- DispatchQueue.main.async {
574
- switch result {
575
- case .success:
576
- self.showConversations()
577
- case .onError(let error):
578
- self.showError(error)
579
- }
580
- }
581
- }
582
- ```
583
-
584
- ---
585
-
586
- ## 3. Debugging Techniques
587
-
588
- ### Inspect SDK errors
589
-
590
- The CometChat iOS SDK has **no public log-level API** (there is no
591
- `CometChat.setLogLevel` / `AppSettingsBuilder` logging toggle). Diagnose by
592
- reading the `CometChatException` handed to each call's `onError` closure:
593
-
594
- ```swift
595
- CometChat.init(appId: appID, appSettings: settings, onSuccess: { _ in
596
- print("CometChat init OK")
597
- }, onError: { error in
598
- // CometChatException → code + message (init's onError is non-optional)
599
- print("init failed:", error.errorCode, error.errorDescription)
600
- })
601
- ```
602
-
603
- ### Check Connection Status
604
-
605
- ```swift
606
- CometChat.addConnectionListener("debug-listener", self)
607
-
608
- extension YourClass: CometChatConnectionDelegate {
609
- func connected() {
610
- print("✅ CometChat connected")
611
- }
612
-
613
- func connecting() {
614
- print("🔄 CometChat connecting...")
615
- }
616
-
617
- func disconnected() {
618
- print("❌ CometChat disconnected")
619
- }
620
- }
621
- ```
622
-
623
- ### Monitor Message Events
624
-
625
- ```swift
626
- class DebugMessageListener: CometChatMessageDelegate {
627
-
628
- func onTextMessageReceived(textMessage: TextMessage) {
629
- print("📩 Text message received: \(textMessage.text ?? "")")
630
- }
631
-
632
- func onMediaMessageReceived(mediaMessage: MediaMessage) {
633
- print("📎 Media message received: \(mediaMessage.messageType)")
634
- }
635
-
636
- func onMessageDeleted(message: BaseMessage) {
637
- print("🗑 Message deleted: \(message.id)")
638
- }
639
- }
640
-
641
- CometChat.addMessageListener("debug-messages", DebugMessageListener())
642
- ```
643
-
644
- ### Network Debugging
645
-
646
- Use Charles Proxy or Proxyman to inspect CometChat API calls:
647
-
648
- 1. Install Charles Proxy
649
- 2. Enable SSL Proxying for `*.cometchat.io`
650
- 3. Install Charles certificate on device/simulator
651
- 4. Monitor requests and responses
652
-
653
- ### Xcode Debugging
654
-
655
- **Breakpoints:**
656
- - Set breakpoints in CometChat callbacks
657
- - Use symbolic breakpoints for CometChat methods
658
-
659
- **Console:**
660
- ```swift
661
- // Print current state
662
- print("User: \(CometChatUIKit.getLoggedInUser()?.uid ?? "none")")
663
- print("Logged in: \(CometChatUIKit.getLoggedInUser() != nil)")
664
- ```
665
-
666
- ---
667
-
668
- ## 4. Common Error Codes
669
-
670
- | Code | Description | Solution |
671
- |---|---|---|
672
- | `ERR_UID_NOT_FOUND` | User doesn't exist | Create user first |
673
- | `ERR_ALREADY_LOGGED_IN` | User already logged in | Check session before login |
674
- | `ERR_NOT_LOGGED_IN` | No active session | Login first |
675
- | `AUTH_ERR_AUTH_TOKEN_NOT_FOUND` | Invalid auth token | Generate new token |
676
- | `ERR_INVALID_APP_ID` | Wrong App ID | Verify in dashboard |
677
- | `ERR_INVALID_API_KEY` | Wrong API/Auth Key | Get correct key from dashboard |
678
- | `ERR_BLOCKED_BY_EXTENSION` | Blocked by extension | Check extension settings |
679
- | `ERR_RATE_LIMIT_EXCEEDED` | Too many requests | Implement rate limiting |
680
- | `ERR_WEBSOCKET_CONNECTION_FAILED` | Connection failed | Check network, retry |
681
-
682
- ---
683
-
684
- ## 5. Performance Issues
685
-
686
- ### Slow Conversation Loading
687
-
688
- **Solutions:**
689
-
690
- 1. **Limit initial fetch:**
691
- ```swift
692
- let conversations = CometChatConversations()
693
- conversations.set(conversationsRequestBuilder: ConversationRequest.ConversationRequestBuilder()
694
- .set(limit: 20) // Reduce initial load
695
- )
696
- ```
697
-
698
- 2. **Enable pagination:**
699
- Conversations automatically paginate. Ensure you're not fetching all at once.
700
-
701
- ### Slow Message Loading
702
-
703
- **Solutions:**
704
-
705
- 1. **Limit message fetch:**
706
- ```swift
707
- let messageList = CometChatMessageList()
708
- messageList.set(messagesRequestBuilder: MessagesRequest.MessageRequestBuilder()
709
- .set(uid: user.uid ?? "")
710
- .set(limit: 30) // Reduce initial load
711
- )
712
- ```
713
-
714
- 2. **Hide unnecessary features:**
715
- ```swift
716
- messageList.hideReceipts = true // If not needed
717
- messageList.hideAvatar = true // If not needed
718
- ```
719
-
720
- ### High Memory Usage
721
-
722
- **Solutions:**
723
-
724
- 1. **Release unused view controllers:**
725
- ```swift
726
- // Don't keep strong references to dismissed VCs
727
- ```
728
-
729
- 2. **Clear image cache if needed:**
730
- ```swift
731
- // CometChat handles image caching internally
732
- // But you can clear URLCache if needed
733
- URLCache.shared.removeAllCachedResponses()
734
- ```
735
-
736
- ---
737
-
738
- ## 6. SwiftUI-Specific Issues
739
-
740
- ### View Not Updating
741
-
742
- **Cause:** SwiftUI not detecting state changes.
743
-
744
- **Solution:**
745
-
746
- ```swift
747
- struct ChatView: View {
748
- @State private var selectedConversation: Conversation?
749
-
750
- var body: some View {
751
- ConversationsWrapper(selectedConversation: $selectedConversation)
752
- .onChange(of: selectedConversation) { newValue in
753
- // Handle selection
754
- }
755
- }
756
- }
757
-
758
- struct ConversationsWrapper: UIViewControllerRepresentable {
759
- @Binding var selectedConversation: Conversation?
760
-
761
- func makeUIViewController(context: Context) -> CometChatConversations {
762
- let vc = CometChatConversations()
763
- vc.set(onItemClick: { conversation, _ in
764
- selectedConversation = conversation
765
- })
766
- return vc
767
- }
768
-
769
- func updateUIViewController(_ uiViewController: CometChatConversations, context: Context) {
770
- // Handle updates if needed
771
- }
772
- }
773
- ```
774
-
775
- ### Navigation Issues
776
-
777
- **Cause:** Mixing UIKit navigation with SwiftUI.
778
-
779
- **Solution:**
780
-
781
- ```swift
782
- struct ChatNavigationView: View {
783
- @State private var path = NavigationPath()
784
-
785
- var body: some View {
786
- NavigationStack(path: $path) {
787
- ConversationsView(onSelect: { conversation in
788
- path.append(conversation)
789
- })
790
- .navigationDestination(for: Conversation.self) { conversation in
791
- MessagesView(conversation: conversation)
792
- }
793
- }
794
- }
795
- }
796
- ```
797
-
798
- ---
799
-
800
- ## 7. Quick Fixes Checklist
801
-
802
- When something isn't working:
803
-
804
- 1. [ ] **Clean build:** Cmd + Shift + K
805
- 2. [ ] **Delete derived data:** `rm -rf ~/Library/Developer/Xcode/DerivedData`
806
- 3. [ ] **Reinstall pods:** `pod deintegrate && pod install`
807
- 4. [ ] **Check credentials:** App ID, Auth Key, Region
808
- 5. [ ] **Check user exists:** Use test users or create first
809
- 6. [ ] **Check network:** Device has internet connection
810
- 7. [ ] **Check permissions:** Camera, microphone, notifications
811
- 8. [ ] **Check main thread:** UI updates on main thread
812
- 9. [ ] **Check completion handlers:** Wait for async operations
813
- 10. [ ] **Inspect errors:** read the `CometChatException` in each call's `onError` (`errorCode` + `errorDescription`) — the SDK has no log-level toggle
814
-
815
- ---
816
-
817
- ## 8. Theming Errors
818
-
819
- ### "Value of type 'MessageBubbleStyle' has no member 'outgoingBackgroundColor'"
820
-
821
- **Cause:** Incorrect property access for message bubble styles.
822
-
823
- **Solution:** Message bubble styles use separate `.incoming` and `.outgoing` style objects, not combined properties:
824
-
825
- ```swift
826
- // ✅ CORRECT - Use separate incoming/outgoing styles
827
- CometChatMessageBubble.style.outgoing.backgroundColor = CometChatTheme.primaryColor
828
- CometChatMessageBubble.style.incoming.backgroundColor = CometChatTheme.neutralColor300
829
-
830
- // For text colors within bubbles
831
- CometChatMessageBubble.style.outgoing.textBubbleStyle.textColor = .white
832
- CometChatMessageBubble.style.incoming.textBubbleStyle.textColor = CometChatTheme.textColorPrimary
833
- ```
834
-
835
- ---
836
-
837
- ### "Value of type 'ConversationsStyle' has no member 'titleColor'"
838
-
839
- **Cause:** Using incorrect property names for component styles.
840
-
841
- **Solution:** Check the actual property names in the style struct:
842
-
843
- ```swift
844
- // ✅ CORRECT ConversationsStyle properties
845
- CometChatConversations.style.listItemTitleTextColor = CometChatTheme.textColorPrimary
846
- CometChatConversations.style.listItemTitleFont = CometChatTypography.Heading4.medium
847
- CometChatConversations.style.listItemSubTitleTextColor = CometChatTheme.textColorSecondary
848
- CometChatConversations.style.listItemSubTitleFont = CometChatTypography.Body.regular
849
- ```
850
-
851
- ---
852
-
853
- ### "Value of type 'MessageComposerStyle' has no member 'inputBackgroundColor'"
854
-
855
- **Cause:** Using incorrect property names for composer style.
856
-
857
- **Solution:** Use the correct property names:
858
-
859
- ```swift
860
- // ✅ CORRECT MessageComposerStyle properties
861
- CometChatMessageComposer.style.composeBoxBackgroundColor = CometChatTheme.backgroundColor01
862
- CometChatMessageComposer.style.composeBoxBorderColor = CometChatTheme.borderColorDefault
863
- CometChatMessageComposer.style.placeHolderTextColor = CometChatTheme.textColorTertiary
864
- CometChatMessageComposer.style.textFiledColor = CometChatTheme.textColorPrimary
865
- CometChatMessageComposer.style.activeSendButtonImageBackgroundColor = CometChatTheme.primaryColor
866
- ```
867
-
868
- ---
869
-
870
- ### "Value of type 'BadgeStyle' has no member 'cornerRadius'" (type mismatch)
871
-
872
- **Cause:** `BadgeStyle.cornerRadius` is `CometChatCornerStyle?`, not a simple value.
873
-
874
- **Solution:**
875
-
876
- ```swift
877
- // ✅ CORRECT - cornerRadius is optional CometChatCornerStyle
878
- CometChatBadge.style.cornerRadius = CometChatCornerStyle(cornerRadius: 8)
879
- // or nil for default pill shape
880
- CometChatBadge.style.cornerRadius = nil
881
- ```
882
-
883
- ---
884
-
885
- ### "Cannot assign value of type 'UIColor' to type 'CGColor'"
886
-
887
- **Cause:** `BadgeStyle.borderColor` is `CGColor`, not `UIColor`.
888
-
889
- **Solution:**
890
-
891
- ```swift
892
- // ✅ CORRECT - use .cgColor
893
- CometChatBadge.style.borderColor = UIColor.clear.cgColor
894
- CometChatBadge.style.borderColor = UIColor.white.cgColor
895
- ```
896
-
897
- ---
898
-
899
- ### Theme Changes Not Applying
900
-
901
- **Cause:** Theme configured after UI is already displayed.
902
-
903
- **Solution:** Configure theme before showing any CometChat UI:
904
-
905
- ```swift
906
- // In AppDelegate or App init, BEFORE showing any CometChat views
907
- func configureTheme() {
908
- CometChatTheme.primaryColor = UIColor.systemBlue
909
- CometChatTheme.backgroundColor01 = UIColor.systemBackground
910
- // ... other theme settings
911
- }
912
-
913
- // Call this before CometChatUIKit.init()
914
- configureTheme()
915
- ```
916
-
917
- ---
918
-
919
- ### "Type 'CometChatSpacing' has no member 'Spacing1'" or similar
920
-
921
- **Cause:** Using incorrect property access for spacing values.
922
-
923
- **Solution:** `CometChatSpacing` uses nested classes, not direct properties:
924
-
925
- ```swift
926
- // ✅ CORRECT - Use nested class syntax
927
- CometChatSpacing.Spacing.s1 = 4
928
- CometChatSpacing.Spacing.s2 = 8
929
- CometChatSpacing.Padding.p1 = 4
930
- CometChatSpacing.Padding.p2 = 8
931
- CometChatSpacing.Radius.r1 = 4
932
- CometChatSpacing.Radius.r2 = 8
933
- CometChatSpacing.Radius.rMax = 1000
934
- CometChatSpacing.Margin.m1 = 4
935
- ```
936
-
937
- ---
938
-
939
- ### "Cannot infer type of closure parameter" or "Cannot infer contextual base"
940
-
941
- **Cause:** Missing type annotations in closures for custom views.
942
-
943
- **Solution:** Always provide explicit type annotations for closure parameters:
944
-
945
- ```swift
946
- import CometChatSDK
947
-
948
- // ✅ CORRECT - Explicit type annotation
949
- users.set(subtitle: { (user: User?) -> UIView in
950
- let label = UILabel()
951
- if user?.status == .online {
952
- label.text = "Online"
953
- label.textColor = .systemGreen
954
- } else {
955
- label.text = "Offline"
956
- label.textColor = .gray
957
- }
958
- return label
959
- })
960
- ```
961
-
962
- Note: Use `set(subtitle:)` method, not direct property assignment. The `User` type is from `CometChatSDK`.
963
-
964
- ---
965
-
966
- ### "Value of type 'CometChatUsers' has no member 'subtitleView'"
967
-
968
- **Cause:** Using wrong property name.
969
-
970
- **Solution:** `CometChatUsers` uses `subtitle`, not `subtitleView`:
971
-
972
- ```swift
973
- // ✅ CORRECT
974
- users.set(subtitle: { (user: User?) -> UIView in
975
- // Return custom view
976
- })
977
-
978
- // Different components use different names:
979
- // - CometChatUsers: set(subtitle:)
980
- // - CometChatConversations: set(subtitleView:)
981
- // - CometChatMessageHeader: set(subtitleView:)
982
- ```
983
-
984
- ---
985
-
986
- ## 10. Getting Help
987
-
988
- ### CometChat Resources
20
+ ## Start here — iOS fails SILENTLY, on ORDER and CREDENTIALS
21
+ The two dominant causes of "the screen never populates":
22
+ 1. **`login()` was called before `initFromSettings` resolved.** Both are async and must COMPLETE in order; login-before-init fails with no crash and no visible error — just a screen that never loads (`cometchat-ios-core`).
23
+ 2. **Credentials came through as the literal `$(COMETCHAT_APP_ID)`.** The `Secrets.xcconfig` → attach-to-configs → declare-in-Info.plist → read-via-`Bundle.main` chain has four steps; miss one and you init with the literal placeholder, which then fails auth.
989
24
 
990
- - **Documentation:** https://www.cometchat.com/docs/ios-uikit
991
- - **GitHub Issues:** https://github.com/cometchat/cometchat-uikit-ios/issues
992
- - **Support:** https://www.cometchat.com/support
25
+ ## Symptom → cause → fix
26
+ | Symptom | Likely cause | Fix |
27
+ | --- | --- | --- |
28
+ | Screen never populates, no error | `login` before `init` resolved | Chain them: call login only inside the init completion (`cometchat-ios-core` `references/swiftui.md`) |
29
+ | Auth fails immediately | Wrong Region, or creds read as `$(...)` | Region must match the dashboard app; verify `Bundle.main` returns the value, not the literal `$(` |
30
+ | Values are the literal `$(...)` | `xcconfig` not attached, or Info.plist key missing | Attach `Secrets.xcconfig` to the build configs AND declare each key in Info.plist (`references/setup-credentials.md` §2-§3) |
31
+ | SPM won't resolve / kit crashes at runtime | `CometChatSDK` version drifted from the kit's exact pin | Pin CometChatUIKitSwift 5.1.22 + CometChatSDK 4.1.7 + CometChatCallsSDK 5.0.3 exactly (`cometchat-ios-core` Install) |
32
+ | Build fails after adding a Podfile | Tried CocoaPods | SPM only — a Podfile is a detection signal, not an instruction; remove the pod integration |
33
+ | Conversations empty | New app has no conversations, or wrong scope | Send a first message; check the request scope |
34
+ | `login` "user not found" | UID does not exist in the app | Use a real UID (Dashboard → Users; fresh apps seed `cometchat-uid-1`) — never a guessed `superhero*` |
35
+ | Calls fail / no permission prompt | Missing usage-description strings or VoIP entitlement | Add `NSCameraUsageDescription` + `NSMicrophoneUsageDescription`; enable the VoIP entitlement (`cometchat-ios-push`/`-calls`) |
36
+ | Works in dev, fails in release | Auth Key stripped for release but still using `login(uid:)` | Switch to `login(authToken:)` with a server token (`cometchat-ios-production`) |
993
37
 
994
- ### Information to Include in Bug Reports
38
+ ## When the table does not cover it
39
+ Enable SDK logging and read the Xcode console: an init/lifecycle error (a call made before `init()` resolved) is the usual "nothing renders" cause; auth errors are almost always Region or a literal-placeholder credential. Then fetch the feature's page via `cometchat-ios-core/references/docs-map.md`. Never diagnose from the binary framework's headers or from memory — fetch the documented signature.
995
40
 
996
- 1. CometChatUIKitSwift version
997
- 2. iOS version
998
- 3. Xcode version
999
- 4. Device (simulator or physical)
1000
- 5. Error message / stack trace
1001
- 6. Steps to reproduce
1002
- 7. Relevant code snippets
41
+ ## Verify it works
42
+ init and login both resolve (in order) before the chat screen renders · `Bundle.main` returns real credential values, not `$(...)` · the exact kit/SDK versions are pinned · conversations render or show the empty state · a message sends and arrives · calls prompt for permission.
1003
43
 
44
+ ## What NOT to do
45
+ Do not hard-code credentials to get past the `$(...)` literal — fix the xcconfig/Info.plist chain; do not add CocoaPods to work around an SPM resolve issue — pin the exact versions; do not hard-code a UID to dodge "user not found."