nativescript 8.9.0-dev.2 → 8.9.0-dev.3

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 (403) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/android-tools-info.js +9 -32
  3. package/lib/base-package-manager.js +47 -71
  4. package/lib/bootstrap.js +1 -5
  5. package/lib/bun-package-manager.js +65 -104
  6. package/lib/color.js +2 -5
  7. package/lib/commands/add-platform.js +14 -31
  8. package/lib/commands/apple-login.js +18 -30
  9. package/lib/commands/appstore-list.js +34 -46
  10. package/lib/commands/appstore-upload.js +52 -68
  11. package/lib/commands/build.js +57 -90
  12. package/lib/commands/clean.js +161 -197
  13. package/lib/commands/command-base.js +14 -28
  14. package/lib/commands/config.js +48 -71
  15. package/lib/commands/create-project.js +210 -235
  16. package/lib/commands/debug.js +66 -93
  17. package/lib/commands/deploy.js +30 -47
  18. package/lib/commands/embedding/embed.js +33 -59
  19. package/lib/commands/extensibility/install-extension.js +5 -17
  20. package/lib/commands/extensibility/list-extensions.js +13 -25
  21. package/lib/commands/extensibility/uninstall-extension.js +4 -16
  22. package/lib/commands/fonts.js +30 -42
  23. package/lib/commands/generate-assets.js +13 -29
  24. package/lib/commands/generate-help.js +2 -14
  25. package/lib/commands/generate.js +12 -70
  26. package/lib/commands/info.js +2 -14
  27. package/lib/commands/install.js +34 -50
  28. package/lib/commands/list-platforms.js +14 -26
  29. package/lib/commands/migrate.js +15 -27
  30. package/lib/commands/native-add.js +23 -51
  31. package/lib/commands/platform-clean.js +19 -33
  32. package/lib/commands/plugin/add-plugin.js +12 -26
  33. package/lib/commands/plugin/build-plugin.js +31 -45
  34. package/lib/commands/plugin/create-plugin.js +110 -138
  35. package/lib/commands/plugin/list-plugins.js +22 -34
  36. package/lib/commands/plugin/remove-plugin.js +20 -35
  37. package/lib/commands/plugin/update-plugin.js +20 -34
  38. package/lib/commands/post-install.js +20 -39
  39. package/lib/commands/prepare.js +22 -39
  40. package/lib/commands/preview.js +49 -64
  41. package/lib/commands/remove-platform.js +7 -19
  42. package/lib/commands/resources/resources-update.js +13 -28
  43. package/lib/commands/run.js +55 -77
  44. package/lib/commands/setup.js +0 -1
  45. package/lib/commands/start.js +6 -20
  46. package/lib/commands/test-init.js +123 -138
  47. package/lib/commands/test.js +67 -97
  48. package/lib/commands/typings.js +126 -143
  49. package/lib/commands/update-platform.js +22 -40
  50. package/lib/commands/update.js +30 -45
  51. package/lib/commands/widget.js +390 -352
  52. package/lib/common/bootstrap.js +0 -1
  53. package/lib/common/child-process.js +53 -75
  54. package/lib/common/codeGeneration/code-entity.js +1 -2
  55. package/lib/common/codeGeneration/code-printer.js +1 -2
  56. package/lib/common/command-params.js +7 -19
  57. package/lib/common/commands/analytics.js +27 -43
  58. package/lib/common/commands/autocompletion.js +39 -59
  59. package/lib/common/commands/device/device-log-stream.js +12 -24
  60. package/lib/common/commands/device/get-file.js +22 -35
  61. package/lib/common/commands/device/list-applications.js +12 -24
  62. package/lib/common/commands/device/list-devices.js +72 -90
  63. package/lib/common/commands/device/list-files.js +23 -36
  64. package/lib/common/commands/device/put-file.js +22 -35
  65. package/lib/common/commands/device/run-application.js +12 -26
  66. package/lib/common/commands/device/stop-application.js +11 -23
  67. package/lib/common/commands/device/uninstall-application.js +6 -18
  68. package/lib/common/commands/doctor.js +2 -3
  69. package/lib/common/commands/generate-messages.js +17 -29
  70. package/lib/common/commands/help.js +20 -34
  71. package/lib/common/commands/package-manager-get.js +6 -18
  72. package/lib/common/commands/package-manager-set.js +9 -21
  73. package/lib/common/commands/post-install.js +2 -14
  74. package/lib/common/commands/preuninstall.js +24 -48
  75. package/lib/common/commands/proxy/proxy-base.js +8 -23
  76. package/lib/common/commands/proxy/proxy-clear.js +4 -16
  77. package/lib/common/commands/proxy/proxy-get.js +3 -15
  78. package/lib/common/commands/proxy/proxy-set.js +87 -101
  79. package/lib/common/common-lib.js +0 -1
  80. package/lib/common/constants.js +11 -22
  81. package/lib/common/decorators.js +10 -70
  82. package/lib/common/dispatchers.js +80 -106
  83. package/lib/common/errors.js +91 -116
  84. package/lib/common/file-system.js +108 -141
  85. package/lib/common/header.js +1 -5
  86. package/lib/common/helpers.js +152 -267
  87. package/lib/common/host-info.js +37 -54
  88. package/lib/common/http-client.js +93 -128
  89. package/lib/common/logger/appenders/cli-appender.js +1 -6
  90. package/lib/common/logger/appenders/emit-appender.js +1 -6
  91. package/lib/common/logger/layouts/cli-layout.js +1 -3
  92. package/lib/common/logger/logger.js +4 -9
  93. package/lib/common/messages/messages.js +0 -6
  94. package/lib/common/mobile/android/android-application-manager.js +122 -162
  95. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -2
  96. package/lib/common/mobile/android/android-debug-bridge.js +87 -118
  97. package/lib/common/mobile/android/android-device-file-system.js +98 -135
  98. package/lib/common/mobile/android/android-device-hash-service.js +50 -78
  99. package/lib/common/mobile/android/android-device.js +68 -93
  100. package/lib/common/mobile/android/android-emulator-services.js +105 -131
  101. package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
  102. package/lib/common/mobile/android/android-log-filter.js +1 -5
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -123
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -30
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -123
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -92
  107. package/lib/common/mobile/android/logcat-helper.js +108 -140
  108. package/lib/common/mobile/application-manager-base.js +84 -113
  109. package/lib/common/mobile/device-emitter.js +0 -4
  110. package/lib/common/mobile/device-log-emitter.js +0 -1
  111. package/lib/common/mobile/device-log-provider-base.js +7 -19
  112. package/lib/common/mobile/device-log-provider.js +0 -23
  113. package/lib/common/mobile/device-platforms-constants.js +0 -1
  114. package/lib/common/mobile/emulator-helper.js +0 -3
  115. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -111
  116. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -106
  117. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -146
  118. package/lib/common/mobile/ios/device/ios-device.js +20 -40
  119. package/lib/common/mobile/ios/ios-device-base.js +58 -82
  120. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
  121. package/lib/common/mobile/ios/ios-log-filter.js +0 -1
  122. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -96
  123. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -2
  124. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -95
  125. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -48
  126. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -63
  127. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -36
  128. package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
  129. package/lib/common/mobile/log-filter.js +0 -2
  130. package/lib/common/mobile/logging-levels.js +0 -1
  131. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -64
  132. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -35
  133. package/lib/common/mobile/mobile-core/android-process-service.js +143 -214
  134. package/lib/common/mobile/mobile-core/device-discovery.js +2 -14
  135. package/lib/common/mobile/mobile-core/devices-service.js +386 -505
  136. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -37
  137. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -65
  138. package/lib/common/mobile/mobile-helper.js +15 -27
  139. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -53
  140. package/lib/common/opener.js +2 -3
  141. package/lib/common/os-info.js +0 -1
  142. package/lib/common/plist-parser.js +0 -1
  143. package/lib/common/project-helper.js +0 -1
  144. package/lib/common/prompter.js +91 -114
  145. package/lib/common/queue.js +9 -21
  146. package/lib/common/resource-loader.js +0 -1
  147. package/lib/common/services/auto-completion-service.js +40 -65
  148. package/lib/common/services/cancellation.js +17 -29
  149. package/lib/common/services/commands-service.js +146 -180
  150. package/lib/common/services/help-service.js +133 -166
  151. package/lib/common/services/hooks-service.js +93 -121
  152. package/lib/common/services/ios-notification-service.js +21 -35
  153. package/lib/common/services/json-file-settings-service.js +52 -77
  154. package/lib/common/services/lock-service.js +35 -58
  155. package/lib/common/services/message-contract-generator.js +35 -47
  156. package/lib/common/services/messages-service.js +0 -1
  157. package/lib/common/services/micro-templating-service.js +4 -21
  158. package/lib/common/services/net-service.js +90 -110
  159. package/lib/common/services/project-files-manager.js +10 -28
  160. package/lib/common/services/project-files-provider-base.js +0 -1
  161. package/lib/common/services/proxy-service.js +13 -25
  162. package/lib/common/services/qr.js +13 -25
  163. package/lib/common/services/settings-service.js +1 -2
  164. package/lib/common/services/xcode-select-service.js +20 -36
  165. package/lib/common/utils.js +2 -3
  166. package/lib/common/validators/project-name-validator.js +1 -2
  167. package/lib/common/validators/validation-result.js +1 -2
  168. package/lib/common/verify-node-version.js +3 -11
  169. package/lib/common/yok.js +35 -69
  170. package/lib/config.js +36 -72
  171. package/lib/constants-provider.js +0 -1
  172. package/lib/constants.js +24 -77
  173. package/lib/controllers/build-controller.js +82 -100
  174. package/lib/controllers/debug-controller.js +107 -133
  175. package/lib/controllers/deploy-controller.js +15 -24
  176. package/lib/controllers/migrate-controller.js +723 -884
  177. package/lib/controllers/platform-controller.js +71 -94
  178. package/lib/controllers/prepare-controller.js +232 -274
  179. package/lib/controllers/run-controller.js +397 -427
  180. package/lib/controllers/update-controller-base.js +16 -30
  181. package/lib/controllers/update-controller.js +94 -130
  182. package/lib/data/build-data.js +0 -1
  183. package/lib/data/controller-data-base.js +0 -1
  184. package/lib/data/debug-data.js +0 -1
  185. package/lib/data/platform-data.js +0 -1
  186. package/lib/data/prepare-data.js +4 -2
  187. package/lib/data/run-data.js +0 -1
  188. package/lib/definitions/project.d.ts +24 -24
  189. package/lib/detached-processes/cleanup-js-subprocess.js +5 -20
  190. package/lib/detached-processes/cleanup-process.js +30 -43
  191. package/lib/detached-processes/file-log-service.js +1 -2
  192. package/lib/device-path-provider.js +23 -35
  193. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -171
  194. package/lib/device-sockets/ios/notification.js +1 -4
  195. package/lib/device-sockets/ios/socket-request-executor.js +24 -42
  196. package/lib/helpers/android-bundle-validator-helper.js +2 -3
  197. package/lib/helpers/deploy-command-helper.js +44 -50
  198. package/lib/helpers/key-command-helper.js +6 -17
  199. package/lib/helpers/livesync-command-helper.js +137 -155
  200. package/lib/helpers/network-connectivity-validator.js +6 -18
  201. package/lib/helpers/options-track-helper.js +7 -19
  202. package/lib/helpers/package-path-helper.js +0 -1
  203. package/lib/helpers/platform-command-helper.js +101 -127
  204. package/lib/helpers/version-validator-helper.js +0 -1
  205. package/lib/key-commands/bootstrap.js +2 -3
  206. package/lib/key-commands/index.js +154 -205
  207. package/lib/nativescript-cli-lib-bootstrap.js +0 -4
  208. package/lib/nativescript-cli-lib.js +0 -1
  209. package/lib/nativescript-cli.js +6 -24
  210. package/lib/node/pbxproj-dom-xcode.js +0 -1
  211. package/lib/node/xcode.js +0 -1
  212. package/lib/node-package-manager.js +81 -114
  213. package/lib/options.js +122 -156
  214. package/lib/package-installation-manager.js +130 -172
  215. package/lib/package-manager.js +63 -88
  216. package/lib/platform-command-param.js +4 -16
  217. package/lib/pnpm-package-manager.js +59 -81
  218. package/lib/project-data.js +1 -13
  219. package/lib/providers/project-files-provider.js +1 -2
  220. package/lib/resolvers/livesync-service-resolver.js +0 -1
  221. package/lib/services/analytics/analytics-broker-process.js +19 -32
  222. package/lib/services/analytics/analytics-broker.js +17 -31
  223. package/lib/services/analytics/analytics-service.js +170 -210
  224. package/lib/services/analytics/google-analytics-provider.js +43 -59
  225. package/lib/services/analytics-settings-service.js +15 -37
  226. package/lib/services/android/android-bundle-tool-service.js +43 -61
  227. package/lib/services/android/gradle-build-args-service.js +9 -23
  228. package/lib/services/android/gradle-build-service.js +22 -36
  229. package/lib/services/android/gradle-command-service.js +22 -36
  230. package/lib/services/android-device-debug-service.js +90 -123
  231. package/lib/services/android-plugin-build-service.js +205 -260
  232. package/lib/services/android-project-service.js +129 -241
  233. package/lib/services/android-resources-migration-service.js +51 -71
  234. package/lib/services/apple-portal/apple-portal-application-service.js +46 -64
  235. package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
  236. package/lib/services/apple-portal/apple-portal-session-service.js +197 -218
  237. package/lib/services/apple-portal/srp/srp-wrapper.js +43 -61
  238. package/lib/services/assets-generation/assets-generation-service.js +103 -128
  239. package/lib/services/build-artifacts-service.js +10 -22
  240. package/lib/services/build-data-service.js +0 -1
  241. package/lib/services/build-info-file-service.js +20 -36
  242. package/lib/services/cleanup-service.js +48 -81
  243. package/lib/services/cocoapods-platform-manager.js +0 -9
  244. package/lib/services/cocoapods-service.js +112 -153
  245. package/lib/services/debug-data-service.js +0 -1
  246. package/lib/services/debug-service-base.js +0 -7
  247. package/lib/services/device/device-install-app-service.js +54 -72
  248. package/lib/services/doctor-service.js +101 -135
  249. package/lib/services/extensibility-service.js +81 -108
  250. package/lib/services/files-hash-service.js +26 -44
  251. package/lib/services/hmr-status-service.js +1 -3
  252. package/lib/services/info-service.js +0 -1
  253. package/lib/services/initialize-service.js +37 -54
  254. package/lib/services/ios/export-options-plist-service.js +38 -55
  255. package/lib/services/ios/ios-signing-service.js +168 -191
  256. package/lib/services/ios/spm-service.js +46 -70
  257. package/lib/services/ios/xcodebuild-args-service.js +77 -103
  258. package/lib/services/ios/xcodebuild-command-service.js +14 -26
  259. package/lib/services/ios/xcodebuild-service.js +52 -72
  260. package/lib/services/ios-debugger-port-service.js +24 -38
  261. package/lib/services/ios-device-debug-service.js +75 -103
  262. package/lib/services/ios-entitlements-service.js +31 -43
  263. package/lib/services/ios-extensions-service.js +18 -30
  264. package/lib/services/ios-log-filter.js +0 -20
  265. package/lib/services/ios-native-target-service.js +4 -6
  266. package/lib/services/ios-project-service.js +452 -603
  267. package/lib/services/ios-provision-service.js +108 -132
  268. package/lib/services/ios-watch-app-service.js +21 -33
  269. package/lib/services/ip-service.js +38 -55
  270. package/lib/services/itmstransporter-service.js +129 -153
  271. package/lib/services/karma-execution.js +0 -2
  272. package/lib/services/livesync/android-device-livesync-service-base.js +31 -49
  273. package/lib/services/livesync/android-device-livesync-service.js +120 -151
  274. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -155
  275. package/lib/services/livesync/android-livesync-service.js +14 -36
  276. package/lib/services/livesync/android-livesync-tool.js +90 -117
  277. package/lib/services/livesync/device-livesync-service-base.js +15 -30
  278. package/lib/services/livesync/ios-device-livesync-service.js +114 -150
  279. package/lib/services/livesync/ios-livesync-service.js +42 -60
  280. package/lib/services/livesync/livesync-socket.js +0 -1
  281. package/lib/services/livesync/platform-livesync-service-base.js +94 -124
  282. package/lib/services/livesync-process-data-service.js +0 -1
  283. package/lib/services/log-parser-service.js +1 -2
  284. package/lib/services/log-source-map-service.js +30 -56
  285. package/lib/services/marking-mode-service.js +17 -33
  286. package/lib/services/metadata-filtering-service.js +0 -1
  287. package/lib/services/npm-config-service.js +1 -5
  288. package/lib/services/pacote-service.js +49 -71
  289. package/lib/services/performance-service.js +2 -4
  290. package/lib/services/platform/add-platform-service.js +51 -119
  291. package/lib/services/platform/platform-validation-service.js +22 -34
  292. package/lib/services/platform/prepare-native-platform-service.js +49 -65
  293. package/lib/services/platform-environment-requirements.js +27 -43
  294. package/lib/services/platform-project-service-base.js +0 -1
  295. package/lib/services/platforms-data-service.js +0 -1
  296. package/lib/services/plugins-service.js +125 -168
  297. package/lib/services/prepare-data-service.js +0 -1
  298. package/lib/services/project-backup-service.js +1 -5
  299. package/lib/services/project-changes-service.js +124 -152
  300. package/lib/services/project-cleanup-service.js +64 -79
  301. package/lib/services/project-config-service.js +73 -102
  302. package/lib/services/project-data-service.js +108 -154
  303. package/lib/services/project-name-service.js +28 -44
  304. package/lib/services/project-service.js +84 -113
  305. package/lib/services/project-templates-service.js +52 -68
  306. package/lib/services/qr-code-terminal-service.js +0 -1
  307. package/lib/services/require-service.js +0 -1
  308. package/lib/services/start-service.js +41 -60
  309. package/lib/services/temp-service.js +8 -22
  310. package/lib/services/terminal-spinner-service.js +15 -28
  311. package/lib/services/test-execution-service.js +59 -79
  312. package/lib/services/test-initialization-service.js +2 -6
  313. package/lib/services/timeline-profiler-service.js +1 -2
  314. package/lib/services/user-settings-service.js +0 -1
  315. package/lib/services/versions-service.js +119 -140
  316. package/lib/services/watch-ignore-list-service.js +0 -1
  317. package/lib/services/webpack/webpack-compiler-service.js +215 -279
  318. package/lib/services/xcconfig-service.js +8 -21
  319. package/lib/services/xcproj-service.js +0 -1
  320. package/lib/shared-event-bus.js +0 -6
  321. package/lib/sys-info.js +45 -63
  322. package/lib/tools/config-manipulation/config-transformer.js +0 -12
  323. package/lib/tools/node-modules/node-modules-builder.js +16 -28
  324. package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
  325. package/lib/yarn-package-manager.js +59 -79
  326. package/lib/yarn2-package-manager.js +60 -82
  327. package/package.json +65 -80
  328. package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
  329. package/node_modules/@npmcli/move-file/README.md +0 -69
  330. package/node_modules/@npmcli/move-file/lib/index.js +0 -185
  331. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
  342. package/node_modules/@npmcli/move-file/package.json +0 -47
  343. package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  344. package/node_modules/balanced-match/LICENSE.md +0 -21
  345. package/node_modules/balanced-match/README.md +0 -97
  346. package/node_modules/balanced-match/index.js +0 -62
  347. package/node_modules/balanced-match/package.json +0 -48
  348. package/node_modules/concat-map/.travis.yml +0 -4
  349. package/node_modules/concat-map/LICENSE +0 -18
  350. package/node_modules/concat-map/README.markdown +0 -62
  351. package/node_modules/concat-map/example/map.js +0 -6
  352. package/node_modules/concat-map/index.js +0 -13
  353. package/node_modules/concat-map/package.json +0 -43
  354. package/node_modules/concat-map/test/map.js +0 -39
  355. package/node_modules/fs.realpath/LICENSE +0 -43
  356. package/node_modules/fs.realpath/README.md +0 -33
  357. package/node_modules/fs.realpath/index.js +0 -66
  358. package/node_modules/fs.realpath/old.js +0 -303
  359. package/node_modules/fs.realpath/package.json +0 -26
  360. package/node_modules/inflight/LICENSE +0 -15
  361. package/node_modules/inflight/README.md +0 -37
  362. package/node_modules/inflight/inflight.js +0 -54
  363. package/node_modules/inflight/package.json +0 -29
  364. package/node_modules/inherits/LICENSE +0 -16
  365. package/node_modules/inherits/README.md +0 -42
  366. package/node_modules/inherits/inherits.js +0 -9
  367. package/node_modules/inherits/inherits_browser.js +0 -27
  368. package/node_modules/inherits/package.json +0 -29
  369. package/node_modules/once/LICENSE +0 -15
  370. package/node_modules/once/README.md +0 -79
  371. package/node_modules/once/once.js +0 -42
  372. package/node_modules/once/package.json +0 -33
  373. package/node_modules/path-is-absolute/index.js +0 -20
  374. package/node_modules/path-is-absolute/license +0 -21
  375. package/node_modules/path-is-absolute/package.json +0 -43
  376. package/node_modules/path-is-absolute/readme.md +0 -59
  377. package/node_modules/rimraf/LICENSE +0 -15
  378. package/node_modules/rimraf/README.md +0 -101
  379. package/node_modules/rimraf/bin.js +0 -68
  380. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
  381. package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
  382. package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
  383. package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
  384. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
  385. package/node_modules/rimraf/node_modules/glob/README.md +0 -378
  386. package/node_modules/rimraf/node_modules/glob/common.js +0 -238
  387. package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
  388. package/node_modules/rimraf/node_modules/glob/package.json +0 -55
  389. package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
  390. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  391. package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
  392. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
  393. package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
  394. package/node_modules/rimraf/package.json +0 -32
  395. package/node_modules/rimraf/rimraf.js +0 -360
  396. package/node_modules/stringify-package/LICENSE +0 -13
  397. package/node_modules/stringify-package/README.md +0 -55
  398. package/node_modules/stringify-package/index.js +0 -18
  399. package/node_modules/stringify-package/package.json +0 -38
  400. package/node_modules/wrappy/LICENSE +0 -15
  401. package/node_modules/wrappy/README.md +0 -36
  402. package/node_modules/wrappy/package.json +0 -29
  403. package/node_modules/wrappy/wrappy.js +0 -33
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.IOSProjectService = exports.VisionSimulatorPlatformSdkName = exports.VisionDevicePlatformSdkName = exports.SimulatorPlatformSdkName = exports.DevicePlatformSdkName = void 0;
19
10
  const path = require("path");
@@ -147,127 +138,112 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
147
138
  ".ico",
148
139
  ".cur",
149
140
  ".xbm",
150
- ], // https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/
141
+ ],
151
142
  };
152
143
  }
153
144
  return this._platformData;
154
145
  }
155
- validateOptions(projectId, provision, teamId) {
156
- return __awaiter(this, void 0, void 0, function* () {
157
- if (provision && teamId) {
158
- this.$errors.fail("The options --provision and --teamId are mutually exclusive.");
159
- }
160
- if (provision === true) {
161
- yield this.$iOSProvisionService.listProvisions(projectId);
162
- this.$errors.fail("Please provide provisioning profile uuid or name with the --provision option.");
163
- }
164
- if (teamId === true) {
165
- yield this.$iOSProvisionService.listTeams();
166
- this.$errors.fail("Please provide team id or team name with the --teamId options.");
167
- }
168
- return true;
169
- });
146
+ async validateOptions(projectId, provision, teamId) {
147
+ if (provision && teamId) {
148
+ this.$errors.fail("The options --provision and --teamId are mutually exclusive.");
149
+ }
150
+ if (provision === true) {
151
+ await this.$iOSProvisionService.listProvisions(projectId);
152
+ this.$errors.fail("Please provide provisioning profile uuid or name with the --provision option.");
153
+ }
154
+ if (teamId === true) {
155
+ await this.$iOSProvisionService.listTeams();
156
+ this.$errors.fail("Please provide team id or team name with the --teamId options.");
157
+ }
158
+ return true;
170
159
  }
171
160
  getAppResourcesDestinationDirectoryPath(projectData) {
172
161
  return path.join(this.getPlatformData(projectData).projectRoot, projectData.projectName, "Resources");
173
162
  }
174
- validate(projectData, options, notConfiguredEnvOptions) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- if (!this.$hostInfo.isDarwin) {
177
- return;
178
- }
179
- const checkEnvironmentRequirementsOutput = yield this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
180
- platform: this.getPlatformData(projectData).normalizedPlatformName,
181
- projectDir: projectData.projectDir,
182
- options,
183
- notConfiguredEnvOptions,
184
- });
185
- if (checkEnvironmentRequirementsOutput &&
186
- checkEnvironmentRequirementsOutput.canExecute) {
187
- const xcodeWarning = yield this.$sysInfo.getXcodeWarning();
188
- if (xcodeWarning) {
189
- this.$logger.warn(xcodeWarning);
190
- }
191
- }
192
- return {
193
- checkEnvironmentRequirementsOutput,
194
- };
195
- });
196
- }
197
- createProject(frameworkDir, frameworkVersion, projectData) {
198
- return __awaiter(this, void 0, void 0, function* () {
199
- this.$fs.ensureDirectoryExists(path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER));
200
- shell.cp("-R", path.join(frameworkDir, "*"), this.getPlatformData(projectData).projectRoot);
163
+ async validate(projectData, options, notConfiguredEnvOptions) {
164
+ if (!this.$hostInfo.isDarwin) {
165
+ return;
166
+ }
167
+ const checkEnvironmentRequirementsOutput = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
168
+ platform: this.getPlatformData(projectData).normalizedPlatformName,
169
+ projectDir: projectData.projectDir,
170
+ options,
171
+ notConfiguredEnvOptions,
201
172
  });
202
- }
203
- //TODO: plamen5kov: revisit this method, might have unnecessary/obsolete logic
204
- interpolateData(projectData) {
205
- return __awaiter(this, void 0, void 0, function* () {
206
- const projectRootFilePath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER);
207
- // Starting with NativeScript for iOS 1.6.0, the project Info.plist file resides not in the platform project,
208
- // but in the hello-world app template as a platform specific resource.
209
- if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + "-Info.plist"))) {
210
- this.replaceFileName("-Info.plist", projectRootFilePath, projectData);
211
- }
212
- this.replaceFileName("-Prefix.pch", projectRootFilePath, projectData);
213
- if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + ".entitlements"))) {
214
- this.replaceFileName(".entitlements", projectRootFilePath, projectData);
215
- }
216
- const xcschemeDirPath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
217
- constants_2.IosProjectConstants.XcodeProjExtName, "xcshareddata/xcschemes");
218
- const xcschemeFilePath = path.join(xcschemeDirPath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
219
- constants_2.IosProjectConstants.XcodeSchemeExtName);
220
- if (this.$fs.exists(xcschemeFilePath)) {
221
- this.$logger.trace("Found shared scheme at xcschemeFilePath, renaming to match project name.");
222
- this.$logger.trace("Checkpoint 0");
223
- this.replaceFileContent(xcschemeFilePath, projectData);
224
- this.$logger.trace("Checkpoint 1");
225
- this.replaceFileName(constants_2.IosProjectConstants.XcodeSchemeExtName, xcschemeDirPath, projectData);
226
- this.$logger.trace("Checkpoint 2");
227
- }
228
- else {
229
- this.$logger.trace("Copying xcscheme from template not found at " + xcschemeFilePath);
230
- }
231
- this.replaceFileName(constants_2.IosProjectConstants.XcodeProjExtName, this.getPlatformData(projectData).projectRoot, projectData);
232
- const pbxprojFilePath = this.getPbxProjPath(projectData);
233
- this.replaceFileContent(pbxprojFilePath, projectData);
234
- const internalDirPath = path.join(projectRootFilePath, "..", "internal");
235
- const xcframeworksFilePath = path.join(internalDirPath, "XCFrameworks.zip");
236
- if (this.$fs.exists(xcframeworksFilePath)) {
237
- yield this.$fs.unzip(xcframeworksFilePath, internalDirPath);
238
- this.$fs.deleteFile(xcframeworksFilePath);
173
+ if (checkEnvironmentRequirementsOutput &&
174
+ checkEnvironmentRequirementsOutput.canExecute) {
175
+ const xcodeWarning = await this.$sysInfo.getXcodeWarning();
176
+ if (xcodeWarning) {
177
+ this.$logger.warn(xcodeWarning);
239
178
  }
240
- });
179
+ }
180
+ return {
181
+ checkEnvironmentRequirementsOutput,
182
+ };
183
+ }
184
+ async createProject(frameworkDir, frameworkVersion, projectData) {
185
+ this.$fs.ensureDirectoryExists(path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER));
186
+ shell.cp("-R", path.join(frameworkDir, "*"), this.getPlatformData(projectData).projectRoot);
187
+ }
188
+ async interpolateData(projectData) {
189
+ const projectRootFilePath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER);
190
+ if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + "-Info.plist"))) {
191
+ this.replaceFileName("-Info.plist", projectRootFilePath, projectData);
192
+ }
193
+ this.replaceFileName("-Prefix.pch", projectRootFilePath, projectData);
194
+ if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + ".entitlements"))) {
195
+ this.replaceFileName(".entitlements", projectRootFilePath, projectData);
196
+ }
197
+ const xcschemeDirPath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
198
+ constants_2.IosProjectConstants.XcodeProjExtName, "xcshareddata/xcschemes");
199
+ const xcschemeFilePath = path.join(xcschemeDirPath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
200
+ constants_2.IosProjectConstants.XcodeSchemeExtName);
201
+ if (this.$fs.exists(xcschemeFilePath)) {
202
+ this.$logger.trace("Found shared scheme at xcschemeFilePath, renaming to match project name.");
203
+ this.$logger.trace("Checkpoint 0");
204
+ this.replaceFileContent(xcschemeFilePath, projectData);
205
+ this.$logger.trace("Checkpoint 1");
206
+ this.replaceFileName(constants_2.IosProjectConstants.XcodeSchemeExtName, xcschemeDirPath, projectData);
207
+ this.$logger.trace("Checkpoint 2");
208
+ }
209
+ else {
210
+ this.$logger.trace("Copying xcscheme from template not found at " + xcschemeFilePath);
211
+ }
212
+ this.replaceFileName(constants_2.IosProjectConstants.XcodeProjExtName, this.getPlatformData(projectData).projectRoot, projectData);
213
+ const pbxprojFilePath = this.getPbxProjPath(projectData);
214
+ this.replaceFileContent(pbxprojFilePath, projectData);
215
+ const internalDirPath = path.join(projectRootFilePath, "..", "internal");
216
+ const xcframeworksFilePath = path.join(internalDirPath, "XCFrameworks.zip");
217
+ if (this.$fs.exists(xcframeworksFilePath)) {
218
+ await this.$fs.unzip(xcframeworksFilePath, internalDirPath);
219
+ this.$fs.deleteFile(xcframeworksFilePath);
220
+ }
241
221
  }
242
222
  interpolateConfigurationFile(projectData) {
243
223
  return undefined;
244
224
  }
245
- cleanProject(projectRoot, projectData) {
246
- return __awaiter(this, void 0, void 0, function* () {
247
- return null;
248
- });
225
+ async cleanProject(projectRoot, projectData) {
226
+ return null;
249
227
  }
250
228
  afterCreateProject(projectRoot, projectData) {
251
229
  this.$fs.rename(path.join(projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER), path.join(projectRoot, projectData.projectName));
252
230
  }
253
- buildProject(projectRoot, projectData, buildData) {
254
- return __awaiter(this, void 0, void 0, function* () {
255
- const platformData = this.getPlatformData(projectData);
256
- const handler = (data) => {
257
- this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data);
258
- };
259
- if (buildData.buildForDevice) {
260
- yield this.$iOSSigningService.setupSigningForDevice(projectRoot, projectData, buildData);
261
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForDevice(platformData, projectData, buildData));
262
- }
263
- else if (buildData.buildForAppStore) {
264
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForAppStore(platformData, projectData, buildData));
265
- }
266
- else {
267
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForSimulator(platformData, projectData, buildData));
268
- }
269
- this.validateApplicationIdentifier(projectData);
270
- });
231
+ async buildProject(projectRoot, projectData, buildData) {
232
+ const platformData = this.getPlatformData(projectData);
233
+ const handler = (data) => {
234
+ this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data);
235
+ };
236
+ if (buildData.buildForDevice) {
237
+ await this.$iOSSigningService.setupSigningForDevice(projectRoot, projectData, buildData);
238
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForDevice(platformData, projectData, buildData));
239
+ }
240
+ else if (buildData.buildForAppStore) {
241
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForAppStore(platformData, projectData, buildData));
242
+ }
243
+ else {
244
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForSimulator(platformData, projectData, buildData));
245
+ }
246
+ this.validateApplicationIdentifier(projectData);
271
247
  }
272
248
  isPlatformPrepared(projectRoot, projectData) {
273
249
  return this.$fs.exists(path.join(projectRoot, projectData.projectName, constants.APP_FOLDER_NAME));
@@ -275,210 +251,136 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
275
251
  cleanDeviceTempFolder(deviceIdentifier) {
276
252
  return Promise.resolve();
277
253
  }
278
- isDynamicFramework(frameworkPath) {
279
- return __awaiter(this, void 0, void 0, function* () {
280
- const isDynamicFrameworkBundle = (bundlePath, frameworkName) => __awaiter(this, void 0, void 0, function* () {
281
- const frameworkBinaryPath = path.join(bundlePath, frameworkName);
282
- const fileResult = (yield this.$childProcess.spawnFromEvent("file", [frameworkBinaryPath], "close")).stdout;
283
- const isDynamicallyLinked = _.includes(fileResult, "dynamically linked");
284
- return isDynamicallyLinked;
285
- });
286
- if (path.extname(frameworkPath) === ".xcframework") {
287
- let isDynamic = true;
288
- const plistJson = this.$plistParser.parseFileSync(path.join(frameworkPath, "Info.plist"));
289
- for (const library of plistJson.AvailableLibraries) {
290
- const singlePlatformFramework = path.join(frameworkPath, library.LibraryIdentifier, library.LibraryPath);
291
- if (this.$fs.exists(singlePlatformFramework)) {
292
- const frameworkName = path.basename(singlePlatformFramework, path.extname(singlePlatformFramework));
293
- isDynamic = yield isDynamicFrameworkBundle(singlePlatformFramework, frameworkName);
294
- break;
295
- }
254
+ async isDynamicFramework(frameworkPath) {
255
+ const isDynamicFrameworkBundle = async (bundlePath, frameworkName) => {
256
+ const frameworkBinaryPath = path.join(bundlePath, frameworkName);
257
+ const fileResult = (await this.$childProcess.spawnFromEvent("file", [frameworkBinaryPath], "close")).stdout;
258
+ const isDynamicallyLinked = _.includes(fileResult, "dynamically linked");
259
+ return isDynamicallyLinked;
260
+ };
261
+ if (path.extname(frameworkPath) === ".xcframework") {
262
+ let isDynamic = true;
263
+ const plistJson = this.$plistParser.parseFileSync(path.join(frameworkPath, "Info.plist"));
264
+ for (const library of plistJson.AvailableLibraries) {
265
+ const singlePlatformFramework = path.join(frameworkPath, library.LibraryIdentifier, library.LibraryPath);
266
+ if (this.$fs.exists(singlePlatformFramework)) {
267
+ const frameworkName = path.basename(singlePlatformFramework, path.extname(singlePlatformFramework));
268
+ isDynamic = await isDynamicFrameworkBundle(singlePlatformFramework, frameworkName);
269
+ break;
296
270
  }
297
- return isDynamic;
298
- }
299
- else {
300
- const frameworkName = path.basename(frameworkPath, path.extname(frameworkPath));
301
- return yield isDynamicFrameworkBundle(frameworkPath, frameworkName);
302
271
  }
303
- });
272
+ return isDynamic;
273
+ }
274
+ else {
275
+ const frameworkName = path.basename(frameworkPath, path.extname(frameworkPath));
276
+ return await isDynamicFrameworkBundle(frameworkPath, frameworkName);
277
+ }
304
278
  }
305
- addFramework(frameworkPath, projectData) {
306
- return __awaiter(this, void 0, void 0, function* () {
307
- if (this.$hostInfo.isWindows) {
308
- return;
309
- }
310
- this.validateFramework(frameworkPath);
311
- const project = this.createPbxProj(projectData);
312
- const frameworkAddOptions = { customFramework: true };
313
- const dynamic = yield this.isDynamicFramework(frameworkPath);
314
- if (dynamic) {
315
- frameworkAddOptions["embed"] = true;
316
- frameworkAddOptions["sign"] = true;
317
- }
318
- if (this.$options.hostProjectPath) {
319
- // always mark xcframeworks for embedding
320
- frameworkAddOptions["embed"] = true;
321
- frameworkAddOptions["sign"] = false;
322
- }
323
- // Note: we used to prepend "$(SRCROOT)/" to the framework path, but seems like it's not needed anymore
324
- // "$(SRCROOT)/" +
325
- const frameworkRelativePath = this.getLibSubpathRelativeToProjectPath(frameworkPath, projectData);
326
- project.addFramework(frameworkRelativePath, frameworkAddOptions);
327
- // filePathsArray, buildPhaseType, comment, target, optionsOrFolderType, subfolderPath
328
- // project.addBuildPhase(
329
- // [],
330
- // "PBXShellScriptBuildPhase",
331
- // "Debug SRCROOT",
332
- // undefined,
333
- // {
334
- // shellPath: "/bin/sh",
335
- // shellScript: `echo "SRCROOT: $SRCROOT"`,
336
- // }
337
- // );
338
- this.savePbxProj(project, projectData);
339
- });
279
+ async addFramework(frameworkPath, projectData) {
280
+ if (this.$hostInfo.isWindows) {
281
+ return;
282
+ }
283
+ this.validateFramework(frameworkPath);
284
+ const project = this.createPbxProj(projectData);
285
+ const frameworkAddOptions = { customFramework: true };
286
+ const dynamic = await this.isDynamicFramework(frameworkPath);
287
+ if (dynamic) {
288
+ frameworkAddOptions["embed"] = true;
289
+ frameworkAddOptions["sign"] = true;
290
+ }
291
+ if (this.$options.hostProjectPath) {
292
+ frameworkAddOptions["embed"] = true;
293
+ frameworkAddOptions["sign"] = false;
294
+ }
295
+ const frameworkRelativePath = this.getLibSubpathRelativeToProjectPath(frameworkPath, projectData);
296
+ project.addFramework(frameworkRelativePath, frameworkAddOptions);
297
+ this.savePbxProj(project, projectData);
340
298
  }
341
- addStaticLibrary(staticLibPath, projectData) {
342
- return __awaiter(this, void 0, void 0, function* () {
343
- // Copy files to lib folder.
344
- const libraryName = path.basename(staticLibPath, ".a");
345
- const headersSubpath = path.join(path.dirname(staticLibPath), "include", libraryName);
346
- // Add static library to project file and setup header search paths
347
- const project = this.createPbxProj(projectData);
348
- const relativeStaticLibPath = this.getLibSubpathRelativeToProjectPath(staticLibPath, projectData);
349
- project.addFramework(relativeStaticLibPath);
350
- const relativeHeaderSearchPath = path.join(this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData));
351
- project.addToHeaderSearchPaths({ relativePath: relativeHeaderSearchPath });
352
- this.generateModulemap(headersSubpath, libraryName);
353
- this.savePbxProj(project, projectData);
354
- });
299
+ async addStaticLibrary(staticLibPath, projectData) {
300
+ const libraryName = path.basename(staticLibPath, ".a");
301
+ const headersSubpath = path.join(path.dirname(staticLibPath), "include", libraryName);
302
+ const project = this.createPbxProj(projectData);
303
+ const relativeStaticLibPath = this.getLibSubpathRelativeToProjectPath(staticLibPath, projectData);
304
+ project.addFramework(relativeStaticLibPath);
305
+ const relativeHeaderSearchPath = path.join(this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData));
306
+ project.addToHeaderSearchPaths({ relativePath: relativeHeaderSearchPath });
307
+ this.generateModulemap(headersSubpath, libraryName);
308
+ this.savePbxProj(project, projectData);
355
309
  }
356
- prepareProject(projectData, prepareData) {
357
- return __awaiter(this, void 0, void 0, function* () {
358
- const projectRoot = this.$options.hostProjectPath
359
- ? this.$options.hostProjectPath
360
- : path.join(projectData.platformsDir, this.$devicePlatformsConstants.iOS.toLowerCase());
361
- const platformData = this.getPlatformData(projectData);
362
- const pluginsData = this.getAllProductionPlugins(projectData);
363
- const pbxProjPath = this.getPbxProjPath(projectData);
364
- this.$iOSExtensionsService.removeExtensions({ pbxProjPath });
365
- yield this.addExtensions(projectData, pluginsData);
366
- const resourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
367
- const provision = prepareData && prepareData.provision;
368
- const teamId = prepareData && prepareData.teamId;
369
- if (provision) {
370
- yield this.$iOSSigningService.setupSigningFromProvision(projectRoot, projectData, provision, prepareData.mobileProvisionData);
371
- }
372
- if (teamId) {
373
- yield this.$iOSSigningService.setupSigningFromTeam(projectRoot, projectData, teamId);
310
+ async prepareProject(projectData, prepareData) {
311
+ const projectRoot = this.$options.hostProjectPath
312
+ ? this.$options.hostProjectPath
313
+ : path.join(projectData.platformsDir, this.$devicePlatformsConstants.iOS.toLowerCase());
314
+ const platformData = this.getPlatformData(projectData);
315
+ const pluginsData = this.getAllProductionPlugins(projectData);
316
+ const pbxProjPath = this.getPbxProjPath(projectData);
317
+ this.$iOSExtensionsService.removeExtensions({ pbxProjPath });
318
+ await this.addExtensions(projectData, pluginsData);
319
+ const resourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
320
+ const provision = prepareData && prepareData.provision;
321
+ const teamId = prepareData && prepareData.teamId;
322
+ if (provision) {
323
+ await this.$iOSSigningService.setupSigningFromProvision(projectRoot, projectData, provision, prepareData.mobileProvisionData);
324
+ }
325
+ if (teamId) {
326
+ await this.$iOSSigningService.setupSigningFromTeam(projectRoot, projectData, teamId);
327
+ }
328
+ const project = this.createPbxProj(projectData);
329
+ if (this.$options.hostProjectPath) {
330
+ try {
331
+ project.addPbxGroup([], "NativeScript", "NativeScript", null, {
332
+ isMain: true,
333
+ filesRelativeToProject: true,
334
+ uuid: "NATIVESCRIPTNATIVESCRIPT",
335
+ });
336
+ const buildFolderPath = path.join(this.$options.hostProjectPath, projectData.projectName);
337
+ project.addResourceFile(buildFolderPath, {}, "NATIVESCRIPTNATIVESCRIPT");
338
+ const metadataPath = path.relative(this.$options.hostProjectPath, buildFolderPath);
339
+ project.addToOtherLinkerFlags(JSON.stringify(`-sectcreate __DATA __TNSMetadata "${metadataPath}/metadata-arm64.bin"`));
340
+ this.savePbxProj(project, projectData);
374
341
  }
375
- const project = this.createPbxProj(projectData);
376
- if (this.$options.hostProjectPath) {
377
- try {
378
- project.addPbxGroup([], "NativeScript", "NativeScript", null, {
379
- isMain: true,
380
- filesRelativeToProject: true,
381
- uuid: "NATIVESCRIPTNATIVESCRIPT",
382
- });
383
- /**
384
- * 1. Add platforms/ios/{projectname}/app build to the host app
385
- */
386
- // Note: allow customization of this targetFolderName
387
- // const targetFolderName = "app";
388
- const buildFolderPath = path.join(this.$options.hostProjectPath, projectData.projectName
389
- // targetFolderName
390
- );
391
- project.addResourceFile(buildFolderPath, {}, "NATIVESCRIPTNATIVESCRIPT");
392
- // filePathsArray, buildPhaseType, comment, target, optionsOrFolderType, subfolderPath
393
- // project.addBuildPhase(
394
- // [],
395
- // "PBXShellScriptBuildPhase",
396
- // "Copy Metadata (DEBUG)",
397
- // undefined,
398
- // {
399
- // shellPath: "/bin/sh",
400
- // shellScript: `cp ./platforms/ios/build/Debug-iphonesimulator/metadata-arm64.bin $CONFIGURATION_BUILD_DIR`,
401
- // outputPaths: [
402
- // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-arm64.bin"),
403
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-arm64e.bin"),
404
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-i386.bin"),
405
- // // JSON.stringify("$(CONFIGURATION_BUILD_DIR)/metadata-x86_64.bin"),
406
- // ],
407
- // }
408
- // );
409
- const metadataPath = path.relative(this.$options.hostProjectPath, buildFolderPath);
410
- project.addToOtherLinkerFlags(JSON.stringify(`-sectcreate __DATA __TNSMetadata "${metadataPath}/metadata-arm64.bin"`));
411
- // // no shorthand way to get UUID of build phase that i can tell
412
- // // methods return the phase as an object but ommitted the actual key (uuid we need)
413
- // // this does it same way nativescript-dev-xcode does but gets the uuid we need
414
- // const resourcesBuildPhaseKeys = Object.keys(
415
- // project.hash.project.objects["PBXResourcesBuildPhase"]
416
- // );
417
- // // console.log('resourcesBuildPhaseKeys:', resourcesBuildPhaseKeys);
418
- // const buildPhaseUUID = resourcesBuildPhaseKeys[0];
419
- // const comment = `${targetFolderName} in Resources`;
420
- // project.hash.project.objects["PBXResourcesBuildPhase"][
421
- // buildPhaseUUID
422
- // ].files.forEach((f: any) => {
423
- // console.log(f);
424
- // });
425
- // if (
426
- // !project.hash.project.objects["PBXResourcesBuildPhase"][
427
- // buildPhaseUUID
428
- // ].files.find((f: any) => f.comment === comment)
429
- // ) {
430
- // project.addResourceFile(buildFolderPath, {}, buildPhaseUUID);
431
- // }
432
- /**
433
- * 2. Ensure metadata is copied as a file
434
- * The apps metadata-{arch}.bin should be added as a file reference.
435
- */
436
- // TODO
437
- this.savePbxProj(project, projectData);
438
- }
439
- catch (err) {
440
- this.$logger.trace("Error adding NativeScript group to host project", err);
441
- }
342
+ catch (err) {
343
+ this.$logger.trace("Error adding NativeScript group to host project", err);
442
344
  }
443
- const resources = project.pbxGroupByName("Resources");
444
- if (resources && !this.$options.hostProjectPath) {
445
- const references = project.pbxFileReferenceSection();
446
- const xcodeProjectImages = _.map(resources.children, (resource) => this.replace(references[resource.value].name));
447
- this.$logger.trace("Images from Xcode project");
448
- this.$logger.trace(xcodeProjectImages);
449
- const appResourcesImages = this.$fs.readDirectory(this.getAppResourcesDestinationDirectoryPath(projectData));
450
- this.$logger.trace("Current images from App_Resources");
451
- this.$logger.trace(appResourcesImages);
452
- const imagesToAdd = _.difference(appResourcesImages, xcodeProjectImages);
453
- this.$logger.trace(`New images to add into xcode project: ${imagesToAdd.join(", ")}`);
454
- _.each(imagesToAdd, (image) => project.addResourceFile(path.relative(this.getPlatformData(projectData).projectRoot, path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image))));
455
- const imagesToRemove = _.difference(xcodeProjectImages, appResourcesImages);
456
- this.$logger.trace(`Images to remove from xcode project: ${imagesToRemove.join(", ")}`);
457
- _.each(imagesToRemove, (image) => project.removeResourceFile(path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image)));
458
- this.savePbxProj(project, projectData);
459
- let resourcesNativeCodePath = path.join(resourcesDirectoryPath, platformData.normalizedPlatformName, constants.NATIVE_SOURCE_FOLDER);
460
- if (!this.$fs.exists(resourcesNativeCodePath)) {
461
- resourcesNativeCodePath = path.join(resourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants.NATIVE_SOURCE_FOLDER);
462
- }
463
- yield this.prepareNativeSourceCode(constants.TNS_NATIVE_SOURCE_GROUP_NAME, resourcesNativeCodePath, projectData);
464
- const nativeSource = this.$projectConfigService.getValue(`${this._platformData.platformNameLowerCase}.NativeSource`, []);
465
- if (nativeSource === null || nativeSource === void 0 ? void 0 : nativeSource.length) {
466
- for (const source of nativeSource) {
467
- yield this.prepareNativeSourceCode(source.name, source.path, projectData);
468
- }
345
+ }
346
+ const resources = project.pbxGroupByName("Resources");
347
+ if (resources && !this.$options.hostProjectPath) {
348
+ const references = project.pbxFileReferenceSection();
349
+ const xcodeProjectImages = _.map(resources.children, (resource) => this.replace(references[resource.value].name));
350
+ this.$logger.trace("Images from Xcode project");
351
+ this.$logger.trace(xcodeProjectImages);
352
+ const appResourcesImages = this.$fs.readDirectory(this.getAppResourcesDestinationDirectoryPath(projectData));
353
+ this.$logger.trace("Current images from App_Resources");
354
+ this.$logger.trace(appResourcesImages);
355
+ const imagesToAdd = _.difference(appResourcesImages, xcodeProjectImages);
356
+ this.$logger.trace(`New images to add into xcode project: ${imagesToAdd.join(", ")}`);
357
+ _.each(imagesToAdd, (image) => project.addResourceFile(path.relative(this.getPlatformData(projectData).projectRoot, path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image))));
358
+ const imagesToRemove = _.difference(xcodeProjectImages, appResourcesImages);
359
+ this.$logger.trace(`Images to remove from xcode project: ${imagesToRemove.join(", ")}`);
360
+ _.each(imagesToRemove, (image) => project.removeResourceFile(path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image)));
361
+ this.savePbxProj(project, projectData);
362
+ let resourcesNativeCodePath = path.join(resourcesDirectoryPath, platformData.normalizedPlatformName, constants.NATIVE_SOURCE_FOLDER);
363
+ if (!this.$fs.exists(resourcesNativeCodePath)) {
364
+ resourcesNativeCodePath = path.join(resourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants.NATIVE_SOURCE_FOLDER);
365
+ }
366
+ await this.prepareNativeSourceCode(constants.TNS_NATIVE_SOURCE_GROUP_NAME, resourcesNativeCodePath, projectData);
367
+ const nativeSource = this.$projectConfigService.getValue(`${this._platformData.platformNameLowerCase}.NativeSource`, []);
368
+ if (nativeSource === null || nativeSource === void 0 ? void 0 : nativeSource.length) {
369
+ for (const source of nativeSource) {
370
+ await this.prepareNativeSourceCode(source.name, source.path, projectData);
469
371
  }
470
372
  }
471
- this.$iOSWatchAppService.removeWatchApp({ pbxProjPath });
472
- const addedWatchApp = yield this.$iOSWatchAppService.addWatchAppFromPath({
473
- watchAppFolderPath: path.join(resourcesDirectoryPath, platformData.normalizedPlatformName),
474
- projectData,
475
- platformData,
476
- pbxProjPath,
477
- });
478
- if (addedWatchApp) {
479
- this.$logger.warn("The support for Apple Watch App is currently in Beta. For more information about the current development state and any known issues, please check the relevant GitHub issue: https://github.com/NativeScript/nativescript-cli/issues/4589");
480
- }
373
+ }
374
+ this.$iOSWatchAppService.removeWatchApp({ pbxProjPath });
375
+ const addedWatchApp = await this.$iOSWatchAppService.addWatchAppFromPath({
376
+ watchAppFolderPath: path.join(resourcesDirectoryPath, platformData.normalizedPlatformName),
377
+ projectData,
378
+ platformData,
379
+ pbxProjPath,
481
380
  });
381
+ if (addedWatchApp) {
382
+ this.$logger.warn("The support for Apple Watch App is currently in Beta. For more information about the current development state and any known issues, please check the relevant GitHub issue: https://github.com/NativeScript/nativescript-cli/issues/4589");
383
+ }
482
384
  }
483
385
  prepareAppResources(projectData) {
484
386
  const platformData = this.getPlatformData(projectData);
@@ -487,12 +389,10 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
487
389
  this.$fs.deleteDirectory(platformsAppResourcesPath);
488
390
  this.$fs.ensureDirectoryExists(platformsAppResourcesPath);
489
391
  const platformAppResourcesPath = path.join(projectAppResourcesPath, platformData.normalizedPlatformName);
490
- // this allows App_Resources/visionOS
491
392
  if (this.$fs.exists(platformAppResourcesPath)) {
492
393
  this.$fs.copyFile(path.join(platformAppResourcesPath, "*"), platformsAppResourcesPath);
493
394
  }
494
395
  else {
495
- // otherwise falls back to App_Resources/iOS
496
396
  this.$fs.copyFile(path.join(projectAppResourcesPath, this.$devicePlatformsConstants.iOS, "*"), platformsAppResourcesPath);
497
397
  }
498
398
  this.$fs.deleteFile(path.join(platformsAppResourcesPath, platformData.configurationFileName));
@@ -502,48 +402,45 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
502
402
  this.$fs.deleteDirectory(path.join(platformsAppResourcesPath, "watchapp"));
503
403
  this.$fs.deleteDirectory(path.join(platformsAppResourcesPath, "watchextension"));
504
404
  }
505
- processConfigurationFilesFromAppResources(projectData, opts) {
506
- return __awaiter(this, void 0, void 0, function* () {
507
- yield this.mergeInfoPlists(projectData, opts);
508
- yield this.$iOSEntitlementsService.merge(projectData);
509
- yield this.mergeProjectXcconfigFiles(projectData);
510
- });
405
+ async processConfigurationFilesFromAppResources(projectData, opts) {
406
+ await this.mergeInfoPlists(projectData, opts);
407
+ await this.$iOSEntitlementsService.merge(projectData);
408
+ await this.mergeProjectXcconfigFiles(projectData);
511
409
  }
512
410
  ensureConfigurationFileInAppResources() {
513
411
  return null;
514
412
  }
515
- mergeInfoPlists(projectData, buildOptions) {
516
- return __awaiter(this, void 0, void 0, function* () {
517
- const projectDir = projectData.projectDir;
518
- const infoPlistPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, this.getPlatformData(projectData).configurationFileName);
519
- this.ensureConfigurationFileInAppResources();
520
- const reporterTraceMessage = "Info.plist:";
521
- const reporter = {
522
- log: (txt) => this.$logger.trace(`${reporterTraceMessage} ${txt}`),
523
- warn: (txt) => this.$logger.warn(`${reporterTraceMessage} ${txt}`),
524
- };
525
- const session = new plist_merge_patch_1.PlistSession(reporter);
526
- const makePatch = (plistPath) => {
527
- if (!this.$fs.exists(plistPath)) {
528
- this.$logger.trace("No plist found at: " + plistPath);
529
- return;
530
- }
531
- this.$logger.trace("Schedule merge plist at: " + plistPath);
532
- session.patch({
533
- name: path.relative(projectDir, plistPath),
534
- read: () => this.$fs.readText(plistPath),
535
- });
536
- };
537
- const allPlugins = this.getAllProductionPlugins(projectData);
538
- for (const plugin of allPlugins) {
539
- const pluginInfoPlistPath = path.join(plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME), this.getPlatformData(projectData).configurationFileName);
540
- makePatch(pluginInfoPlistPath);
413
+ async mergeInfoPlists(projectData, buildOptions) {
414
+ const projectDir = projectData.projectDir;
415
+ const infoPlistPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, this.getPlatformData(projectData).configurationFileName);
416
+ this.ensureConfigurationFileInAppResources();
417
+ const reporterTraceMessage = "Info.plist:";
418
+ const reporter = {
419
+ log: (txt) => this.$logger.trace(`${reporterTraceMessage} ${txt}`),
420
+ warn: (txt) => this.$logger.warn(`${reporterTraceMessage} ${txt}`),
421
+ };
422
+ const session = new plist_merge_patch_1.PlistSession(reporter);
423
+ const makePatch = (plistPath) => {
424
+ if (!this.$fs.exists(plistPath)) {
425
+ this.$logger.trace("No plist found at: " + plistPath);
426
+ return;
541
427
  }
542
- makePatch(infoPlistPath);
543
- if (projectData.projectIdentifiers && projectData.projectIdentifiers.ios) {
544
- session.patch({
545
- name: "CFBundleIdentifier from package.json nativescript.id",
546
- read: () => `<?xml version="1.0" encoding="UTF-8"?>
428
+ this.$logger.trace("Schedule merge plist at: " + plistPath);
429
+ session.patch({
430
+ name: path.relative(projectDir, plistPath),
431
+ read: () => this.$fs.readText(plistPath),
432
+ });
433
+ };
434
+ const allPlugins = this.getAllProductionPlugins(projectData);
435
+ for (const plugin of allPlugins) {
436
+ const pluginInfoPlistPath = path.join(plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME), this.getPlatformData(projectData).configurationFileName);
437
+ makePatch(pluginInfoPlistPath);
438
+ }
439
+ makePatch(infoPlistPath);
440
+ if (projectData.projectIdentifiers && projectData.projectIdentifiers.ios) {
441
+ session.patch({
442
+ name: "CFBundleIdentifier from package.json nativescript.id",
443
+ read: () => `<?xml version="1.0" encoding="UTF-8"?>
547
444
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
548
445
  <plist version="1.0">
549
446
  <dict>
@@ -551,14 +448,14 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
551
448
  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
552
449
  </dict>
553
450
  </plist>`,
554
- });
555
- }
556
- if (!buildOptions.release &&
557
- projectData.projectIdentifiers &&
558
- projectData.projectIdentifiers.ios) {
559
- session.patch({
560
- name: "CFBundleURLTypes from package.json nativescript.id",
561
- read: () => `<?xml version="1.0" encoding="UTF-8"?>
451
+ });
452
+ }
453
+ if (!buildOptions.release &&
454
+ projectData.projectIdentifiers &&
455
+ projectData.projectIdentifiers.ios) {
456
+ session.patch({
457
+ name: "CFBundleURLTypes from package.json nativescript.id",
458
+ read: () => `<?xml version="1.0" encoding="UTF-8"?>
562
459
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
563
460
  <plist version="1.0">
564
461
  <dict>
@@ -575,13 +472,12 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
575
472
  </array>
576
473
  </dict>
577
474
  </plist>`,
578
- });
579
- }
580
- const plistContent = session.build();
581
- this.$logger.trace("Info.plist: Write to: " +
582
- this.getPlatformData(projectData).configurationFilePath);
583
- this.$fs.writeFile(this.getPlatformData(projectData).configurationFilePath, plistContent);
584
- });
475
+ });
476
+ }
477
+ const plistContent = session.build();
478
+ this.$logger.trace("Info.plist: Write to: " +
479
+ this.getPlatformData(projectData).configurationFilePath);
480
+ this.$fs.writeFile(this.getPlatformData(projectData).configurationFilePath, plistContent);
585
481
  }
586
482
  getAllProductionPlugins(projectData) {
587
483
  return (this.$injector.resolve("pluginsService")).getAllProductionPlugins(projectData, this.getPlatformData(projectData).platformNameLowerCase);
@@ -595,12 +491,6 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
595
491
  getLibSubpathRelativeToProjectPath(targetPath, projectData) {
596
492
  const projectRoot = this.getPlatformData(projectData).projectRoot;
597
493
  const frameworkPath = path.relative(projectRoot, targetPath);
598
- // console.log({
599
- // targetPath,
600
- // projectRoot,
601
- // frameworkPath,
602
- // resolved: path.resolve(projectRoot, frameworkPath),
603
- // });
604
494
  return frameworkPath;
605
495
  }
606
496
  getPbxProjPath(projectData) {
@@ -621,112 +511,94 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
621
511
  savePbxProj(project, projectData, omitEmptyValues) {
622
512
  return this.$fs.writeFile(this.getPbxProjPath(projectData), project.writeSync({ omitEmptyValues }));
623
513
  }
624
- preparePluginNativeCode(pluginData, projectData, opts) {
625
- return __awaiter(this, void 0, void 0, function* () {
626
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
627
- const sourcePath = path.join(pluginPlatformsFolderPath, "src");
628
- yield this.prepareNativeSourceCode(pluginData.name, sourcePath, projectData);
629
- yield this.prepareResources(pluginPlatformsFolderPath, pluginData, projectData);
630
- yield this.prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
631
- yield this.prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
632
- });
633
- }
634
- removePluginNativeCode(pluginData, projectData) {
635
- return __awaiter(this, void 0, void 0, function* () {
636
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
637
- this.removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData);
638
- this.removeFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
639
- this.removeStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
640
- const projectRoot = this.getPlatformData(projectData).projectRoot;
641
- this.$cocoapodsService.removePodfileFromProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, projectRoot);
642
- });
514
+ async preparePluginNativeCode(pluginData, projectData, opts) {
515
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
516
+ const sourcePath = path.join(pluginPlatformsFolderPath, "src");
517
+ await this.prepareNativeSourceCode(pluginData.name, sourcePath, projectData);
518
+ await this.prepareResources(pluginPlatformsFolderPath, pluginData, projectData);
519
+ await this.prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
520
+ await this.prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
521
+ }
522
+ async removePluginNativeCode(pluginData, projectData) {
523
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
524
+ this.removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData);
525
+ this.removeFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
526
+ this.removeStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
527
+ const projectRoot = this.getPlatformData(projectData).projectRoot;
528
+ this.$cocoapodsService.removePodfileFromProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, projectRoot);
643
529
  }
644
- handleNativeDependenciesChange(projectData, opts) {
645
- return __awaiter(this, void 0, void 0, function* () {
646
- const platformData = this.getPlatformData(projectData);
647
- const pluginsData = this.getAllProductionPlugins(projectData);
648
- this.setProductBundleIdentifier(projectData);
649
- yield this.applyPluginsCocoaPods(pluginsData, projectData, platformData);
650
- yield this.$cocoapodsService.applyPodfileFromAppResources(projectData, platformData);
651
- yield this.$cocoapodsService.applyPodfileArchExclusions(projectData, platformData);
652
- yield this.$cocoapodsService.applyPodfileFromExtensions(projectData, platformData);
653
- const projectPodfilePath = this.$cocoapodsService.getProjectPodfilePath(platformData.projectRoot);
654
- if (this.$fs.exists(projectPodfilePath)) {
655
- yield this.$cocoapodsService.executePodInstall(platformData.projectRoot, this.$xcprojService.getXcodeprojPath(projectData, platformData.projectRoot));
656
- // The `pod install` command adds a new target to the .pbxproject. This target adds additional build phases to Xcode project.
657
- // Some of these phases relies on env variables (like PODS_PODFILE_DIR_PATH or PODS_ROOT).
658
- // These variables are produced from merge of pod's xcconfig file and project's xcconfig file.
659
- // So the correct order is `pod install` to be executed before merging pod's xcconfig file.
660
- yield this.$cocoapodsService.mergePodXcconfigFile(projectData, platformData, opts);
661
- }
662
- const pluginSpmPackages = [];
663
- for (const plugin of pluginsData) {
664
- if (plugin.fullPath) {
665
- const pluginConfigPath = path.join(plugin.fullPath, constants.CONFIG_FILE_NAME_TS);
666
- if (this.$fs.exists(pluginConfigPath)) {
667
- const config = this.$projectConfigService.readConfig(plugin.fullPath);
668
- const packages = _.get(config, `${platformData.platformNameLowerCase}.SPMPackages`, []);
669
- if (packages.length) {
670
- pluginSpmPackages.push(...packages);
671
- }
530
+ async handleNativeDependenciesChange(projectData, opts) {
531
+ const platformData = this.getPlatformData(projectData);
532
+ const pluginsData = this.getAllProductionPlugins(projectData);
533
+ this.setProductBundleIdentifier(projectData);
534
+ await this.applyPluginsCocoaPods(pluginsData, projectData, platformData);
535
+ await this.$cocoapodsService.applyPodfileFromAppResources(projectData, platformData);
536
+ await this.$cocoapodsService.applyPodfileArchExclusions(projectData, platformData);
537
+ await this.$cocoapodsService.applyPodfileFromExtensions(projectData, platformData);
538
+ const projectPodfilePath = this.$cocoapodsService.getProjectPodfilePath(platformData.projectRoot);
539
+ if (this.$fs.exists(projectPodfilePath)) {
540
+ await this.$cocoapodsService.executePodInstall(platformData.projectRoot, this.$xcprojService.getXcodeprojPath(projectData, platformData.projectRoot));
541
+ await this.$cocoapodsService.mergePodXcconfigFile(projectData, platformData, opts);
542
+ }
543
+ const pluginSpmPackages = [];
544
+ for (const plugin of pluginsData) {
545
+ if (plugin.fullPath) {
546
+ const pluginConfigPath = path.join(plugin.fullPath, constants.CONFIG_FILE_NAME_TS);
547
+ if (this.$fs.exists(pluginConfigPath)) {
548
+ const config = this.$projectConfigService.readConfig(plugin.fullPath);
549
+ const packages = _.get(config, `${platformData.platformNameLowerCase}.SPMPackages`, []);
550
+ if (packages.length) {
551
+ pluginSpmPackages.push(...packages);
672
552
  }
673
553
  }
674
554
  }
675
- yield this.$spmService.applySPMPackages(platformData, projectData, pluginSpmPackages);
676
- });
555
+ }
556
+ await this.$spmService.applySPMPackages(platformData, projectData, pluginSpmPackages);
677
557
  }
678
558
  beforePrepareAllPlugins(projectData, dependencies) {
679
559
  return Promise.resolve(dependencies);
680
560
  }
681
- checkForChanges(changesInfo, prepareData, projectData) {
682
- return __awaiter(this, void 0, void 0, function* () {
683
- const { provision, teamId } = prepareData;
684
- const hasProvision = provision !== undefined;
685
- const hasTeamId = teamId !== undefined;
686
- if (hasProvision || hasTeamId) {
687
- // Check if the native project's signing is set to the provided provision...
688
- const pbxprojPath = this.getPbxProjPath(projectData);
689
- if (this.$fs.exists(pbxprojPath)) {
690
- const xcode = this.$pbxprojDomXcode.Xcode.open(pbxprojPath);
691
- const signing = xcode.getSigning(projectData.projectName);
692
- if (hasProvision) {
693
- if (signing && signing.style === "Manual") {
694
- for (const name in signing.configurations) {
695
- const config = signing.configurations[name];
696
- if (config.uuid !== provision && config.name !== provision) {
697
- changesInfo.signingChanged = true;
698
- break;
699
- }
561
+ async checkForChanges(changesInfo, prepareData, projectData) {
562
+ const { provision, teamId } = prepareData;
563
+ const hasProvision = provision !== undefined;
564
+ const hasTeamId = teamId !== undefined;
565
+ if (hasProvision || hasTeamId) {
566
+ const pbxprojPath = this.getPbxProjPath(projectData);
567
+ if (this.$fs.exists(pbxprojPath)) {
568
+ const xcode = this.$pbxprojDomXcode.Xcode.open(pbxprojPath);
569
+ const signing = xcode.getSigning(projectData.projectName);
570
+ if (hasProvision) {
571
+ if (signing && signing.style === "Manual") {
572
+ for (const name in signing.configurations) {
573
+ const config = signing.configurations[name];
574
+ if (config.uuid !== provision && config.name !== provision) {
575
+ changesInfo.signingChanged = true;
576
+ break;
700
577
  }
701
578
  }
702
- else {
703
- // Specifying provisioning profile requires "Manual" signing style.
704
- // If the current signing style was not "Manual" it was probably "Automatic" or,
705
- // it was not uniform for the debug and release build configurations.
706
- changesInfo.signingChanged = true;
707
- }
708
579
  }
709
- if (hasTeamId) {
710
- if (signing && signing.style === "Automatic") {
711
- if (signing.team !== teamId) {
712
- const teamIdsForName = yield this.$iOSProvisionService.getTeamIdsWithName(teamId);
713
- if (!teamIdsForName.some((id) => id === signing.team)) {
714
- changesInfo.signingChanged = true;
715
- }
580
+ else {
581
+ changesInfo.signingChanged = true;
582
+ }
583
+ }
584
+ if (hasTeamId) {
585
+ if (signing && signing.style === "Automatic") {
586
+ if (signing.team !== teamId) {
587
+ const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
588
+ if (!teamIdsForName.some((id) => id === signing.team)) {
589
+ changesInfo.signingChanged = true;
716
590
  }
717
591
  }
718
- else {
719
- // Specifying team id or name requires "Automatic" signing style.
720
- // If the current signing style was not "Automatic" it was probably "Manual".
721
- changesInfo.signingChanged = true;
722
- }
723
592
  }
724
- }
725
- else {
726
- changesInfo.signingChanged = true;
593
+ else {
594
+ changesInfo.signingChanged = true;
595
+ }
727
596
  }
728
597
  }
729
- });
598
+ else {
599
+ changesInfo.signingChanged = true;
600
+ }
601
+ }
730
602
  }
731
603
  getDeploymentTarget(projectData) {
732
604
  const target = this.$xcconfigService.readPropertyValue(this.getBuildXCConfigFilePath(projectData), "IPHONEOS_DEPLOYMENT_TARGET");
@@ -770,120 +642,106 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
770
642
  const newFileName = projectData.projectName + fileNamePart;
771
643
  this.$fs.rename(path.join(fileRootLocation, oldFileName), path.join(fileRootLocation, newFileName));
772
644
  }
773
- prepareNativeSourceCode(groupName, sourceFolderPath, projectData) {
774
- return __awaiter(this, void 0, void 0, function* () {
775
- const project = this.createPbxProj(projectData);
776
- const group = yield this.getRootGroup(groupName, sourceFolderPath);
777
- project.addPbxGroup(group.files, group.name, group.path, null, {
778
- isMain: true,
779
- filesRelativeToProject: true,
780
- });
781
- project.addToHeaderSearchPaths(group.path);
782
- const headerFiles = this.$fs.exists(sourceFolderPath)
783
- ? this.$fs.enumerateFilesInDirectorySync(sourceFolderPath, (file, stat) => stat.isDirectory() || path.extname(file) === ".h")
784
- : [];
785
- if (headerFiles.length > 0 &&
786
- !this.$fs.exists(path.join(sourceFolderPath, "module.modulemap"))) {
787
- this.$logger.warn(`warning: Directory ${sourceFolderPath} with native iOS source code doesn't contain a modulemap file. Metadata for it will not be generated and it will not be accessible from JavaScript. To learn more see https://docs.nativescript.org/guides/ios-source-code`);
788
- }
789
- this.savePbxProj(project, projectData);
645
+ async prepareNativeSourceCode(groupName, sourceFolderPath, projectData) {
646
+ const project = this.createPbxProj(projectData);
647
+ const group = await this.getRootGroup(groupName, sourceFolderPath);
648
+ project.addPbxGroup(group.files, group.name, group.path, null, {
649
+ isMain: true,
650
+ filesRelativeToProject: true,
790
651
  });
652
+ project.addToHeaderSearchPaths(group.path);
653
+ const headerFiles = this.$fs.exists(sourceFolderPath)
654
+ ? this.$fs.enumerateFilesInDirectorySync(sourceFolderPath, (file, stat) => stat.isDirectory() || path.extname(file) === ".h")
655
+ : [];
656
+ if (headerFiles.length > 0 &&
657
+ !this.$fs.exists(path.join(sourceFolderPath, "module.modulemap"))) {
658
+ this.$logger.warn(`warning: Directory ${sourceFolderPath} with native iOS source code doesn't contain a modulemap file. Metadata for it will not be generated and it will not be accessible from JavaScript. To learn more see https://docs.nativescript.org/guides/ios-source-code`);
659
+ }
660
+ this.savePbxProj(project, projectData);
791
661
  }
792
- addExtensions(projectData, pluginsData) {
793
- return __awaiter(this, void 0, void 0, function* () {
794
- const resorcesExtensionsPath = path.join(projectData.getAppResourcesDirectoryPath(), this.getPlatformData(projectData).normalizedPlatformName, constants.NATIVE_EXTENSION_FOLDER);
795
- const platformData = this.getPlatformData(projectData);
796
- const pbxProjPath = this.getPbxProjPath(projectData);
797
- const addedExtensionsFromResources = yield this.$iOSExtensionsService.addExtensionsFromPath({
798
- extensionsFolderPath: resorcesExtensionsPath,
662
+ async addExtensions(projectData, pluginsData) {
663
+ const resorcesExtensionsPath = path.join(projectData.getAppResourcesDirectoryPath(), this.getPlatformData(projectData).normalizedPlatformName, constants.NATIVE_EXTENSION_FOLDER);
664
+ const platformData = this.getPlatformData(projectData);
665
+ const pbxProjPath = this.getPbxProjPath(projectData);
666
+ const addedExtensionsFromResources = await this.$iOSExtensionsService.addExtensionsFromPath({
667
+ extensionsFolderPath: resorcesExtensionsPath,
668
+ projectData,
669
+ platformData,
670
+ pbxProjPath,
671
+ });
672
+ let addedExtensionsFromPlugins = false;
673
+ for (const pluginIndex in pluginsData) {
674
+ const pluginData = pluginsData[pluginIndex];
675
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
676
+ const extensionPath = path.join(pluginPlatformsFolderPath, constants.NATIVE_EXTENSION_FOLDER);
677
+ const addedExtensionFromPlugin = await this.$iOSExtensionsService.addExtensionsFromPath({
678
+ extensionsFolderPath: extensionPath,
799
679
  projectData,
800
680
  platformData,
801
681
  pbxProjPath,
802
682
  });
803
- let addedExtensionsFromPlugins = false;
804
- for (const pluginIndex in pluginsData) {
805
- const pluginData = pluginsData[pluginIndex];
806
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
807
- const extensionPath = path.join(pluginPlatformsFolderPath, constants.NATIVE_EXTENSION_FOLDER);
808
- const addedExtensionFromPlugin = yield this.$iOSExtensionsService.addExtensionsFromPath({
809
- extensionsFolderPath: extensionPath,
810
- projectData,
811
- platformData,
812
- pbxProjPath,
813
- });
814
- addedExtensionsFromPlugins =
815
- addedExtensionsFromPlugins || addedExtensionFromPlugin;
816
- }
817
- if (addedExtensionsFromResources || addedExtensionsFromPlugins) {
818
- this.$logger.warn("Let us know if there are other Extension features you'd like! https://github.com/NativeScript/NativeScript/issues");
819
- }
820
- });
683
+ addedExtensionsFromPlugins =
684
+ addedExtensionsFromPlugins || addedExtensionFromPlugin;
685
+ }
686
+ if (addedExtensionsFromResources || addedExtensionsFromPlugins) {
687
+ this.$logger.warn("Let us know if there are other Extension features you'd like! https://github.com/NativeScript/NativeScript/issues");
688
+ }
821
689
  }
822
- getRootGroup(name, rootPath) {
823
- return __awaiter(this, void 0, void 0, function* () {
824
- const filePathsArr = [];
825
- const rootGroup = {
826
- name: name,
827
- files: filePathsArr,
828
- path: rootPath,
829
- };
830
- if (fastGlob.isDynamicPattern(rootPath)) {
831
- const projectRoot = this.$projectDataService.getProjectData().projectDir;
832
- const filePaths = yield fastGlob(rootPath);
833
- for (const filePath of filePaths) {
834
- const sourceFilePath = path.normalize(path.join(projectRoot, filePath));
835
- filePathsArr.push(sourceFilePath);
836
- }
690
+ async getRootGroup(name, rootPath) {
691
+ const filePathsArr = [];
692
+ const rootGroup = {
693
+ name: name,
694
+ files: filePathsArr,
695
+ path: rootPath,
696
+ };
697
+ if (fastGlob.isDynamicPattern(rootPath)) {
698
+ const projectRoot = this.$projectDataService.getProjectData().projectDir;
699
+ const filePaths = await fastGlob(rootPath);
700
+ for (const filePath of filePaths) {
701
+ const sourceFilePath = path.normalize(path.join(projectRoot, filePath));
702
+ filePathsArr.push(sourceFilePath);
837
703
  }
838
- else {
839
- if (this.$fs.exists(rootPath)) {
840
- const stats = this.$fs.getFsStats(rootPath);
841
- if (stats.isDirectory() && !this.$fs.isEmptyDir(rootPath)) {
842
- this.$fs.readDirectory(rootPath).forEach((fileName) => {
843
- const filePath = path.join(rootGroup.path, fileName);
844
- filePathsArr.push(filePath);
845
- });
846
- }
704
+ }
705
+ else {
706
+ if (this.$fs.exists(rootPath)) {
707
+ const stats = this.$fs.getFsStats(rootPath);
708
+ if (stats.isDirectory() && !this.$fs.isEmptyDir(rootPath)) {
709
+ this.$fs.readDirectory(rootPath).forEach((fileName) => {
710
+ const filePath = path.join(rootGroup.path, fileName);
711
+ filePathsArr.push(filePath);
712
+ });
847
713
  }
848
714
  }
849
- return rootGroup;
850
- });
715
+ }
716
+ return rootGroup;
851
717
  }
852
- prepareResources(pluginPlatformsFolderPath, pluginData, projectData) {
853
- return __awaiter(this, void 0, void 0, function* () {
854
- const project = this.createPbxProj(projectData);
855
- const resourcesPath = path.join(pluginPlatformsFolderPath, "Resources");
856
- if (this.$fs.exists(resourcesPath) && !this.$fs.isEmptyDir(resourcesPath)) {
857
- for (const fileName of this.$fs.readDirectory(resourcesPath)) {
858
- const filePath = path.join(resourcesPath, fileName);
859
- project.addResourceFile(filePath);
860
- }
718
+ async prepareResources(pluginPlatformsFolderPath, pluginData, projectData) {
719
+ const project = this.createPbxProj(projectData);
720
+ const resourcesPath = path.join(pluginPlatformsFolderPath, "Resources");
721
+ if (this.$fs.exists(resourcesPath) && !this.$fs.isEmptyDir(resourcesPath)) {
722
+ for (const fileName of this.$fs.readDirectory(resourcesPath)) {
723
+ const filePath = path.join(resourcesPath, fileName);
724
+ project.addResourceFile(filePath);
861
725
  }
862
- this.savePbxProj(project, projectData);
863
- });
726
+ }
727
+ this.savePbxProj(project, projectData);
864
728
  }
865
- prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData) {
866
- return __awaiter(this, void 0, void 0, function* () {
867
- for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, FRAMEWORK_EXTENSIONS)) {
868
- yield this.addFramework(path.join(pluginPlatformsFolderPath, fileName), projectData);
869
- }
870
- });
729
+ async prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData) {
730
+ for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, FRAMEWORK_EXTENSIONS)) {
731
+ await this.addFramework(path.join(pluginPlatformsFolderPath, fileName), projectData);
732
+ }
871
733
  }
872
- prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData) {
873
- return __awaiter(this, void 0, void 0, function* () {
874
- for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, ".a")) {
875
- yield this.addStaticLibrary(path.join(pluginPlatformsFolderPath, fileName), projectData);
876
- }
877
- });
734
+ async prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData) {
735
+ for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, ".a")) {
736
+ await this.addStaticLibrary(path.join(pluginPlatformsFolderPath, fileName), projectData);
737
+ }
878
738
  }
879
- removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData) {
880
- return __awaiter(this, void 0, void 0, function* () {
881
- const project = this.createPbxProj(projectData);
882
- const group = yield this.getRootGroup(pluginData.name, pluginPlatformsFolderPath);
883
- project.removePbxGroup(group.name, group.path);
884
- project.removeFromHeaderSearchPaths(group.path);
885
- this.savePbxProj(project, projectData);
886
- });
739
+ async removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData) {
740
+ const project = this.createPbxProj(projectData);
741
+ const group = await this.getRootGroup(pluginData.name, pluginPlatformsFolderPath);
742
+ project.removePbxGroup(group.name, group.path);
743
+ project.removeFromHeaderSearchPaths(group.path);
744
+ this.savePbxProj(project, projectData);
887
745
  }
888
746
  removeFrameworks(pluginPlatformsFolderPath, pluginData, projectData) {
889
747
  const project = this.createPbxProj(projectData);
@@ -925,50 +783,44 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
925
783
  const modulemap = `module ${libraryName} { explicit module ${libraryName} { ${headers.join(" ")} } }`;
926
784
  this.$fs.writeFile(path.join(headersFolderPath, "module.modulemap"), modulemap);
927
785
  }
928
- mergeProjectXcconfigFiles(projectData) {
929
- return __awaiter(this, void 0, void 0, function* () {
930
- const platformData = this.getPlatformData(projectData);
931
- const pluginsXcconfigFilePaths = _.values(this.$xcconfigService.getPluginsXcconfigFilePaths(platformData.projectRoot));
932
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
933
- this.$fs.deleteFile(pluginsXcconfigFilePath);
934
- }
935
- const allPlugins = this.getAllProductionPlugins(projectData);
936
- for (const plugin of allPlugins) {
937
- const pluginPlatformsFolderPath = plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
938
- const pluginXcconfigFilePath = path.join(pluginPlatformsFolderPath, constants_2.BUILD_XCCONFIG_FILE_NAME);
939
- if (this.$fs.exists(pluginXcconfigFilePath)) {
940
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
941
- yield this.$xcconfigService.mergeFiles(pluginXcconfigFilePath, pluginsXcconfigFilePath);
942
- }
943
- }
944
- }
945
- const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
946
- if (this.$fs.exists(appResourcesXcconfigPath)) {
786
+ async mergeProjectXcconfigFiles(projectData) {
787
+ const platformData = this.getPlatformData(projectData);
788
+ const pluginsXcconfigFilePaths = _.values(this.$xcconfigService.getPluginsXcconfigFilePaths(platformData.projectRoot));
789
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
790
+ this.$fs.deleteFile(pluginsXcconfigFilePath);
791
+ }
792
+ const allPlugins = this.getAllProductionPlugins(projectData);
793
+ for (const plugin of allPlugins) {
794
+ const pluginPlatformsFolderPath = plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
795
+ const pluginXcconfigFilePath = path.join(pluginPlatformsFolderPath, constants_2.BUILD_XCCONFIG_FILE_NAME);
796
+ if (this.$fs.exists(pluginXcconfigFilePath)) {
947
797
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
948
- yield this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
798
+ await this.$xcconfigService.mergeFiles(pluginXcconfigFilePath, pluginsXcconfigFilePath);
949
799
  }
950
800
  }
801
+ }
802
+ const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
803
+ if (this.$fs.exists(appResourcesXcconfigPath)) {
951
804
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
952
- if (!this.$fs.exists(pluginsXcconfigFilePath)) {
953
- // We need the pluginsXcconfig file to exist in platforms dir as it is required in the native template:
954
- // https://github.com/NativeScript/ios-runtime/blob/9c2b7b5f70b9bee8452b7a24aa6b646214c7d2be/build/project-template/__PROJECT_NAME__/build-debug.xcconfig#L3
955
- // From Xcode 10 in case the file is missing, this include fails and the build itself fails (was a warning in previous Xcode versions).
956
- this.$fs.writeFile(pluginsXcconfigFilePath, "");
957
- }
805
+ await this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
958
806
  }
959
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
960
- // Set Entitlements Property to point to default file if not set explicitly by the user.
961
- const entitlementsPropertyValue = this.$xcconfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS);
962
- if (entitlementsPropertyValue === null &&
963
- this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) {
964
- const tempEntitlementsDir = yield this.$tempService.mkdirSync("entitlements");
965
- const tempEntitlementsFilePath = path.join(tempEntitlementsDir, "set-entitlements.xcconfig");
966
- const entitlementsRelativePath = this.$iOSEntitlementsService.getPlatformsEntitlementsRelativePath(projectData);
967
- this.$fs.writeFile(tempEntitlementsFilePath, `CODE_SIGN_ENTITLEMENTS = ${entitlementsRelativePath}${os_1.EOL}`);
968
- yield this.$xcconfigService.mergeFiles(tempEntitlementsFilePath, pluginsXcconfigFilePath);
969
- }
807
+ }
808
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
809
+ if (!this.$fs.exists(pluginsXcconfigFilePath)) {
810
+ this.$fs.writeFile(pluginsXcconfigFilePath, "");
970
811
  }
971
- });
812
+ }
813
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
814
+ const entitlementsPropertyValue = this.$xcconfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS);
815
+ if (entitlementsPropertyValue === null &&
816
+ this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) {
817
+ const tempEntitlementsDir = await this.$tempService.mkdirSync("entitlements");
818
+ const tempEntitlementsFilePath = path.join(tempEntitlementsDir, "set-entitlements.xcconfig");
819
+ const entitlementsRelativePath = this.$iOSEntitlementsService.getPlatformsEntitlementsRelativePath(projectData);
820
+ this.$fs.writeFile(tempEntitlementsFilePath, `CODE_SIGN_ENTITLEMENTS = ${entitlementsRelativePath}${os_1.EOL}`);
821
+ await this.$xcconfigService.mergeFiles(tempEntitlementsFilePath, pluginsXcconfigFilePath);
822
+ }
823
+ }
972
824
  }
973
825
  getBuildXCConfigFilePath(projectData) {
974
826
  const buildXCConfig = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
@@ -987,22 +839,19 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
987
839
  this.$logger.warn(`[WARNING]: The CFBundleIdentifier key inside the 'Info.plist' will be overriden by the 'id' set inside the "${constants_2.CONFIG_FILE_NAME_DISPLAY}".`);
988
840
  }
989
841
  }
990
- applyPluginsCocoaPods(pluginsData, projectData, platformData) {
991
- return __awaiter(this, void 0, void 0, function* () {
992
- for (const pluginIndex in pluginsData) {
993
- const pluginData = pluginsData[pluginIndex];
994
- if (this.$fs.exists(pluginData.pluginPlatformsFolderPath(platformData.normalizedPlatformName))) {
995
- yield this.$cocoapodsService.applyPodfileToProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, platformData);
996
- }
842
+ async applyPluginsCocoaPods(pluginsData, projectData, platformData) {
843
+ for (const pluginIndex in pluginsData) {
844
+ const pluginData = pluginsData[pluginIndex];
845
+ if (this.$fs.exists(pluginData.pluginPlatformsFolderPath(platformData.normalizedPlatformName))) {
846
+ await this.$cocoapodsService.applyPodfileToProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, platformData);
997
847
  }
998
- });
848
+ }
999
849
  }
1000
850
  }
851
+ exports.IOSProjectService = IOSProjectService;
1001
852
  IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER = "__PROJECT_NAME__";
1002
853
  IOSProjectService.IOS_PLATFORM_NAME = "ios";
1003
854
  __decorate([
1004
855
  (0, helpers_2.hook)("buildIOS")
1005
856
  ], IOSProjectService.prototype, "buildProject", null);
1006
- exports.IOSProjectService = IOSProjectService;
1007
857
  yok_1.injector.register("iOSProjectService", IOSProjectService);
1008
- //# sourceMappingURL=ios-project-service.js.map