nativescript 9.1.0-alpha.15 → 9.1.0-alpha.16

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 (344) hide show
  1. package/docs/build-jekyll-md.sh +1 -1
  2. package/docs/man_pages/config/config-set.md +2 -0
  3. package/lib/android-tools-info.js +0 -12
  4. package/lib/base-package-manager.js +0 -7
  5. package/lib/bootstrap.js +1 -5
  6. package/lib/bun-package-manager.js +1 -14
  7. package/lib/color.js +0 -4
  8. package/lib/commands/add-platform.js +0 -1
  9. package/lib/commands/apple-login.js +0 -1
  10. package/lib/commands/appstore-list.js +0 -1
  11. package/lib/commands/appstore-upload.js +0 -3
  12. package/lib/commands/build.js +3 -3
  13. package/lib/commands/clean.js +1 -22
  14. package/lib/commands/command-base.js +0 -1
  15. package/lib/commands/config.js +0 -5
  16. package/lib/commands/create-project.js +0 -6
  17. package/lib/commands/debug.js +2 -6
  18. package/lib/commands/deploy.js +3 -3
  19. package/lib/commands/embedding/embed.js +0 -7
  20. package/lib/commands/extensibility/install-extension.js +0 -1
  21. package/lib/commands/extensibility/list-extensions.js +0 -1
  22. package/lib/commands/extensibility/uninstall-extension.js +0 -1
  23. package/lib/commands/fonts.js +0 -1
  24. package/lib/commands/generate-assets.js +0 -1
  25. package/lib/commands/generate-help.js +0 -1
  26. package/lib/commands/generate.js +1 -48
  27. package/lib/commands/hooks/common.js +1 -2
  28. package/lib/commands/hooks/hooks-lock.js +0 -1
  29. package/lib/commands/hooks/hooks.js +0 -1
  30. package/lib/commands/info.js +0 -1
  31. package/lib/commands/install.js +0 -1
  32. package/lib/commands/list-platforms.js +0 -1
  33. package/lib/commands/migrate.js +0 -1
  34. package/lib/commands/native-add.js +0 -5
  35. package/lib/commands/platform-clean.js +0 -1
  36. package/lib/commands/plugin/add-plugin.js +0 -1
  37. package/lib/commands/plugin/build-plugin.js +0 -1
  38. package/lib/commands/plugin/create-plugin.js +0 -5
  39. package/lib/commands/plugin/list-plugins.js +0 -1
  40. package/lib/commands/plugin/remove-plugin.js +0 -2
  41. package/lib/commands/plugin/update-plugin.js +0 -1
  42. package/lib/commands/post-install.js +0 -6
  43. package/lib/commands/prepare.js +5 -5
  44. package/lib/commands/preview.js +0 -2
  45. package/lib/commands/remove-platform.js +0 -1
  46. package/lib/commands/resources/resources-update.js +0 -2
  47. package/lib/commands/run.js +0 -1
  48. package/lib/commands/setup.js +0 -1
  49. package/lib/commands/start.js +0 -1
  50. package/lib/commands/test-init.js +0 -4
  51. package/lib/commands/test.js +3 -9
  52. package/lib/commands/typings.js +1 -2
  53. package/lib/commands/update-platform.js +0 -5
  54. package/lib/commands/update.js +0 -2
  55. package/lib/commands/widget.js +0 -18
  56. package/lib/common/bootstrap.js +0 -1
  57. package/lib/common/child-process.js +0 -3
  58. package/lib/common/codeGeneration/code-entity.js +0 -1
  59. package/lib/common/codeGeneration/code-printer.js +0 -1
  60. package/lib/common/command-params.js +0 -1
  61. package/lib/common/commands/analytics.js +0 -3
  62. package/lib/common/commands/autocompletion.js +0 -3
  63. package/lib/common/commands/device/device-log-stream.js +0 -1
  64. package/lib/common/commands/device/get-file.js +0 -2
  65. package/lib/common/commands/device/list-applications.js +0 -1
  66. package/lib/common/commands/device/list-devices.js +0 -3
  67. package/lib/common/commands/device/list-files.js +0 -2
  68. package/lib/common/commands/device/put-file.js +0 -2
  69. package/lib/common/commands/device/run-application.js +0 -1
  70. package/lib/common/commands/device/stop-application.js +0 -1
  71. package/lib/common/commands/device/uninstall-application.js +0 -1
  72. package/lib/common/commands/doctor.js +3 -3
  73. package/lib/common/commands/generate-messages.js +0 -1
  74. package/lib/common/commands/help.js +0 -1
  75. package/lib/common/commands/package-manager-get.js +0 -1
  76. package/lib/common/commands/package-manager-set.js +0 -1
  77. package/lib/common/commands/post-install.js +0 -1
  78. package/lib/common/commands/preuninstall.js +2 -11
  79. package/lib/common/commands/proxy/proxy-base.js +0 -4
  80. package/lib/common/commands/proxy/proxy-clear.js +0 -1
  81. package/lib/common/commands/proxy/proxy-get.js +0 -1
  82. package/lib/common/commands/proxy/proxy-set.js +0 -1
  83. package/lib/common/common-lib.js +0 -1
  84. package/lib/common/constants.js +14 -12
  85. package/lib/common/declarations.d.ts +37 -117
  86. package/lib/common/decorators.js +0 -48
  87. package/lib/common/definitions/key-commands.js +8 -0
  88. package/lib/common/dispatchers.js +1 -10
  89. package/lib/common/enums.js +42 -0
  90. package/lib/common/errors.js +4 -13
  91. package/lib/common/file-system.js +2 -13
  92. package/lib/common/header.js +0 -3
  93. package/lib/common/helpers.js +3 -89
  94. package/lib/common/host-info.js +0 -4
  95. package/lib/common/http-client.js +0 -20
  96. package/lib/common/logger/appenders/cli-appender.js +0 -4
  97. package/lib/common/logger/appenders/emit-appender.js +0 -4
  98. package/lib/common/logger/layouts/cli-layout.js +0 -1
  99. package/lib/common/logger/logger.js +0 -5
  100. package/lib/common/messages/messages.js +0 -6
  101. package/lib/common/mobile/android/android-application-manager.js +1 -20
  102. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +0 -1
  103. package/lib/common/mobile/android/android-debug-bridge.js +0 -6
  104. package/lib/common/mobile/android/android-device-file-system.js +0 -4
  105. package/lib/common/mobile/android/android-device-hash-service.js +0 -3
  106. package/lib/common/mobile/android/android-device.js +0 -8
  107. package/lib/common/mobile/android/android-emulator-services.js +1 -2
  108. package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
  109. package/lib/common/mobile/android/android-log-filter.js +0 -4
  110. package/lib/common/mobile/android/android-virtual-device-service.js +0 -26
  111. package/lib/common/mobile/android/device-android-debug-bridge.js +0 -1
  112. package/lib/common/mobile/android/genymotion/genymotion-service.js +1 -6
  113. package/lib/common/mobile/android/genymotion/virtualbox-service.js +0 -11
  114. package/lib/common/mobile/android/logcat-helper.js +0 -13
  115. package/lib/common/mobile/application-manager-base.js +0 -6
  116. package/lib/common/mobile/device-emitter.js +0 -4
  117. package/lib/common/mobile/device-log-emitter.js +0 -1
  118. package/lib/common/mobile/device-log-provider-base.js +0 -1
  119. package/lib/common/mobile/device-log-provider.js +0 -23
  120. package/lib/common/mobile/device-platforms-constants.js +0 -1
  121. package/lib/common/mobile/emulator-helper.js +0 -3
  122. package/lib/common/mobile/ios/device/ios-application-manager.js +0 -3
  123. package/lib/common/mobile/ios/device/ios-device-file-system.js +0 -9
  124. package/lib/common/mobile/ios/device/ios-device-operations.js +0 -4
  125. package/lib/common/mobile/ios/device/ios-device.js +0 -4
  126. package/lib/common/mobile/ios/ios-device-base.js +0 -1
  127. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
  128. package/lib/common/mobile/ios/ios-log-filter.js +0 -1
  129. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +0 -4
  130. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +0 -1
  131. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +0 -6
  132. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +0 -5
  133. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +0 -1
  134. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +0 -1
  135. package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
  136. package/lib/common/mobile/log-filter.js +0 -2
  137. package/lib/common/mobile/logging-levels.js +0 -1
  138. package/lib/common/mobile/mobile-core/android-device-discovery.js +0 -2
  139. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +0 -3
  140. package/lib/common/mobile/mobile-core/android-process-service.js +0 -32
  141. package/lib/common/mobile/mobile-core/device-discovery.js +0 -1
  142. package/lib/common/mobile/mobile-core/devices-service.js +0 -69
  143. package/lib/common/mobile/mobile-core/ios-device-discovery.js +0 -2
  144. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +0 -3
  145. package/lib/common/mobile/mobile-helper.js +0 -1
  146. package/lib/common/mobile/wp8/wp8-emulator-services.js +0 -1
  147. package/lib/common/opener.js +0 -1
  148. package/lib/common/os-info.js +0 -1
  149. package/lib/common/plist-parser.js +0 -1
  150. package/lib/common/project-helper.js +0 -1
  151. package/lib/common/prompter.js +1 -9
  152. package/lib/common/queue.js +0 -1
  153. package/lib/common/resource-loader.js +0 -1
  154. package/lib/common/services/analytics/google-analytics-custom-dimensions.js +13 -0
  155. package/lib/common/services/auto-completion-service.js +1 -13
  156. package/lib/common/services/cancellation.js +2 -2
  157. package/lib/common/services/commands-service.js +8 -17
  158. package/lib/common/services/help-service.js +4 -11
  159. package/lib/common/services/hooks-service.js +0 -13
  160. package/lib/common/services/ios-notification-service.js +0 -1
  161. package/lib/common/services/json-file-settings-service.js +0 -6
  162. package/lib/common/services/lock-service.js +0 -6
  163. package/lib/common/services/message-contract-generator.js +0 -1
  164. package/lib/common/services/messages-service.js +0 -1
  165. package/lib/common/services/micro-templating-service.js +0 -6
  166. package/lib/common/services/net-service.js +0 -3
  167. package/lib/common/services/project-files-manager.js +0 -5
  168. package/lib/common/services/project-files-provider-base.js +0 -1
  169. package/lib/common/services/proxy-service.js +0 -1
  170. package/lib/common/services/qr.js +0 -1
  171. package/lib/common/services/settings-service.js +0 -1
  172. package/lib/common/services/xcode-select-service.js +0 -1
  173. package/lib/common/utils.js +0 -1
  174. package/lib/common/validators/project-name-validator.js +0 -1
  175. package/lib/common/validators/validation-result.js +0 -1
  176. package/lib/common/verify-node-version.js +2 -8
  177. package/lib/common/yok.js +12 -32
  178. package/lib/config.js +1 -22
  179. package/lib/constants-provider.js +0 -1
  180. package/lib/constants.js +54 -58
  181. package/lib/controllers/build-controller.js +3 -4
  182. package/lib/controllers/debug-controller.js +3 -8
  183. package/lib/controllers/deploy-controller.js +0 -1
  184. package/lib/controllers/migrate-controller.js +4 -90
  185. package/lib/controllers/platform-controller.js +2 -9
  186. package/lib/controllers/prepare-controller.js +8 -24
  187. package/lib/controllers/run-controller.js +1 -81
  188. package/lib/controllers/update-controller-base.js +0 -1
  189. package/lib/controllers/update-controller.js +0 -11
  190. package/lib/data/build-data.js +0 -1
  191. package/lib/data/controller-data-base.js +0 -1
  192. package/lib/data/debug-data.js +0 -1
  193. package/lib/data/platform-data.js +0 -1
  194. package/lib/data/prepare-data.js +0 -1
  195. package/lib/data/run-data.js +0 -1
  196. package/lib/definitions/project.d.ts +1 -6
  197. package/lib/definitions/system-warnings.js +8 -0
  198. package/lib/detached-processes/cleanup-js-subprocess.js +3 -8
  199. package/lib/detached-processes/cleanup-process.js +15 -18
  200. package/lib/detached-processes/detached-process-enums.js +24 -0
  201. package/lib/detached-processes/file-log-service.js +2 -2
  202. package/lib/device-path-provider.js +0 -1
  203. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +0 -7
  204. package/lib/device-sockets/ios/notification.js +0 -3
  205. package/lib/device-sockets/ios/socket-request-executor.js +0 -3
  206. package/lib/helpers/android-bundle-validator-helper.js +1 -2
  207. package/lib/helpers/deploy-command-helper.js +0 -1
  208. package/lib/helpers/key-command-helper.js +3 -4
  209. package/lib/helpers/livesync-command-helper.js +2 -4
  210. package/lib/helpers/network-connectivity-validator.js +0 -1
  211. package/lib/helpers/options-track-helper.js +4 -3
  212. package/lib/helpers/package-path-helper.js +0 -1
  213. package/lib/helpers/platform-command-helper.js +2 -7
  214. package/lib/helpers/version-validator-helper.js +0 -1
  215. package/lib/key-commands/bootstrap.js +3 -3
  216. package/lib/key-commands/index.js +5 -5
  217. package/lib/nativescript-cli-lib-bootstrap.js +0 -4
  218. package/lib/nativescript-cli-lib.js +0 -1
  219. package/lib/nativescript-cli.js +2 -11
  220. package/lib/node/pbxproj-dom-xcode.js +0 -1
  221. package/lib/node/xcode.js +0 -1
  222. package/lib/node-package-manager.js +1 -11
  223. package/lib/options.js +121 -145
  224. package/lib/package-installation-manager.js +1 -8
  225. package/lib/package-manager.js +0 -2
  226. package/lib/platform-command-param.js +0 -1
  227. package/lib/pnpm-package-manager.js +1 -4
  228. package/lib/project-data.js +0 -12
  229. package/lib/providers/project-files-provider.js +0 -1
  230. package/lib/resolvers/livesync-service-resolver.js +0 -1
  231. package/lib/services/analytics/analytics-broker-process.js +8 -10
  232. package/lib/services/analytics/analytics-broker.js +2 -2
  233. package/lib/services/analytics/analytics-service.js +29 -29
  234. package/lib/services/analytics/google-analytics-provider.js +16 -13
  235. package/lib/services/analytics-settings-service.js +0 -5
  236. package/lib/services/android/android-bundle-tool-service.js +0 -1
  237. package/lib/services/android/gradle-build-args-service.js +0 -3
  238. package/lib/services/android/gradle-build-service.js +0 -1
  239. package/lib/services/android/gradle-command-service.js +0 -1
  240. package/lib/services/android-device-debug-service.js +0 -6
  241. package/lib/services/android-plugin-build-service.js +2 -31
  242. package/lib/services/android-project-service.js +4 -71
  243. package/lib/services/android-resources-migration-service.js +0 -7
  244. package/lib/services/apple-portal/apple-portal-application-service.js +0 -1
  245. package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
  246. package/lib/services/apple-portal/apple-portal-session-service.js +4 -6
  247. package/lib/services/apple-portal/srp/srp-wrapper.js +1 -4
  248. package/lib/services/assets-generation/assets-generation-service.js +13 -11
  249. package/lib/services/build-artifacts-service.js +1 -2
  250. package/lib/services/build-data-service.js +0 -1
  251. package/lib/services/build-info-file-service.js +0 -1
  252. package/lib/services/bundler/bundler-compiler-service.js +1 -144
  253. package/lib/services/bundler/bundler.js +0 -1
  254. package/lib/services/cleanup-service.js +10 -13
  255. package/lib/services/cocoapods-platform-manager.js +0 -9
  256. package/lib/services/cocoapods-service.js +1 -21
  257. package/lib/services/debug-data-service.js +0 -1
  258. package/lib/services/debug-service-base.js +0 -7
  259. package/lib/services/device/device-install-app-service.js +1 -2
  260. package/lib/services/doctor-service.js +6 -21
  261. package/lib/services/extensibility-service.js +0 -8
  262. package/lib/services/files-hash-service.js +0 -1
  263. package/lib/services/hmr-status-service.js +0 -2
  264. package/lib/services/info-service.js +0 -1
  265. package/lib/services/initialize-service.js +2 -5
  266. package/lib/services/ios/export-options-plist-service.js +0 -4
  267. package/lib/services/ios/ios-signing-service.js +0 -4
  268. package/lib/services/ios/spm-service.js +0 -119
  269. package/lib/services/ios/xcodebuild-args-service.js +0 -29
  270. package/lib/services/ios/xcodebuild-command-service.js +0 -3
  271. package/lib/services/ios/xcodebuild-service.js +1 -2
  272. package/lib/services/ios-debugger-port-service.js +0 -1
  273. package/lib/services/ios-device-debug-service.js +0 -1
  274. package/lib/services/ios-entitlements-service.js +0 -1
  275. package/lib/services/ios-extensions-service.js +0 -1
  276. package/lib/services/ios-log-filter.js +0 -20
  277. package/lib/services/ios-native-target-service.js +5 -6
  278. package/lib/services/ios-project-service.js +7 -133
  279. package/lib/services/ios-provision-service.js +0 -3
  280. package/lib/services/ios-watch-app-service.js +10 -60
  281. package/lib/services/ip-service.js +0 -2
  282. package/lib/services/itmstransporter-service.js +0 -1
  283. package/lib/services/karma-execution.js +0 -2
  284. package/lib/services/livesync/android-device-livesync-service-base.js +0 -1
  285. package/lib/services/livesync/android-device-livesync-service.js +0 -2
  286. package/lib/services/livesync/android-device-livesync-sockets-service.js +0 -3
  287. package/lib/services/livesync/android-livesync-service.js +0 -1
  288. package/lib/services/livesync/android-livesync-tool.js +0 -4
  289. package/lib/services/livesync/device-livesync-service-base.js +0 -2
  290. package/lib/services/livesync/ios-device-livesync-service.js +0 -7
  291. package/lib/services/livesync/ios-livesync-service.js +0 -55
  292. package/lib/services/livesync/livesync-socket.js +0 -1
  293. package/lib/services/livesync/platform-livesync-service-base.js +0 -5
  294. package/lib/services/livesync-process-data-service.js +0 -1
  295. package/lib/services/log-parser-service.js +0 -1
  296. package/lib/services/log-source-map-service.js +0 -15
  297. package/lib/services/marking-mode-service.js +10 -8
  298. package/lib/services/metadata-filtering-service.js +0 -1
  299. package/lib/services/npm-config-service.js +0 -4
  300. package/lib/services/pacote-service.js +0 -7
  301. package/lib/services/performance-service.js +2 -3
  302. package/lib/services/platform/add-platform-service.js +2 -49
  303. package/lib/services/platform/platform-validation-service.js +0 -1
  304. package/lib/services/platform/prepare-native-platform-service.js +3 -5
  305. package/lib/services/platform-environment-requirements.js +4 -8
  306. package/lib/services/platform-project-service-base.js +0 -1
  307. package/lib/services/platforms-data-service.js +0 -1
  308. package/lib/services/plugins-service.js +2 -20
  309. package/lib/services/prepare-data-service.js +0 -1
  310. package/lib/services/project-backup-service.js +0 -4
  311. package/lib/services/project-changes-service.js +3 -14
  312. package/lib/services/project-cleanup-service.js +0 -2
  313. package/lib/services/project-config-service.js +2 -21
  314. package/lib/services/project-data-service.js +7 -36
  315. package/lib/services/project-name-service.js +0 -1
  316. package/lib/services/project-service.js +0 -10
  317. package/lib/services/project-templates-service.js +2 -3
  318. package/lib/services/qr-code-terminal-service.js +0 -1
  319. package/lib/services/require-service.js +0 -1
  320. package/lib/services/start-service.js +0 -1
  321. package/lib/services/temp-service.js +0 -3
  322. package/lib/services/terminal-spinner-service.js +0 -2
  323. package/lib/services/test-execution-service.js +3 -9
  324. package/lib/services/test-initialization-service.js +0 -4
  325. package/lib/services/timeline-profiler-service.js +0 -1
  326. package/lib/services/user-settings-service.js +0 -1
  327. package/lib/services/versions-service.js +5 -6
  328. package/lib/services/watch-ignore-list-service.js +0 -1
  329. package/lib/services/xcconfig-service.js +45 -12
  330. package/lib/services/xcproj-service.js +0 -1
  331. package/lib/shared-event-bus.js +0 -6
  332. package/lib/sys-info.js +2 -2
  333. package/lib/tools/config-manipulation/config-transformer.js +0 -12
  334. package/lib/tools/node-modules/node-modules-builder.js +0 -1
  335. package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
  336. package/lib/yarn-package-manager.js +0 -1
  337. package/lib/yarn2-package-manager.js +0 -3
  338. package/package.json +7 -18
  339. package/lib/.d.ts +0 -504
  340. package/lib/common/definitions/key-commands.d.ts +0 -62
  341. package/lib/common/services/analytics/google-analytics-custom-dimensions.d.ts +0 -16
  342. package/lib/definitions/system-warnings.d.ts +0 -4
  343. package/lib/detached-processes/detached-process-enums.d.ts +0 -70
  344. package/lib/services/analytics/google-analytics-cross-client-custom-dimensions.d.ts +0 -6
@@ -74,10 +74,7 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
74
74
  this._platformsDirCache = null;
75
75
  this._platformOverrideCache = null;
76
76
  this._platformData = null;
77
- // Track added frameworks by name to prevent duplicates in monorepo/workspace setups
78
- // where the same plugin may exist in multiple node_modules paths
79
77
  this._addedFrameworks = new Set();
80
- // Track added static libraries by name to prevent duplicates in monorepo/workspace setups
81
78
  this._addedStaticLibs = new Set();
82
79
  }
83
80
  getPlatformData(projectData) {
@@ -146,7 +143,7 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
146
143
  ".ico",
147
144
  ".cur",
148
145
  ".xbm",
149
- ], // https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/
146
+ ],
150
147
  };
151
148
  this._platformsDirCache = projectData.platformsDir;
152
149
  this._platformOverrideCache = currentOverride;
@@ -195,11 +192,8 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
195
192
  this.$fs.ensureDirectoryExists(path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER));
196
193
  shell.cp("-R", path.join(frameworkDir, "*"), this.getPlatformData(projectData).projectRoot);
197
194
  }
198
- //TODO: plamen5kov: revisit this method, might have unnecessary/obsolete logic
199
195
  async interpolateData(projectData) {
200
196
  const projectRootFilePath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER);
201
- // Starting with NativeScript for iOS 1.6.0, the project Info.plist file resides not in the platform project,
202
- // but in the hello-world app template as a platform specific resource.
203
197
  if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + "-Info.plist"))) {
204
198
  this.replaceFileName("-Info.plist", projectRootFilePath, projectData);
205
199
  }
@@ -243,9 +237,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
243
237
  }
244
238
  async buildProject(projectRoot, projectData, buildData) {
245
239
  const platformData = this.getPlatformData(projectData);
246
- // On a first build, the runtime (and any other Swift packages) download
247
- // here. Pre-resolve under a clear spinner so the subsequent
248
- // "Xcode build..." step doesn't appear to hang while that happens.
249
240
  await this.$spmService.ensureSPMDependenciesResolved(platformData, projectData);
250
241
  const handler = (data) => {
251
242
  this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data);
@@ -296,9 +287,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
296
287
  return await isDynamicFrameworkBundle(path.join(frameworkPath, frameworkName));
297
288
  }
298
289
  }
299
- /**
300
- * Clears the framework and static library tracking sets. Should be called at the start of a new prepare cycle.
301
- */
302
290
  clearFrameworksCache() {
303
291
  this._addedFrameworks.clear();
304
292
  this._addedStaticLibs.clear();
@@ -307,7 +295,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
307
295
  if (this.$hostInfo.isWindows) {
308
296
  return;
309
297
  }
310
- // Check if framework with same name already added (prevents duplicate output errors in monorepos)
311
298
  const frameworkName = path.basename(frameworkPath);
312
299
  if (this._addedFrameworks.has(frameworkName)) {
313
300
  this.$logger.trace(`Framework ${frameworkName} already added, skipping duplicate from ${frameworkPath}`);
@@ -323,51 +310,29 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
323
310
  frameworkAddOptions["sign"] = true;
324
311
  }
325
312
  if (this.$options.hostProjectPath) {
326
- // always mark xcframeworks for embedding
327
313
  frameworkAddOptions["embed"] = true;
328
314
  frameworkAddOptions["sign"] = false;
329
315
  }
330
- // Note: we used to prepend "$(SRCROOT)/" to the framework path, but seems like it's not needed anymore
331
- // "$(SRCROOT)/" +
332
316
  const frameworkRelativePath = this.getLibSubpathRelativeToProjectPath(frameworkPath, projectData);
333
317
  project.addFramework(frameworkRelativePath, frameworkAddOptions);
334
- // filePathsArray, buildPhaseType, comment, target, optionsOrFolderType, subfolderPath
335
- // project.addBuildPhase(
336
- // [],
337
- // "PBXShellScriptBuildPhase",
338
- // "Debug SRCROOT",
339
- // undefined,
340
- // {
341
- // shellPath: "/bin/sh",
342
- // shellScript: `echo "SRCROOT: $SRCROOT"`,
343
- // }
344
- // );
345
318
  this.savePbxProj(project, projectData);
346
319
  }
347
320
  async addStaticLibrary(staticLibPath, projectData) {
348
- // Check if static library with same name already added (prevents duplicate errors in monorepos)
349
321
  const libraryName = path.basename(staticLibPath, ".a");
350
322
  if (this._addedStaticLibs.has(libraryName)) {
351
323
  this.$logger.trace(`Static library ${libraryName} already added, skipping duplicate from ${staticLibPath}`);
352
324
  return;
353
325
  }
354
326
  this._addedStaticLibs.add(libraryName);
355
- // Copy files to lib folder.
356
327
  const headersSubpath = path.join(path.dirname(staticLibPath), "include", libraryName);
357
- // Add static library to project file and setup header search paths
358
328
  const project = this.createPbxProj(projectData);
359
329
  const relativeStaticLibPath = this.getLibSubpathRelativeToProjectPath(staticLibPath, projectData);
360
330
  project.addFramework(relativeStaticLibPath);
361
331
  const relativeHeaderSearchPath = path.join(this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData));
362
332
  project.addToHeaderSearchPaths({ relativePath: relativeHeaderSearchPath });
363
- // Write the generated modulemap into a CLI-managed folder under the
364
- // platform root (never into node_modules). The modulemap references the
365
- // plugin's headers in-place via relative paths, so nothing is copied.
366
333
  const modulemapDir = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.GENERATED_PLUGINS_DIR_NAME, libraryName);
367
334
  const hasModulemap = this.generateModulemap(headersSubpath, libraryName, modulemapDir);
368
335
  if (hasModulemap) {
369
- // Put the modulemap dir on the header search path so clang discovers
370
- // the module there instead of inside node_modules.
371
336
  project.addToHeaderSearchPaths({
372
337
  relativePath: this.getLibSubpathRelativeToProjectPath(modulemapDir, projectData),
373
338
  });
@@ -400,58 +365,10 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
400
365
  filesRelativeToProject: true,
401
366
  uuid: "NATIVESCRIPTNATIVESCRIPT",
402
367
  });
403
- /**
404
- * 1. Add platforms/ios/{projectname}/app build to the host app
405
- */
406
- // Note: allow customization of this targetFolderName
407
- // const targetFolderName = "app";
408
368
  const buildFolderPath = path.join(this.$options.hostProjectPath, projectData.projectName);
409
369
  project.addResourceFile(buildFolderPath, {}, "NATIVESCRIPTNATIVESCRIPT");
410
- // filePathsArray, buildPhaseType, comment, target, optionsOrFolderType, subfolderPath
411
- // project.addBuildPhase(
412
- // [],
413
- // "PBXShellScriptBuildPhase",
414
- // "Copy Metadata (DEBUG)",
415
- // undefined,
416
- // {
417
- // shellPath: "/bin/sh",
418
- // shellScript: `cp ./platforms/ios/build/Debug-iphonesimulator/metadata-arm64.bin $CONFIGURATION_BUILD_DIR`,
419
- // outputPaths: [
420
- // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-arm64.bin"),
421
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-arm64e.bin"),
422
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-i386.bin"),
423
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-x86_64.bin"),
424
- // ],
425
- // }
426
- // );
427
370
  const metadataPath = path.relative(this.$options.hostProjectPath, buildFolderPath);
428
371
  project.addToOtherLinkerFlags(JSON.stringify(`-sectcreate __DATA __TNSMetadata "${metadataPath}/metadata-arm64.bin"`));
429
- // // no shorthand way to get UUID of build phase that i can tell
430
- // // methods return the phase as an object but ommitted the actual key (uuid we need)
431
- // // this does it same way nativescript-dev-xcode does but gets the uuid we need
432
- // const resourcesBuildPhaseKeys = Object.keys(
433
- // project.hash.project.objects["PBXResourcesBuildPhase"]
434
- // );
435
- // // console.log('resourcesBuildPhaseKeys:', resourcesBuildPhaseKeys);
436
- // const buildPhaseUUID = resourcesBuildPhaseKeys[0];
437
- // const comment = `${targetFolderName} in Resources`;
438
- // project.hash.project.objects["PBXResourcesBuildPhase"][
439
- // buildPhaseUUID
440
- // ].files.forEach((f: any) => {
441
- // console.log(f);
442
- // });
443
- // if (
444
- // !project.hash.project.objects["PBXResourcesBuildPhase"][
445
- // buildPhaseUUID
446
- // ].files.find((f: any) => f.comment === comment)
447
- // ) {
448
- // project.addResourceFile(buildFolderPath, {}, buildPhaseUUID);
449
- // }
450
- /**
451
- * 2. Ensure metadata is copied as a file
452
- * The apps metadata-{arch}.bin should be added as a file reference.
453
- */
454
- // TODO
455
372
  this.savePbxProj(project, projectData);
456
373
  }
457
374
  catch (err) {
@@ -503,12 +420,10 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
503
420
  this.$fs.deleteDirectory(platformsAppResourcesPath);
504
421
  this.$fs.ensureDirectoryExists(platformsAppResourcesPath);
505
422
  const platformAppResourcesPath = path.join(projectAppResourcesPath, platformData.normalizedPlatformName);
506
- // this allows App_Resources/visionOS
507
423
  if (this.$fs.exists(platformAppResourcesPath)) {
508
424
  this.$fs.copyFile(path.join(platformAppResourcesPath, "*"), platformsAppResourcesPath);
509
425
  }
510
426
  else {
511
- // otherwise falls back to App_Resources/iOS
512
427
  this.$fs.copyFile(path.join(projectAppResourcesPath, this.$devicePlatformsConstants.iOS, "*"), platformsAppResourcesPath);
513
428
  }
514
429
  this.$fs.deleteFile(path.join(platformsAppResourcesPath, platformData.configurationFileName));
@@ -607,12 +522,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
607
522
  getLibSubpathRelativeToProjectPath(targetPath, projectData) {
608
523
  const projectRoot = this.getPlatformData(projectData).projectRoot;
609
524
  const frameworkPath = path.relative(projectRoot, targetPath);
610
- // console.log({
611
- // targetPath,
612
- // projectRoot,
613
- // frameworkPath,
614
- // resolved: path.resolve(projectRoot, frameworkPath),
615
- // });
616
525
  return frameworkPath;
617
526
  }
618
527
  getPbxProjPath(projectData) {
@@ -671,7 +580,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
671
580
  this.$cocoapodsService.removePodfileFromProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, projectRoot);
672
581
  }
673
582
  async handleNativeDependenciesChange(projectData, opts) {
674
- // Clear framework tracking for fresh duplicate detection
675
583
  this.clearFrameworksCache();
676
584
  const platformData = this.getPlatformData(projectData);
677
585
  const pluginsData = this.getAllProductionPlugins(projectData);
@@ -683,10 +591,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
683
591
  const projectPodfilePath = this.$cocoapodsService.getProjectPodfilePath(platformData.projectRoot);
684
592
  if (this.$fs.exists(projectPodfilePath)) {
685
593
  await this.$cocoapodsService.executePodInstall(platformData.projectRoot, this.$xcprojService.getXcodeprojPath(projectData, platformData.projectRoot));
686
- // The `pod install` command adds a new target to the .pbxproject. This target adds additional build phases to Xcode project.
687
- // Some of these phases relies on env variables (like PODS_PODFILE_DIR_PATH or PODS_ROOT).
688
- // These variables are produced from merge of pod's xcconfig file and project's xcconfig file.
689
- // So the correct order is `pod install` to be executed before merging pod's xcconfig file.
690
594
  await this.$cocoapodsService.mergePodXcconfigFile(projectData, platformData, opts);
691
595
  }
692
596
  const pluginSpmPackages = [];
@@ -698,11 +602,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
698
602
  const packages = _.get(config, `${platformData.platformNameLowerCase}.SPMPackages`, []);
699
603
  if (packages.length) {
700
604
  for (const pkg of packages) {
701
- // a plugin's local package path is naturally authored relative
702
- // to the plugin itself, but the SPM service resolves relative
703
- // paths against the app project dir. When the app-relative
704
- // path doesn't exist (e.g. non-hoisted node_modules layouts),
705
- // fall back to resolving against the plugin's own directory.
706
605
  if ("path" in pkg &&
707
606
  pkg.path &&
708
607
  !path.isAbsolute(pkg.path) &&
@@ -729,7 +628,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
729
628
  const hasProvision = provision !== undefined;
730
629
  const hasTeamId = teamId !== undefined;
731
630
  if (hasProvision || hasTeamId) {
732
- // Check if the native project's signing is set to the provided provision...
733
631
  const pbxprojPath = this.getPbxProjPath(projectData);
734
632
  if (this.$fs.exists(pbxprojPath)) {
735
633
  const xcode = this.$pbxprojDomXcode.Xcode.open(pbxprojPath);
@@ -745,9 +643,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
745
643
  }
746
644
  }
747
645
  else {
748
- // Specifying provisioning profile requires "Manual" signing style.
749
- // If the current signing style was not "Manual" it was probably "Automatic" or,
750
- // it was not uniform for the debug and release build configurations.
751
646
  changesInfo.signingChanged = true;
752
647
  }
753
648
  }
@@ -761,8 +656,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
761
656
  }
762
657
  }
763
658
  else {
764
- // Specifying team id or name requires "Automatic" signing style.
765
- // If the current signing style was not "Automatic" it was probably "Manual".
766
659
  changesInfo.signingChanged = true;
767
660
  }
768
661
  }
@@ -818,11 +711,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
818
711
  var _a;
819
712
  const project = this.createPbxProj(projectData);
820
713
  const group = await this.getRootGroup(groupName, sourceFolderPath);
821
- // pin the sources to the main app target: without an explicit target the
822
- // underlying xcode lib picks whichever "Sources" build phase it finds
823
- // first, which can be an extension target (e.g. a widget) once one
824
- // exists — compiling plugin native code into extensions breaks their
825
- // builds (and bloats them) since they lack the app's search paths.
826
714
  project.addPbxGroup(group.files, group.name, group.path, null, {
827
715
  isMain: true,
828
716
  filesRelativeToProject: true,
@@ -944,7 +832,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
944
832
  project.removeFromHeaderSearchPaths({
945
833
  relativePath: relativeHeaderSearchPath,
946
834
  });
947
- // Remove the generated modulemap dir search path (see addStaticLibrary)
948
835
  const modulemapDir = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.GENERATED_PLUGINS_DIR_NAME, path.basename(staticLibPath, ".a"));
949
836
  project.removeFromHeaderSearchPaths({
950
837
  relativePath: this.getLibSubpathRelativeToProjectPath(modulemapDir, projectData),
@@ -954,9 +841,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
954
841
  }
955
842
  generateModulemap(headersFolderPath, libraryName, modulemapDir) {
956
843
  const modulemapPath = path.join(modulemapDir, "module.modulemap");
957
- // A plugin may ship a `.a` without an `include/{lib}` headers folder. In
958
- // that case there's nothing to expose as a module - clean up any stale
959
- // modulemap and bail out instead of letting readDirectory throw.
960
844
  if (!this.$fs.exists(headersFolderPath)) {
961
845
  if (this.$fs.exists(modulemapPath)) {
962
846
  this.$fs.deleteFile(modulemapPath);
@@ -973,9 +857,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
973
857
  }
974
858
  return false;
975
859
  }
976
- // Reference the plugin's headers (still in node_modules) relative to the
977
- // generated modulemap's location, so we don't copy headers or write into
978
- // node_modules.
979
860
  const headers = _.map(headerFiles, (value) => {
980
861
  const relativeHeaderPath = path.relative(modulemapDir, path.join(headersFolderPath, value));
981
862
  return `header "${relativeHeaderPath}"`;
@@ -991,6 +872,12 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
991
872
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
992
873
  this.$fs.deleteFile(pluginsXcconfigFilePath);
993
874
  }
875
+ const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
876
+ if (this.$fs.exists(appResourcesXcconfigPath)) {
877
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
878
+ await this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
879
+ }
880
+ }
994
881
  const allPlugins = this.getAllProductionPlugins(projectData);
995
882
  for (const plugin of allPlugins) {
996
883
  const pluginPlatformsFolderPath = plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
@@ -1001,22 +888,12 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
1001
888
  }
1002
889
  }
1003
890
  }
1004
- const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
1005
- if (this.$fs.exists(appResourcesXcconfigPath)) {
1006
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
1007
- await this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
1008
- }
1009
- }
1010
891
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
1011
892
  if (!this.$fs.exists(pluginsXcconfigFilePath)) {
1012
- // We need the pluginsXcconfig file to exist in platforms dir as it is required in the native template:
1013
- // https://github.com/NativeScript/ios-runtime/blob/9c2b7b5f70b9bee8452b7a24aa6b646214c7d2be/build/project-template/__PROJECT_NAME__/build-debug.xcconfig#L3
1014
- // From Xcode 10 in case the file is missing, this include fails and the build itself fails (was a warning in previous Xcode versions).
1015
893
  this.$fs.writeFile(pluginsXcconfigFilePath, "");
1016
894
  }
1017
895
  }
1018
896
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
1019
- // Set Entitlements Property to point to default file if not set explicitly by the user.
1020
897
  const entitlementsPropertyValue = this.$xcconfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS);
1021
898
  if (entitlementsPropertyValue === null &&
1022
899
  this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) {
@@ -1057,11 +934,8 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
1057
934
  exports.IOSProjectService = IOSProjectService;
1058
935
  IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER = "__PROJECT_NAME__";
1059
936
  IOSProjectService.IOS_PLATFORM_NAME = "ios";
1060
- // CLI-managed folder under the platform root where we write generated
1061
- // artifacts (e.g. plugin modulemaps) so we never write into node_modules
1062
937
  IOSProjectService.GENERATED_PLUGINS_DIR_NAME = ".plugins";
1063
938
  __decorate([
1064
939
  (0, helpers_2.hook)("buildIOS")
1065
940
  ], IOSProjectService.prototype, "buildProject", null);
1066
941
  yok_1.injector.register("iOSProjectService", IOSProjectService);
1067
- //# sourceMappingURL=ios-project-service.js.map
@@ -127,8 +127,6 @@ class IOSProvisionService {
127
127
  }
128
128
  async getDevelopmentTeams() {
129
129
  const teams = {};
130
- // NOTE: We are reading all provisioning profiles and collect team information from them.
131
- // It would be better if we can check the Apple ID registered in Xcode and read the teams associated with it.
132
130
  mobileprovision.provision.read().forEach((provision) => provision.TeamIdentifier &&
133
131
  provision.TeamIdentifier.forEach((id) => {
134
132
  if (!teams[provision.TeamName]) {
@@ -152,4 +150,3 @@ class IOSProvisionService {
152
150
  }
153
151
  exports.IOSProvisionService = IOSProvisionService;
154
152
  yok_1.injector.register("iOSProvisionService", IOSProvisionService);
155
- //# sourceMappingURL=ios-provision-service.js.map
@@ -23,26 +23,26 @@ const resourceExtensions = [
23
23
  ".jpeg",
24
24
  ".gif",
25
25
  ".svg",
26
- ".pdf", // Images
26
+ ".pdf",
27
27
  ".ttf",
28
28
  ".otf",
29
29
  ".woff",
30
- ".woff2", // Fonts
31
- ".xcassets", // Asset catalogs
30
+ ".woff2",
31
+ ".xcassets",
32
32
  ".storyboard",
33
- ".xib", // Interface files
33
+ ".xib",
34
34
  ".strings",
35
- ".stringsdict", // Localization
35
+ ".stringsdict",
36
36
  ".json",
37
37
  ".xml",
38
- ".plist", // Data files
38
+ ".plist",
39
39
  ".m4a",
40
40
  ".mp3",
41
41
  ".wav",
42
- ".caf", // Audio
42
+ ".caf",
43
43
  ".mp4",
44
- ".mov", // Video
45
- ".bundle", // Resource bundles
44
+ ".mov",
45
+ ".bundle",
46
46
  ];
47
47
  const WATCH_APP_IDENTIFIER = "watchkitapp";
48
48
  const WACTCH_EXTENSION_IDENTIFIER = "watchkitextension";
@@ -76,7 +76,6 @@ class IOSWatchAppService {
76
76
  const appPath = path.join(watchAppFolderPath, constants_1.IOS_WATCHAPP_FOLDER);
77
77
  const extensionPath = path.join(watchAppFolderPath, constants_1.IOS_WATCHAPP_EXTENSION_FOLDER);
78
78
  const hasWatchExtension = this.$fs.exists(extensionPath);
79
- // Check if watchapp exists - it's required
80
79
  if (!this.$fs.exists(appPath)) {
81
80
  return false;
82
81
  }
@@ -95,7 +94,6 @@ class IOSWatchAppService {
95
94
  await this.configureTarget(appFolder, path.join(appPath, appFolder), `${projectData.projectIdentifiers.ios}.${WATCH_APP_IDENTIFIER}`, configPath, config, watchApptarget, project, projectData, platformData, pbxProjPath, !hasWatchExtension);
96
95
  targetUuids.push(watchApptarget.uuid);
97
96
  targetNames.push(appFolder);
98
- // Extension is optional (Xcode 14+ supports single target)
99
97
  if (hasWatchExtension) {
100
98
  const extensionFolder = this.$iOSNativeTargetService.getTargetDirectories(extensionPath)[0];
101
99
  const configPath = path.join(path.join(extensionPath, extensionFolder), "extension.json");
@@ -114,10 +112,8 @@ class IOSWatchAppService {
114
112
  this.$logger.debug("No watch extension found - using single target mode (Xcode 14+)");
115
113
  }
116
114
  this.$fs.writeFile(pbxProjPath, project.writeSync({ omitEmptyValues: true }));
117
- // Add SPM packages (file needs to be saved first)
118
115
  const watchSPMPackages = this.getWatchSPMPackages(platformData);
119
116
  await this.applySPMPackagesToTargets(targetNames, platformData, projectData.projectDir, watchSPMPackages);
120
- // nothing done after we dont need to reload project
121
117
  this.$iOSNativeTargetService.prepareSigning(targetUuids, projectData, pbxProjPath);
122
118
  if (disableStubBinary) {
123
119
  this.applyWatchAppStubBinaryOverrides(appFolder, pbxProjPath);
@@ -128,7 +124,6 @@ class IOSWatchAppService {
128
124
  const targetPath = path.join(targetRootPath, targetFolder);
129
125
  const targetRelativePath = path.relative(platformData.projectRoot, targetPath);
130
126
  const target = project.addTarget(targetFolder, targetType, targetRelativePath, parentTarget, productTargetType);
131
- // Add build phases
132
127
  project.addBuildPhase([], "PBXSourcesBuildPhase", "Sources", target.uuid);
133
128
  project.addBuildPhase([], "PBXResourcesBuildPhase", "Resources", target.uuid);
134
129
  project.addBuildPhase([], "PBXFrameworksBuildPhase", "Frameworks", target.uuid);
@@ -136,14 +131,10 @@ class IOSWatchAppService {
136
131
  project.addToHeaderSearchPaths(targetPath, target.pbxNativeTarget.productName);
137
132
  return target;
138
133
  }
139
- /**
140
- * Recursively add source files from a directory to a target
141
- */
142
134
  addSourceFilesFromDirectory(dirPath, targetUuid, project, platformData, groupName, excludePatterns) {
143
135
  const items = this.getFolderFiles(dirPath, platformData.projectRoot, excludePatterns);
144
136
  for (const item of items) {
145
137
  const relativePath = path.relative(platformData.projectRoot, item);
146
- // Check if file is a source file by extension
147
138
  const ext = path.extname(item).toLowerCase();
148
139
  if (sourceExtensions.includes(ext)) {
149
140
  this.$logger.debug(`Adding source file: ${relativePath}`);
@@ -166,38 +157,30 @@ class IOSWatchAppService {
166
157
  this.$logger.warn(`Error adding watch app resources: ${err.message}`);
167
158
  }
168
159
  }
169
- /**
170
- * Recursively add resources from a directory to a target
171
- */
172
160
  addResourcesFromDirectory(dirPath, targetUuid, project, platformData, groupName, excludePatterns) {
173
161
  const items = this.$fs.readDirectory(dirPath);
174
162
  for (const item of items) {
175
- // Skip hidden files and excluded files/directories
176
163
  if (item.startsWith(".") || RESOURCES_TO_IGNORE.indexOf(item) !== -1) {
177
164
  continue;
178
165
  }
179
166
  const itemPath = path.join(dirPath, item);
180
167
  const stats = this.$fs.getFsStats(itemPath);
181
168
  const relativePath = path.relative(platformData.projectRoot, itemPath);
182
- // Check if file/directory should be excluded based on patterns
183
169
  if (excludePatterns &&
184
170
  this.shouldExclude(relativePath, excludePatterns)) {
185
171
  this.$logger.debug(`Excluding from resources: ${relativePath}`);
186
172
  continue;
187
173
  }
188
174
  if (stats.isDirectory()) {
189
- // Special handling for .xcassets, .bundle, and other resource bundles
190
175
  if (item.endsWith(".xcassets") || item.endsWith(".bundle")) {
191
176
  this.$logger.debug(`Adding resource bundle: ${relativePath}`);
192
177
  this.addResourceFile(project, relativePath, { target: targetUuid }, groupName);
193
178
  }
194
179
  else {
195
- // Recursively scan subdirectories
196
180
  this.addResourcesFromDirectory(itemPath, targetUuid, project, platformData, groupName, excludePatterns);
197
181
  }
198
182
  }
199
183
  else {
200
- // Check if file is a resource by extension
201
184
  const ext = path.extname(item).toLowerCase();
202
185
  if (resourceExtensions.includes(ext)) {
203
186
  this.$logger.debug(`Adding resource file: ${relativePath}`);
@@ -221,7 +204,6 @@ class IOSWatchAppService {
221
204
  const identifierParts = identifier.split(".");
222
205
  identifierParts.pop();
223
206
  const wkAppBundleIdentifier = identifierParts.join(".");
224
- // Build configuration properties
225
207
  const buildConfigProperties = [
226
208
  { name: "PRODUCT_BUNDLE_IDENTIFIER", value: identifier },
227
209
  { name: "SDKROOT", value: "watchos" },
@@ -257,7 +239,6 @@ class IOSWatchAppService {
257
239
  }
258
240
  const resourcesExclude = (config === null || config === void 0 ? void 0 : config.resourcesExclude) || [];
259
241
  const srcExclude = (config === null || config === void 0 ? void 0 : config.srcExclude) || [];
260
- // Handle custom Info.plist path
261
242
  if (config === null || config === void 0 ? void 0 : config.infoPlistPath) {
262
243
  const infoPlistPath = path.resolve(basedir, config.infoPlistPath);
263
244
  if (this.$fs.exists(infoPlistPath)) {
@@ -272,7 +253,6 @@ class IOSWatchAppService {
272
253
  this.$logger.warn(`Custom Info.plist not found at: ${infoPlistPath}`);
273
254
  }
274
255
  }
275
- // Handle custom xcprivacy file path
276
256
  if (config === null || config === void 0 ? void 0 : config.xcprivacyPath) {
277
257
  const xcprivacyPath = path.resolve(basedir, config.xcprivacyPath);
278
258
  if (this.$fs.exists(xcprivacyPath)) {
@@ -294,7 +274,6 @@ class IOSWatchAppService {
294
274
  await this.addTargetResources(path.dirname(configPath), [target.uuid], project, platformData, resourcesGroup, resourcesExclude);
295
275
  }
296
276
  if (config) {
297
- // Process additional configurations
298
277
  await this.processWatchAppConfiguration(config, basedir, targetName, target, project, projectData, platformData, pbxProjPath, srcExclude, resourcesExclude);
299
278
  }
300
279
  }
@@ -309,7 +288,6 @@ class IOSWatchAppService {
309
288
  }
310
289
  async processWatchAppConfiguration(config, basedir, targetName, target, project, projectData, platformData, pbxProjPath, srcExclude, resourcesExclude) {
311
290
  this.$logger.debug(`processWatchAppConfiguration ${JSON.stringify(config)}`);
312
- // Handle custom resources
313
291
  if (config.resources && Array.isArray(config.resources)) {
314
292
  this.$logger.debug(`Processing ${config.resources.length} custom resource(s) for watch target: ${targetName}`);
315
293
  for (const resourcePath of config.resources) {
@@ -323,8 +301,6 @@ class IOSWatchAppService {
323
301
  }
324
302
  }
325
303
  if (config.SPMPackages && Array.isArray(config.SPMPackages)) {
326
- // to be able to add SPM the file needs to be saved
327
- // but it means we need to reload it again after spm packages addition
328
304
  this.$fs.writeFile(pbxProjPath, project.writeSync({ omitEmptyValues: true }));
329
305
  await this.applySPMPackagesToTargets([targetName], platformData, basedir, config.SPMPackages);
330
306
  project.parseSync();
@@ -394,7 +370,6 @@ class IOSWatchAppService {
394
370
  const items = this.getFolderFiles(dirPath, platformData.projectRoot, excludePatterns);
395
371
  for (const item of items) {
396
372
  const relativePath = path.relative(platformData.projectRoot, item);
397
- // Check if file is a source file by extension
398
373
  const ext = path.extname(item).toLowerCase();
399
374
  if (sourceExtensions.includes(ext)) {
400
375
  this.$logger.debug(`Adding source file: ${relativePath}`);
@@ -417,7 +392,6 @@ class IOSWatchAppService {
417
392
  return;
418
393
  }
419
394
  if (stats.isDirectory()) {
420
- // Special handling for .xcassets, .bundle - add as bundles, not recursively
421
395
  if (item.endsWith(".xcassets") || item.endsWith(".bundle")) {
422
396
  this.$logger.debug(`Adding resource bundle: ${relativePath} for target:${targetUuid}`);
423
397
  this.addResourceFile(project, relativePath, { target: targetUuid }, groupName);
@@ -446,11 +420,9 @@ class IOSWatchAppService {
446
420
  const isFolder = stats.isDirectory() && !isFramework;
447
421
  this.$logger.debug(`Adding module dependency: ${JSON.stringify(moduleDef)} to ${targetName}, basedir:${basedir}, isFramework:${isFramework} isFolder:${isFolder}`);
448
422
  if (isFramework) {
449
- // Handle compiled frameworks (xcframework, framework)
450
423
  this.addCompiledFramework(moduleDef, relativePath, targetName, target, project);
451
424
  }
452
425
  else if (isFolder) {
453
- // Handle folder-based modules
454
426
  await this.addFolderModule(moduleDef, modulePath, relativePath, targetName, target, config, project, basedir, srcExclude, resourcesExclude, projectData, platformData);
455
427
  }
456
428
  else {
@@ -474,7 +446,7 @@ class IOSWatchAppService {
474
446
  project.addFramework(relativePath, {
475
447
  target: target.uuid,
476
448
  customFramework: true,
477
- embed: moduleDef.embed !== false, // Default to true
449
+ embed: moduleDef.embed !== false,
478
450
  });
479
451
  const frameworkDir = path.dirname(relativePath);
480
452
  project.addBuildProperty("FRAMEWORK_SEARCH_PATHS", `"$(inherited)" "${frameworkDir}"`, null, targetName);
@@ -524,7 +496,6 @@ class IOSWatchAppService {
524
496
  explicitFileType: "wrapper.framework",
525
497
  ...otherProps,
526
498
  });
527
- // Add build phases
528
499
  project.addBuildPhase([], "PBXSourcesBuildPhase", "Sources", moduleTarget.uuid);
529
500
  project.addBuildPhase([], "PBXResourcesBuildPhase", "Resources", moduleTarget.uuid);
530
501
  project.addBuildPhase([], "PBXFrameworksBuildPhase", "Frameworks", moduleTarget.uuid);
@@ -582,8 +553,6 @@ class IOSWatchAppService {
582
553
  }
583
554
  }
584
555
  if (moduleDef.SPMPackages && Array.isArray(moduleDef.SPMPackages)) {
585
- // to be able to add SPM the file needs to be saved
586
- // but it means we need to reload it again after spm packages addition
587
556
  this.$fs.writeFile(project.filepath, project.writeSync({ omitEmptyValues: true }));
588
557
  await this.applySPMPackagesToTargets([moduleName], platformData, basedir, moduleDef.SPMPackages.map((t) => {
589
558
  if (typeof t === "string") {
@@ -606,9 +575,6 @@ class IOSWatchAppService {
606
575
  }
607
576
  this.$logger.debug(`Added folder-based module ${moduleName} at ${relativePath}`);
608
577
  }
609
- /**
610
- * Add linker flags to a target's build settings
611
- */
612
578
  addLinkerFlags(flags, targetName, project) {
613
579
  for (const flag of flags) {
614
580
  const currentFlags = this.getBuildProperty("OTHER_LDFLAGS", targetName, project);
@@ -624,11 +590,7 @@ class IOSWatchAppService {
624
590
  this.$logger.debug(`Added linker flag: ${flag}`);
625
591
  }
626
592
  }
627
- /**
628
- * Get build property value for a specific target
629
- */
630
593
  getBuildProperty(propertyName, targetName, project) {
631
- // Access the project hash to read build settings
632
594
  const projectHash = project.hash;
633
595
  if (!projectHash) {
634
596
  return null;
@@ -648,9 +610,6 @@ class IOSWatchAppService {
648
610
  }
649
611
  return null;
650
612
  }
651
- /**
652
- * Check if a path should be excluded based on glob patterns
653
- */
654
613
  shouldExclude(filePath, excludePatterns) {
655
614
  for (const pattern of excludePatterns) {
656
615
  const matcher = new minimatch_1.Minimatch(pattern, { dot: true });
@@ -660,9 +619,6 @@ class IOSWatchAppService {
660
619
  }
661
620
  return false;
662
621
  }
663
- /**
664
- * Apply SPM packages to watch app targets
665
- */
666
622
  async applySPMPackagesToTargets(targetNames, platformData, basedir, watchSPMPackages) {
667
623
  try {
668
624
  this.$logger.debug(`applySPMPackagesToTargets ${JSON.stringify(watchSPMPackages)}`);
@@ -681,7 +637,6 @@ class IOSWatchAppService {
681
637
  this.$logger.debug("No iOS project found via trapeze");
682
638
  return;
683
639
  }
684
- // Add SPM packages to each watch target
685
640
  for (const pkg of watchSPMPackages) {
686
641
  if ("path" in pkg) {
687
642
  pkg.path = path.resolve(basedir, pkg.path);
@@ -698,16 +653,11 @@ class IOSWatchAppService {
698
653
  this.$logger.debug(`Error applying SPM packages to targets ${targetNames} "`, err);
699
654
  }
700
655
  }
701
- /**
702
- * Get SPM packages configured for watch app targets
703
- */
704
656
  getWatchSPMPackages(platformData) {
705
657
  const $projectConfigService = yok_1.injector.resolve("projectConfigService");
706
- // Check for watch-specific SPM packages in config
707
658
  const watchPackages = $projectConfigService.getValue(`${platformData.platformNameLowerCase}.watchApp.SPMPackages`, []);
708
659
  return watchPackages;
709
660
  }
710
661
  }
711
662
  exports.IOSWatchAppService = IOSWatchAppService;
712
663
  yok_1.injector.register("iOSWatchAppService", IOSWatchAppService);
713
- //# sourceMappingURL=ios-watch-app-service.js.map
@@ -38,7 +38,6 @@ class IPService {
38
38
  return ipAddress;
39
39
  }
40
40
  async getIPAddressFromIpifyOrgAPI() {
41
- // https://www.ipify.org/
42
41
  const ipifyOrgAPIEndpoint = "https://api.ipify.org";
43
42
  let ipAddress = null;
44
43
  try {
@@ -62,4 +61,3 @@ __decorate([
62
61
  (0, decorators_1.cache)()
63
62
  ], IPService.prototype, "getCurrentIPv4Address", null);
64
63
  yok_1.injector.register("ipService", IPService);
65
- //# sourceMappingURL=ip-service.js.map
@@ -191,4 +191,3 @@ __decorate([
191
191
  (0, decorators_1.cache)()
192
192
  ], ITMSTransporterService.prototype, "getITMSTransporterPath", null);
193
193
  yok_1.injector.register("itmsTransporterService", ITMSTransporterService);
194
- //# sourceMappingURL=itmstransporter-service.js.map