@akylas/nativescript-cli 8.8.2 → 8.8.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 (275) hide show
  1. package/lib/android-tools-info.js +9 -20
  2. package/lib/base-package-manager.js +47 -64
  3. package/lib/bun-package-manager.js +65 -88
  4. package/lib/color.js +2 -2
  5. package/lib/commands/add-platform.js +14 -30
  6. package/lib/commands/apple-login.js +18 -29
  7. package/lib/commands/appstore-list.js +34 -45
  8. package/lib/commands/appstore-upload.js +55 -68
  9. package/lib/commands/build.js +57 -86
  10. package/lib/commands/clean.js +161 -176
  11. package/lib/commands/command-base.js +14 -27
  12. package/lib/commands/config.js +51 -70
  13. package/lib/commands/create-project.js +210 -229
  14. package/lib/commands/debug.js +66 -88
  15. package/lib/commands/deploy.js +28 -44
  16. package/lib/commands/embedding/embed.js +33 -52
  17. package/lib/commands/extensibility/install-extension.js +5 -16
  18. package/lib/commands/extensibility/list-extensions.js +13 -24
  19. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  20. package/lib/commands/fonts.js +30 -41
  21. package/lib/commands/generate-assets.js +13 -28
  22. package/lib/commands/generate-help.js +2 -13
  23. package/lib/commands/generate.js +17 -26
  24. package/lib/commands/info.js +2 -13
  25. package/lib/commands/install.js +34 -49
  26. package/lib/commands/list-platforms.js +14 -25
  27. package/lib/commands/migrate.js +15 -26
  28. package/lib/commands/native-add.js +23 -46
  29. package/lib/commands/platform-clean.js +19 -32
  30. package/lib/commands/plugin/add-plugin.js +12 -25
  31. package/lib/commands/plugin/build-plugin.js +34 -39
  32. package/lib/commands/plugin/create-plugin.js +110 -133
  33. package/lib/commands/plugin/list-plugins.js +22 -33
  34. package/lib/commands/plugin/remove-plugin.js +20 -33
  35. package/lib/commands/plugin/update-plugin.js +20 -33
  36. package/lib/commands/post-install.js +20 -33
  37. package/lib/commands/prepare.js +19 -35
  38. package/lib/commands/preview.js +49 -62
  39. package/lib/commands/remove-platform.js +7 -18
  40. package/lib/commands/resources/resources-update.js +13 -26
  41. package/lib/commands/run.js +55 -76
  42. package/lib/commands/start.js +6 -19
  43. package/lib/commands/test-init.js +123 -134
  44. package/lib/commands/test.js +66 -89
  45. package/lib/commands/typings.js +126 -142
  46. package/lib/commands/update-platform.js +22 -35
  47. package/lib/commands/update.js +30 -43
  48. package/lib/common/child-process.js +53 -72
  49. package/lib/common/codeGeneration/code-entity.js +1 -1
  50. package/lib/common/codeGeneration/code-printer.js +1 -1
  51. package/lib/common/command-params.js +7 -18
  52. package/lib/common/commands/analytics.js +27 -40
  53. package/lib/common/commands/autocompletion.js +39 -56
  54. package/lib/common/commands/device/device-log-stream.js +12 -23
  55. package/lib/common/commands/device/get-file.js +22 -33
  56. package/lib/common/commands/device/list-applications.js +12 -23
  57. package/lib/common/commands/device/list-devices.js +72 -87
  58. package/lib/common/commands/device/list-files.js +23 -34
  59. package/lib/common/commands/device/put-file.js +22 -33
  60. package/lib/common/commands/device/run-application.js +12 -25
  61. package/lib/common/commands/device/stop-application.js +11 -22
  62. package/lib/common/commands/device/uninstall-application.js +6 -17
  63. package/lib/common/commands/generate-messages.js +17 -28
  64. package/lib/common/commands/help.js +20 -33
  65. package/lib/common/commands/package-manager-get.js +6 -17
  66. package/lib/common/commands/package-manager-set.js +9 -20
  67. package/lib/common/commands/post-install.js +2 -13
  68. package/lib/common/commands/preuninstall.js +23 -38
  69. package/lib/common/commands/proxy/proxy-base.js +8 -19
  70. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  71. package/lib/common/commands/proxy/proxy-get.js +3 -14
  72. package/lib/common/commands/proxy/proxy-set.js +87 -100
  73. package/lib/common/constants.js +11 -11
  74. package/lib/common/decorators.js +10 -22
  75. package/lib/common/dispatchers.js +79 -96
  76. package/lib/common/errors.js +89 -104
  77. package/lib/common/file-system.js +106 -127
  78. package/lib/common/header.js +1 -2
  79. package/lib/common/helpers.js +149 -178
  80. package/lib/common/host-info.js +37 -50
  81. package/lib/common/http-client.js +93 -108
  82. package/lib/common/logger/appenders/cli-appender.js +1 -2
  83. package/lib/common/logger/appenders/emit-appender.js +1 -2
  84. package/lib/common/logger/layouts/cli-layout.js +1 -2
  85. package/lib/common/logger/logger.js +1 -1
  86. package/lib/common/mobile/android/android-application-manager.js +121 -142
  87. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  88. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  89. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  90. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  91. package/lib/common/mobile/android/android-device.js +74 -91
  92. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  93. package/lib/common/mobile/android/android-log-filter.js +1 -1
  94. package/lib/common/mobile/android/android-virtual-device-service.js +76 -97
  95. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  96. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  97. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  98. package/lib/common/mobile/android/logcat-helper.js +108 -127
  99. package/lib/common/mobile/application-manager-base.js +84 -107
  100. package/lib/common/mobile/device-log-provider-base.js +7 -18
  101. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  102. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  103. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  104. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  105. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  106. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  107. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  108. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  109. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  110. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  111. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  112. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  113. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  114. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  115. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  116. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  117. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  118. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  119. package/lib/common/mobile/mobile-helper.js +15 -26
  120. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  121. package/lib/common/opener.js +2 -2
  122. package/lib/common/plist-parser.js +2 -2
  123. package/lib/common/prompter.js +90 -105
  124. package/lib/common/queue.js +9 -20
  125. package/lib/common/services/auto-completion-service.js +39 -52
  126. package/lib/common/services/cancellation.js +17 -28
  127. package/lib/common/services/commands-service.js +146 -169
  128. package/lib/common/services/help-service.js +132 -157
  129. package/lib/common/services/hooks-service.js +93 -108
  130. package/lib/common/services/ios-notification-service.js +21 -34
  131. package/lib/common/services/json-file-settings-service.js +52 -71
  132. package/lib/common/services/lock-service.js +35 -52
  133. package/lib/common/services/message-contract-generator.js +35 -46
  134. package/lib/common/services/micro-templating-service.js +4 -15
  135. package/lib/common/services/net-service.js +90 -107
  136. package/lib/common/services/project-files-manager.js +10 -23
  137. package/lib/common/services/proxy-service.js +13 -24
  138. package/lib/common/services/qr.js +13 -24
  139. package/lib/common/services/settings-service.js +1 -1
  140. package/lib/common/services/xcode-select-service.js +20 -35
  141. package/lib/common/utils.js +2 -2
  142. package/lib/common/validators/project-name-validator.js +1 -1
  143. package/lib/common/validators/validation-result.js +1 -1
  144. package/lib/common/verify-node-version.js +2 -3
  145. package/lib/common/yok.js +23 -36
  146. package/lib/config.js +7 -58
  147. package/lib/constants.js +24 -24
  148. package/lib/controllers/build-controller.js +82 -99
  149. package/lib/controllers/debug-controller.js +107 -128
  150. package/lib/controllers/deploy-controller.js +17 -22
  151. package/lib/controllers/migrate-controller.js +722 -795
  152. package/lib/controllers/platform-controller.js +72 -87
  153. package/lib/controllers/prepare-controller.js +266 -299
  154. package/lib/controllers/run-controller.js +392 -406
  155. package/lib/controllers/update-controller-base.js +16 -29
  156. package/lib/controllers/update-controller.js +94 -119
  157. package/lib/data/prepare-data.js +4 -1
  158. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  159. package/lib/definitions/livesync.d.ts +1 -1
  160. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  161. package/lib/detached-processes/cleanup-process.js +16 -25
  162. package/lib/device-path-provider.js +23 -34
  163. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  164. package/lib/device-sockets/ios/notification.js +1 -1
  165. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  166. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  167. package/lib/helpers/deploy-command-helper.js +45 -49
  168. package/lib/helpers/key-command-helper.js +4 -13
  169. package/lib/helpers/livesync-command-helper.js +137 -152
  170. package/lib/helpers/network-connectivity-validator.js +6 -17
  171. package/lib/helpers/options-track-helper.js +6 -17
  172. package/lib/helpers/platform-command-helper.js +99 -120
  173. package/lib/key-commands/index.js +161 -211
  174. package/lib/nativescript-cli.js +5 -14
  175. package/lib/node-package-manager.js +81 -104
  176. package/lib/options.js +3 -12
  177. package/lib/package-installation-manager.js +130 -165
  178. package/lib/package-manager.js +63 -86
  179. package/lib/platform-command-param.js +4 -15
  180. package/lib/pnpm-package-manager.js +59 -78
  181. package/lib/project-data.js +1 -1
  182. package/lib/providers/project-files-provider.js +1 -1
  183. package/lib/services/analytics/analytics-broker-process.js +13 -22
  184. package/lib/services/analytics/analytics-broker.js +17 -30
  185. package/lib/services/analytics/analytics-service.js +161 -198
  186. package/lib/services/analytics/google-analytics-provider.js +41 -56
  187. package/lib/services/analytics-settings-service.js +15 -32
  188. package/lib/services/android/android-bundle-tool-service.js +43 -60
  189. package/lib/services/android/gradle-build-args-service.js +9 -20
  190. package/lib/services/android/gradle-build-service.js +34 -47
  191. package/lib/services/android/gradle-command-service.js +22 -35
  192. package/lib/services/android-device-debug-service.js +90 -117
  193. package/lib/services/android-plugin-build-service.js +230 -256
  194. package/lib/services/android-project-service.js +163 -199
  195. package/lib/services/android-resources-migration-service.js +51 -64
  196. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  197. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  198. package/lib/services/assets-generation/assets-generation-service.js +98 -115
  199. package/lib/services/build-artifacts-service.js +9 -20
  200. package/lib/services/build-info-file-service.js +20 -35
  201. package/lib/services/cleanup-service.js +47 -76
  202. package/lib/services/cocoapods-service.js +115 -136
  203. package/lib/services/device/device-install-app-service.js +73 -90
  204. package/lib/services/doctor-service.js +99 -118
  205. package/lib/services/extensibility-service.js +81 -100
  206. package/lib/services/files-hash-service.js +26 -43
  207. package/lib/services/hmr-status-service.js +1 -1
  208. package/lib/services/initialize-service.js +37 -50
  209. package/lib/services/ios/export-options-plist-service.js +38 -51
  210. package/lib/services/ios/ios-signing-service.js +161 -180
  211. package/lib/services/ios/spm-service.js +40 -53
  212. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  213. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  214. package/lib/services/ios/xcodebuild-service.js +50 -69
  215. package/lib/services/ios-debugger-port-service.js +23 -36
  216. package/lib/services/ios-device-debug-service.js +75 -102
  217. package/lib/services/ios-entitlements-service.js +31 -42
  218. package/lib/services/ios-extensions-service.js +18 -29
  219. package/lib/services/ios-project-service.js +405 -460
  220. package/lib/services/ios-provision-service.js +108 -129
  221. package/lib/services/ios-watch-app-service.js +21 -32
  222. package/lib/services/ip-service.js +38 -53
  223. package/lib/services/itmstransporter-service.js +129 -152
  224. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  225. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  226. package/lib/services/livesync/android-device-livesync-sockets-service.js +121 -152
  227. package/lib/services/livesync/android-livesync-service.js +14 -35
  228. package/lib/services/livesync/android-livesync-tool.js +89 -112
  229. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  230. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  231. package/lib/services/livesync/ios-livesync-service.js +42 -58
  232. package/lib/services/livesync/platform-livesync-service-base.js +94 -119
  233. package/lib/services/log-parser-service.js +1 -1
  234. package/lib/services/log-source-map-service.js +30 -41
  235. package/lib/services/marking-mode-service.js +15 -28
  236. package/lib/services/npm-config-service.js +1 -1
  237. package/lib/services/pacote-service.js +49 -64
  238. package/lib/services/performance-service.js +1 -1
  239. package/lib/services/platform/add-platform-service.js +50 -71
  240. package/lib/services/platform/platform-validation-service.js +22 -33
  241. package/lib/services/platform/prepare-native-platform-service.js +49 -62
  242. package/lib/services/platform-environment-requirements.js +26 -37
  243. package/lib/services/plugins-service.js +122 -147
  244. package/lib/services/project-backup-service.js +1 -1
  245. package/lib/services/project-changes-service.js +124 -141
  246. package/lib/services/project-cleanup-service.js +64 -77
  247. package/lib/services/project-config-service.js +71 -80
  248. package/lib/services/project-data-service.js +101 -118
  249. package/lib/services/project-name-service.js +28 -43
  250. package/lib/services/project-service.js +84 -103
  251. package/lib/services/project-templates-service.js +52 -67
  252. package/lib/services/start-service.js +41 -59
  253. package/lib/services/temp-service.js +8 -21
  254. package/lib/services/terminal-spinner-service.js +13 -24
  255. package/lib/services/test-execution-service.js +59 -72
  256. package/lib/services/test-initialization-service.js +2 -2
  257. package/lib/services/timeline-profiler-service.js +1 -1
  258. package/lib/services/versions-service.js +119 -138
  259. package/lib/services/webpack/webpack-compiler-service.js +211 -231
  260. package/lib/services/xcconfig-service.js +8 -19
  261. package/lib/sys-info.js +45 -62
  262. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  263. package/lib/yarn-package-manager.js +59 -78
  264. package/lib/yarn2-package-manager.js +60 -79
  265. package/package.json +57 -55
  266. package/vendor/aab-tool/bundletool.jar +0 -0
  267. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  268. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  269. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  270. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  271. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  272. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  273. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  274. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  275. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -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");
@@ -150,119 +141,107 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
150
141
  }
151
142
  return this._platformData;
152
143
  }
153
- validateOptions(projectId, provision, teamId) {
154
- return __awaiter(this, void 0, void 0, function* () {
155
- if (provision && teamId) {
156
- this.$errors.fail("The options --provision and --teamId are mutually exclusive.");
157
- }
158
- if (provision === true) {
159
- yield this.$iOSProvisionService.listProvisions(projectId);
160
- this.$errors.fail("Please provide provisioning profile uuid or name with the --provision option.");
161
- }
162
- if (teamId === true) {
163
- yield this.$iOSProvisionService.listTeams();
164
- this.$errors.fail("Please provide team id or team name with the --teamId options.");
165
- }
166
- return true;
167
- });
144
+ async validateOptions(projectId, provision, teamId) {
145
+ if (provision && teamId) {
146
+ this.$errors.fail("The options --provision and --teamId are mutually exclusive.");
147
+ }
148
+ if (provision === true) {
149
+ await this.$iOSProvisionService.listProvisions(projectId);
150
+ this.$errors.fail("Please provide provisioning profile uuid or name with the --provision option.");
151
+ }
152
+ if (teamId === true) {
153
+ await this.$iOSProvisionService.listTeams();
154
+ this.$errors.fail("Please provide team id or team name with the --teamId options.");
155
+ }
156
+ return true;
168
157
  }
169
158
  getAppResourcesDestinationDirectoryPath(projectData) {
170
159
  return path.join(this.getPlatformData(projectData).projectRoot, projectData.projectName, "Resources");
171
160
  }
172
- validate(projectData, options, notConfiguredEnvOptions) {
173
- return __awaiter(this, void 0, void 0, function* () {
174
- if (!this.$hostInfo.isDarwin) {
175
- return;
176
- }
177
- const checkEnvironmentRequirementsOutput = yield this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
178
- platform: this.getPlatformData(projectData).normalizedPlatformName,
179
- projectDir: projectData.projectDir,
180
- options,
181
- notConfiguredEnvOptions,
182
- });
183
- if (checkEnvironmentRequirementsOutput &&
184
- checkEnvironmentRequirementsOutput.canExecute) {
185
- const xcodeWarning = yield this.$sysInfo.getXcodeWarning();
186
- if (xcodeWarning) {
187
- this.$logger.warn(xcodeWarning);
188
- }
189
- }
190
- return {
191
- checkEnvironmentRequirementsOutput,
192
- };
161
+ async validate(projectData, options, notConfiguredEnvOptions) {
162
+ if (!this.$hostInfo.isDarwin) {
163
+ return;
164
+ }
165
+ const checkEnvironmentRequirementsOutput = await this.$platformEnvironmentRequirements.checkEnvironmentRequirements({
166
+ platform: this.getPlatformData(projectData).normalizedPlatformName,
167
+ projectDir: projectData.projectDir,
168
+ options,
169
+ notConfiguredEnvOptions,
193
170
  });
171
+ if (checkEnvironmentRequirementsOutput &&
172
+ checkEnvironmentRequirementsOutput.canExecute) {
173
+ const xcodeWarning = await this.$sysInfo.getXcodeWarning();
174
+ if (xcodeWarning) {
175
+ this.$logger.warn(xcodeWarning);
176
+ }
177
+ }
178
+ return {
179
+ checkEnvironmentRequirementsOutput,
180
+ };
194
181
  }
195
- createProject(frameworkDir, frameworkVersion, projectData) {
196
- return __awaiter(this, void 0, void 0, function* () {
197
- this.$fs.ensureDirectoryExists(path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER));
198
- shell.cp("-R", path.join(frameworkDir, "*"), this.getPlatformData(projectData).projectRoot);
199
- });
182
+ async createProject(frameworkDir, frameworkVersion, projectData) {
183
+ this.$fs.ensureDirectoryExists(path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER));
184
+ shell.cp("-R", path.join(frameworkDir, "*"), this.getPlatformData(projectData).projectRoot);
200
185
  }
201
- interpolateData(projectData) {
202
- return __awaiter(this, void 0, void 0, function* () {
203
- const projectRootFilePath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER);
204
- if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + "-Info.plist"))) {
205
- this.replaceFileName("-Info.plist", projectRootFilePath, projectData);
206
- }
207
- this.replaceFileName("-Prefix.pch", projectRootFilePath, projectData);
208
- if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + ".entitlements"))) {
209
- this.replaceFileName(".entitlements", projectRootFilePath, projectData);
210
- }
211
- const xcschemeDirPath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
212
- constants_2.IosProjectConstants.XcodeProjExtName, "xcshareddata/xcschemes");
213
- const xcschemeFilePath = path.join(xcschemeDirPath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
214
- constants_2.IosProjectConstants.XcodeSchemeExtName);
215
- if (this.$fs.exists(xcschemeFilePath)) {
216
- this.$logger.trace("Found shared scheme at xcschemeFilePath, renaming to match project name.");
217
- this.$logger.trace("Checkpoint 0");
218
- this.replaceFileContent(xcschemeFilePath, projectData);
219
- this.$logger.trace("Checkpoint 1");
220
- this.replaceFileName(constants_2.IosProjectConstants.XcodeSchemeExtName, xcschemeDirPath, projectData);
221
- this.$logger.trace("Checkpoint 2");
222
- }
223
- else {
224
- this.$logger.trace("Copying xcscheme from template not found at " + xcschemeFilePath);
225
- }
226
- this.replaceFileName(constants_2.IosProjectConstants.XcodeProjExtName, this.getPlatformData(projectData).projectRoot, projectData);
227
- const pbxprojFilePath = this.getPbxProjPath(projectData);
228
- this.replaceFileContent(pbxprojFilePath, projectData);
229
- const internalDirPath = path.join(projectRootFilePath, "..", "internal");
230
- const xcframeworksFilePath = path.join(internalDirPath, "XCFrameworks.zip");
231
- if (this.$fs.exists(xcframeworksFilePath)) {
232
- yield this.$fs.unzip(xcframeworksFilePath, internalDirPath);
233
- this.$fs.deleteFile(xcframeworksFilePath);
234
- }
235
- });
186
+ async interpolateData(projectData) {
187
+ const projectRootFilePath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER);
188
+ if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + "-Info.plist"))) {
189
+ this.replaceFileName("-Info.plist", projectRootFilePath, projectData);
190
+ }
191
+ this.replaceFileName("-Prefix.pch", projectRootFilePath, projectData);
192
+ if (this.$fs.exists(path.join(projectRootFilePath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER + ".entitlements"))) {
193
+ this.replaceFileName(".entitlements", projectRootFilePath, projectData);
194
+ }
195
+ const xcschemeDirPath = path.join(this.getPlatformData(projectData).projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
196
+ constants_2.IosProjectConstants.XcodeProjExtName, "xcshareddata/xcschemes");
197
+ const xcschemeFilePath = path.join(xcschemeDirPath, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER +
198
+ constants_2.IosProjectConstants.XcodeSchemeExtName);
199
+ if (this.$fs.exists(xcschemeFilePath)) {
200
+ this.$logger.trace("Found shared scheme at xcschemeFilePath, renaming to match project name.");
201
+ this.$logger.trace("Checkpoint 0");
202
+ this.replaceFileContent(xcschemeFilePath, projectData);
203
+ this.$logger.trace("Checkpoint 1");
204
+ this.replaceFileName(constants_2.IosProjectConstants.XcodeSchemeExtName, xcschemeDirPath, projectData);
205
+ this.$logger.trace("Checkpoint 2");
206
+ }
207
+ else {
208
+ this.$logger.trace("Copying xcscheme from template not found at " + xcschemeFilePath);
209
+ }
210
+ this.replaceFileName(constants_2.IosProjectConstants.XcodeProjExtName, this.getPlatformData(projectData).projectRoot, projectData);
211
+ const pbxprojFilePath = this.getPbxProjPath(projectData);
212
+ this.replaceFileContent(pbxprojFilePath, projectData);
213
+ const internalDirPath = path.join(projectRootFilePath, "..", "internal");
214
+ const xcframeworksFilePath = path.join(internalDirPath, "XCFrameworks.zip");
215
+ if (this.$fs.exists(xcframeworksFilePath)) {
216
+ await this.$fs.unzip(xcframeworksFilePath, internalDirPath);
217
+ this.$fs.deleteFile(xcframeworksFilePath);
218
+ }
236
219
  }
237
220
  interpolateConfigurationFile(projectData) {
238
221
  return undefined;
239
222
  }
240
- cleanProject(projectRoot, projectData) {
241
- return __awaiter(this, void 0, void 0, function* () {
242
- return null;
243
- });
223
+ async cleanProject(projectRoot, projectData) {
224
+ return null;
244
225
  }
245
226
  afterCreateProject(projectRoot, projectData) {
246
227
  this.$fs.rename(path.join(projectRoot, IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER), path.join(projectRoot, projectData.projectName));
247
228
  }
248
- buildProject(projectRoot, projectData, buildData) {
249
- return __awaiter(this, void 0, void 0, function* () {
250
- const platformData = this.getPlatformData(projectData);
251
- const handler = (data) => {
252
- this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data);
253
- };
254
- if (buildData.buildForDevice) {
255
- yield this.$iOSSigningService.setupSigningForDevice(projectRoot, projectData, buildData);
256
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForDevice(platformData, projectData, buildData));
257
- }
258
- else if (buildData.buildForAppStore) {
259
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForAppStore(platformData, projectData, buildData));
260
- }
261
- else {
262
- yield (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForSimulator(platformData, projectData, buildData));
263
- }
264
- this.validateApplicationIdentifier(projectData);
265
- });
229
+ async buildProject(projectRoot, projectData, buildData) {
230
+ const platformData = this.getPlatformData(projectData);
231
+ const handler = (data) => {
232
+ this.emit(constants.BUILD_OUTPUT_EVENT_NAME, data);
233
+ };
234
+ if (buildData.buildForDevice) {
235
+ await this.$iOSSigningService.setupSigningForDevice(projectRoot, projectData, buildData);
236
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForDevice(platformData, projectData, buildData));
237
+ }
238
+ else if (buildData.buildForAppStore) {
239
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForAppStore(platformData, projectData, buildData));
240
+ }
241
+ else {
242
+ await (0, helpers_1.attachAwaitDetach)(constants.BUILD_OUTPUT_EVENT_NAME, this.$childProcess, handler, this.$xcodebuildService.buildForSimulator(platformData, projectData, buildData));
243
+ }
244
+ this.validateApplicationIdentifier(projectData);
266
245
  }
267
246
  isPlatformPrepared(projectRoot, projectData) {
268
247
  return this.$fs.exists(path.join(projectRoot, projectData.projectName, constants.APP_FOLDER_NAME));
@@ -270,138 +249,130 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
270
249
  cleanDeviceTempFolder(deviceIdentifier) {
271
250
  return Promise.resolve();
272
251
  }
273
- isDynamicFramework(frameworkPath) {
274
- return __awaiter(this, void 0, void 0, function* () {
275
- const isDynamicFrameworkBundle = (bundlePath, frameworkName) => __awaiter(this, void 0, void 0, function* () {
276
- const frameworkBinaryPath = path.join(bundlePath, frameworkName);
277
- const fileResult = (yield this.$childProcess.spawnFromEvent("file", [frameworkBinaryPath], "close")).stdout;
278
- const isDynamicallyLinked = _.includes(fileResult, "dynamically linked");
279
- return isDynamicallyLinked;
280
- });
281
- if (path.extname(frameworkPath) === ".xcframework") {
282
- let isDynamic = true;
283
- const plistJson = this.$plistParser.parseFileSync(path.join(frameworkPath, "Info.plist"));
284
- for (const library of plistJson.AvailableLibraries) {
285
- const singlePlatformFramework = path.join(frameworkPath, library.LibraryIdentifier, library.LibraryPath);
286
- if (this.$fs.exists(singlePlatformFramework)) {
287
- const frameworkName = path.basename(singlePlatformFramework, path.extname(singlePlatformFramework));
288
- isDynamic = yield isDynamicFrameworkBundle(singlePlatformFramework, frameworkName);
289
- break;
290
- }
252
+ async isDynamicFramework(frameworkPath) {
253
+ const isDynamicFrameworkBundle = async (bundlePath, frameworkName) => {
254
+ const frameworkBinaryPath = path.join(bundlePath, frameworkName);
255
+ const fileResult = (await this.$childProcess.spawnFromEvent("file", [frameworkBinaryPath], "close")).stdout;
256
+ const isDynamicallyLinked = _.includes(fileResult, "dynamically linked");
257
+ return isDynamicallyLinked;
258
+ };
259
+ if (path.extname(frameworkPath) === ".xcframework") {
260
+ let isDynamic = true;
261
+ const plistJson = this.$plistParser.parseFileSync(path.join(frameworkPath, "Info.plist"));
262
+ for (const library of plistJson.AvailableLibraries) {
263
+ const singlePlatformFramework = path.join(frameworkPath, library.LibraryIdentifier, library.LibraryPath);
264
+ if (this.$fs.exists(singlePlatformFramework)) {
265
+ const frameworkName = path.basename(singlePlatformFramework, path.extname(singlePlatformFramework));
266
+ isDynamic = await isDynamicFrameworkBundle(singlePlatformFramework, frameworkName);
267
+ break;
291
268
  }
292
- return isDynamic;
293
269
  }
294
- else {
295
- const frameworkName = path.basename(frameworkPath, path.extname(frameworkPath));
296
- return yield isDynamicFrameworkBundle(frameworkPath, frameworkName);
297
- }
298
- });
270
+ return isDynamic;
271
+ }
272
+ else {
273
+ const frameworkName = path.basename(frameworkPath, path.extname(frameworkPath));
274
+ return await isDynamicFrameworkBundle(frameworkPath, frameworkName);
275
+ }
299
276
  }
300
- addFramework(frameworkPath, projectData) {
301
- return __awaiter(this, void 0, void 0, function* () {
302
- if (this.$hostInfo.isWindows) {
303
- return;
304
- }
305
- this.validateFramework(frameworkPath);
306
- const project = this.createPbxProj(projectData);
307
- const frameworkAddOptions = { customFramework: true };
308
- const dynamic = yield this.isDynamicFramework(frameworkPath);
309
- if (dynamic) {
310
- frameworkAddOptions["embed"] = true;
311
- frameworkAddOptions["sign"] = true;
312
- }
313
- if (this.$options.hostProjectPath) {
314
- frameworkAddOptions["embed"] = true;
315
- frameworkAddOptions["sign"] = false;
316
- }
317
- const frameworkRelativePath = this.getLibSubpathRelativeToProjectPath(frameworkPath, projectData);
318
- project.addFramework(frameworkRelativePath, frameworkAddOptions);
319
- this.savePbxProj(project, projectData);
320
- });
277
+ async addFramework(frameworkPath, projectData) {
278
+ if (this.$hostInfo.isWindows) {
279
+ return;
280
+ }
281
+ this.validateFramework(frameworkPath);
282
+ const project = this.createPbxProj(projectData);
283
+ const frameworkAddOptions = { customFramework: true };
284
+ const dynamic = await this.isDynamicFramework(frameworkPath);
285
+ if (dynamic) {
286
+ frameworkAddOptions["embed"] = true;
287
+ frameworkAddOptions["sign"] = true;
288
+ }
289
+ if (this.$options.hostProjectPath) {
290
+ frameworkAddOptions["embed"] = true;
291
+ frameworkAddOptions["sign"] = false;
292
+ }
293
+ const frameworkRelativePath = this.getLibSubpathRelativeToProjectPath(frameworkPath, projectData);
294
+ project.addFramework(frameworkRelativePath, frameworkAddOptions);
295
+ this.savePbxProj(project, projectData);
321
296
  }
322
- addStaticLibrary(staticLibPath, projectData) {
323
- return __awaiter(this, void 0, void 0, function* () {
324
- const libraryName = path.basename(staticLibPath, ".a");
325
- const headersSubpath = path.join(path.dirname(staticLibPath), "include", libraryName);
326
- const project = this.createPbxProj(projectData);
327
- const relativeStaticLibPath = this.getLibSubpathRelativeToProjectPath(staticLibPath, projectData);
328
- project.addFramework(relativeStaticLibPath);
329
- const relativeHeaderSearchPath = path.join(this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData));
330
- project.addToHeaderSearchPaths({ relativePath: relativeHeaderSearchPath });
331
- this.generateModulemap(headersSubpath, libraryName);
332
- this.savePbxProj(project, projectData);
333
- });
297
+ async addStaticLibrary(staticLibPath, projectData) {
298
+ const libraryName = path.basename(staticLibPath, ".a");
299
+ const headersSubpath = path.join(path.dirname(staticLibPath), "include", libraryName);
300
+ const project = this.createPbxProj(projectData);
301
+ const relativeStaticLibPath = this.getLibSubpathRelativeToProjectPath(staticLibPath, projectData);
302
+ project.addFramework(relativeStaticLibPath);
303
+ const relativeHeaderSearchPath = path.join(this.getLibSubpathRelativeToProjectPath(headersSubpath, projectData));
304
+ project.addToHeaderSearchPaths({ relativePath: relativeHeaderSearchPath });
305
+ this.generateModulemap(headersSubpath, libraryName);
306
+ this.savePbxProj(project, projectData);
334
307
  }
335
- prepareProject(projectData, prepareData) {
336
- return __awaiter(this, void 0, void 0, function* () {
337
- const projectRoot = this.$options.hostProjectPath
338
- ? this.$options.hostProjectPath
339
- : path.join(projectData.platformsDir, this.$devicePlatformsConstants.iOS.toLowerCase());
340
- const platformData = this.getPlatformData(projectData);
341
- const pluginsData = this.getAllProductionPlugins(projectData);
342
- const pbxProjPath = this.getPbxProjPath(projectData);
343
- this.$iOSExtensionsService.removeExtensions({ pbxProjPath });
344
- yield this.addExtensions(projectData, pluginsData);
345
- const resourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
346
- const provision = prepareData && prepareData.provision;
347
- const teamId = prepareData && prepareData.teamId;
348
- if (provision) {
349
- yield this.$iOSSigningService.setupSigningFromProvision(projectRoot, projectData, provision, prepareData.mobileProvisionData);
350
- }
351
- if (teamId) {
352
- yield this.$iOSSigningService.setupSigningFromTeam(projectRoot, projectData, teamId);
353
- }
354
- const project = this.createPbxProj(projectData);
355
- if (this.$options.hostProjectPath) {
356
- try {
357
- project.addPbxGroup([], "NativeScript", "NativeScript", null, {
358
- isMain: true,
359
- filesRelativeToProject: true,
360
- uuid: "NATIVESCRIPTNATIVESCRIPT",
361
- });
362
- const buildFolderPath = path.join(this.$options.hostProjectPath, projectData.projectName);
363
- project.addResourceFile(buildFolderPath, {}, "NATIVESCRIPTNATIVESCRIPT");
364
- const metadataPath = path.relative(this.$options.hostProjectPath, buildFolderPath);
365
- project.addToOtherLinkerFlags(JSON.stringify(`-sectcreate __DATA __TNSMetadata "${metadataPath}/metadata-arm64.bin"`));
366
- this.savePbxProj(project, projectData);
367
- }
368
- catch (err) {
369
- this.$logger.trace("Error adding NativeScript group to host project", err);
370
- }
371
- }
372
- const resources = project.pbxGroupByName("Resources");
373
- if (resources && !this.$options.hostProjectPath) {
374
- const references = project.pbxFileReferenceSection();
375
- const xcodeProjectImages = _.map(resources.children, (resource) => this.replace(references[resource.value].name));
376
- this.$logger.trace("Images from Xcode project");
377
- this.$logger.trace(xcodeProjectImages);
378
- const appResourcesImages = this.$fs.readDirectory(this.getAppResourcesDestinationDirectoryPath(projectData));
379
- this.$logger.trace("Current images from App_Resources");
380
- this.$logger.trace(appResourcesImages);
381
- const imagesToAdd = _.difference(appResourcesImages, xcodeProjectImages);
382
- this.$logger.trace(`New images to add into xcode project: ${imagesToAdd.join(", ")}`);
383
- _.each(imagesToAdd, (image) => project.addResourceFile(path.relative(this.getPlatformData(projectData).projectRoot, path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image))));
384
- const imagesToRemove = _.difference(xcodeProjectImages, appResourcesImages);
385
- this.$logger.trace(`Images to remove from xcode project: ${imagesToRemove.join(", ")}`);
386
- _.each(imagesToRemove, (image) => project.removeResourceFile(path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image)));
308
+ async prepareProject(projectData, prepareData) {
309
+ const projectRoot = this.$options.hostProjectPath
310
+ ? this.$options.hostProjectPath
311
+ : path.join(projectData.platformsDir, this.$devicePlatformsConstants.iOS.toLowerCase());
312
+ const platformData = this.getPlatformData(projectData);
313
+ const pluginsData = this.getAllProductionPlugins(projectData);
314
+ const pbxProjPath = this.getPbxProjPath(projectData);
315
+ this.$iOSExtensionsService.removeExtensions({ pbxProjPath });
316
+ await this.addExtensions(projectData, pluginsData);
317
+ const resourcesDirectoryPath = projectData.getAppResourcesDirectoryPath();
318
+ const provision = prepareData && prepareData.provision;
319
+ const teamId = prepareData && prepareData.teamId;
320
+ if (provision) {
321
+ await this.$iOSSigningService.setupSigningFromProvision(projectRoot, projectData, provision, prepareData.mobileProvisionData);
322
+ }
323
+ if (teamId) {
324
+ await this.$iOSSigningService.setupSigningFromTeam(projectRoot, projectData, teamId);
325
+ }
326
+ const project = this.createPbxProj(projectData);
327
+ if (this.$options.hostProjectPath) {
328
+ try {
329
+ project.addPbxGroup([], "NativeScript", "NativeScript", null, {
330
+ isMain: true,
331
+ filesRelativeToProject: true,
332
+ uuid: "NATIVESCRIPTNATIVESCRIPT",
333
+ });
334
+ const buildFolderPath = path.join(this.$options.hostProjectPath, projectData.projectName);
335
+ project.addResourceFile(buildFolderPath, {}, "NATIVESCRIPTNATIVESCRIPT");
336
+ const metadataPath = path.relative(this.$options.hostProjectPath, buildFolderPath);
337
+ project.addToOtherLinkerFlags(JSON.stringify(`-sectcreate __DATA __TNSMetadata "${metadataPath}/metadata-arm64.bin"`));
387
338
  this.savePbxProj(project, projectData);
388
- let resourcesNativeCodePath = path.join(resourcesDirectoryPath, platformData.normalizedPlatformName, constants.NATIVE_SOURCE_FOLDER);
389
- if (!this.$fs.exists(resourcesNativeCodePath)) {
390
- resourcesNativeCodePath = path.join(resourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants.NATIVE_SOURCE_FOLDER);
391
- }
392
- yield this.prepareNativeSourceCode(constants.TNS_NATIVE_SOURCE_GROUP_NAME, resourcesNativeCodePath, projectData);
393
339
  }
394
- this.$iOSWatchAppService.removeWatchApp({ pbxProjPath });
395
- const addedWatchApp = yield this.$iOSWatchAppService.addWatchAppFromPath({
396
- watchAppFolderPath: path.join(resourcesDirectoryPath, platformData.normalizedPlatformName),
397
- projectData,
398
- platformData,
399
- pbxProjPath,
400
- });
401
- if (addedWatchApp) {
402
- 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");
340
+ catch (err) {
341
+ this.$logger.trace("Error adding NativeScript group to host project", err);
403
342
  }
343
+ }
344
+ const resources = project.pbxGroupByName("Resources");
345
+ if (resources && !this.$options.hostProjectPath) {
346
+ const references = project.pbxFileReferenceSection();
347
+ const xcodeProjectImages = _.map(resources.children, (resource) => this.replace(references[resource.value].name));
348
+ this.$logger.trace("Images from Xcode project");
349
+ this.$logger.trace(xcodeProjectImages);
350
+ const appResourcesImages = this.$fs.readDirectory(this.getAppResourcesDestinationDirectoryPath(projectData));
351
+ this.$logger.trace("Current images from App_Resources");
352
+ this.$logger.trace(appResourcesImages);
353
+ const imagesToAdd = _.difference(appResourcesImages, xcodeProjectImages);
354
+ this.$logger.trace(`New images to add into xcode project: ${imagesToAdd.join(", ")}`);
355
+ _.each(imagesToAdd, (image) => project.addResourceFile(path.relative(this.getPlatformData(projectData).projectRoot, path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image))));
356
+ const imagesToRemove = _.difference(xcodeProjectImages, appResourcesImages);
357
+ this.$logger.trace(`Images to remove from xcode project: ${imagesToRemove.join(", ")}`);
358
+ _.each(imagesToRemove, (image) => project.removeResourceFile(path.join(this.getAppResourcesDestinationDirectoryPath(projectData), image)));
359
+ this.savePbxProj(project, projectData);
360
+ let resourcesNativeCodePath = path.join(resourcesDirectoryPath, platformData.normalizedPlatformName, constants.NATIVE_SOURCE_FOLDER);
361
+ if (!this.$fs.exists(resourcesNativeCodePath)) {
362
+ resourcesNativeCodePath = path.join(resourcesDirectoryPath, this.$devicePlatformsConstants.iOS, constants.NATIVE_SOURCE_FOLDER);
363
+ }
364
+ await this.prepareNativeSourceCode(constants.TNS_NATIVE_SOURCE_GROUP_NAME, resourcesNativeCodePath, projectData);
365
+ }
366
+ this.$iOSWatchAppService.removeWatchApp({ pbxProjPath });
367
+ const addedWatchApp = await this.$iOSWatchAppService.addWatchAppFromPath({
368
+ watchAppFolderPath: path.join(resourcesDirectoryPath, platformData.normalizedPlatformName),
369
+ projectData,
370
+ platformData,
371
+ pbxProjPath,
404
372
  });
373
+ if (addedWatchApp) {
374
+ 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");
375
+ }
405
376
  }
406
377
  prepareAppResources(projectData) {
407
378
  const platformData = this.getPlatformData(projectData);
@@ -423,48 +394,45 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
423
394
  this.$fs.deleteDirectory(path.join(platformsAppResourcesPath, "watchapp"));
424
395
  this.$fs.deleteDirectory(path.join(platformsAppResourcesPath, "watchextension"));
425
396
  }
426
- processConfigurationFilesFromAppResources(projectData, opts) {
427
- return __awaiter(this, void 0, void 0, function* () {
428
- yield this.mergeInfoPlists(projectData, opts);
429
- yield this.$iOSEntitlementsService.merge(projectData);
430
- yield this.mergeProjectXcconfigFiles(projectData);
431
- });
397
+ async processConfigurationFilesFromAppResources(projectData, opts) {
398
+ await this.mergeInfoPlists(projectData, opts);
399
+ await this.$iOSEntitlementsService.merge(projectData);
400
+ await this.mergeProjectXcconfigFiles(projectData);
432
401
  }
433
402
  ensureConfigurationFileInAppResources() {
434
403
  return null;
435
404
  }
436
- mergeInfoPlists(projectData, buildOptions) {
437
- return __awaiter(this, void 0, void 0, function* () {
438
- const projectDir = projectData.projectDir;
439
- const infoPlistPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, this.getPlatformData(projectData).configurationFileName);
440
- this.ensureConfigurationFileInAppResources();
441
- const reporterTraceMessage = "Info.plist:";
442
- const reporter = {
443
- log: (txt) => this.$logger.trace(`${reporterTraceMessage} ${txt}`),
444
- warn: (txt) => this.$logger.warn(`${reporterTraceMessage} ${txt}`),
445
- };
446
- const session = new plist_merge_patch_1.PlistSession(reporter);
447
- const makePatch = (plistPath) => {
448
- if (!this.$fs.exists(plistPath)) {
449
- this.$logger.trace("No plist found at: " + plistPath);
450
- return;
451
- }
452
- this.$logger.trace("Schedule merge plist at: " + plistPath);
453
- session.patch({
454
- name: path.relative(projectDir, plistPath),
455
- read: () => this.$fs.readText(plistPath),
456
- });
457
- };
458
- const allPlugins = this.getAllProductionPlugins(projectData);
459
- for (const plugin of allPlugins) {
460
- const pluginInfoPlistPath = path.join(plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME), this.getPlatformData(projectData).configurationFileName);
461
- makePatch(pluginInfoPlistPath);
405
+ async mergeInfoPlists(projectData, buildOptions) {
406
+ const projectDir = projectData.projectDir;
407
+ const infoPlistPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, this.getPlatformData(projectData).configurationFileName);
408
+ this.ensureConfigurationFileInAppResources();
409
+ const reporterTraceMessage = "Info.plist:";
410
+ const reporter = {
411
+ log: (txt) => this.$logger.trace(`${reporterTraceMessage} ${txt}`),
412
+ warn: (txt) => this.$logger.warn(`${reporterTraceMessage} ${txt}`),
413
+ };
414
+ const session = new plist_merge_patch_1.PlistSession(reporter);
415
+ const makePatch = (plistPath) => {
416
+ if (!this.$fs.exists(plistPath)) {
417
+ this.$logger.trace("No plist found at: " + plistPath);
418
+ return;
462
419
  }
463
- makePatch(infoPlistPath);
464
- if (projectData.projectIdentifiers && projectData.projectIdentifiers.ios) {
465
- session.patch({
466
- name: "CFBundleIdentifier from package.json nativescript.id",
467
- read: () => `<?xml version="1.0" encoding="UTF-8"?>
420
+ this.$logger.trace("Schedule merge plist at: " + plistPath);
421
+ session.patch({
422
+ name: path.relative(projectDir, plistPath),
423
+ read: () => this.$fs.readText(plistPath),
424
+ });
425
+ };
426
+ const allPlugins = this.getAllProductionPlugins(projectData);
427
+ for (const plugin of allPlugins) {
428
+ const pluginInfoPlistPath = path.join(plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME), this.getPlatformData(projectData).configurationFileName);
429
+ makePatch(pluginInfoPlistPath);
430
+ }
431
+ makePatch(infoPlistPath);
432
+ if (projectData.projectIdentifiers && projectData.projectIdentifiers.ios) {
433
+ session.patch({
434
+ name: "CFBundleIdentifier from package.json nativescript.id",
435
+ read: () => `<?xml version="1.0" encoding="UTF-8"?>
468
436
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
469
437
  <plist version="1.0">
470
438
  <dict>
@@ -472,14 +440,14 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
472
440
  <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
473
441
  </dict>
474
442
  </plist>`,
475
- });
476
- }
477
- if (!buildOptions.release &&
478
- projectData.projectIdentifiers &&
479
- projectData.projectIdentifiers.ios) {
480
- session.patch({
481
- name: "CFBundleURLTypes from package.json nativescript.id",
482
- read: () => `<?xml version="1.0" encoding="UTF-8"?>
443
+ });
444
+ }
445
+ if (!buildOptions.release &&
446
+ projectData.projectIdentifiers &&
447
+ projectData.projectIdentifiers.ios) {
448
+ session.patch({
449
+ name: "CFBundleURLTypes from package.json nativescript.id",
450
+ read: () => `<?xml version="1.0" encoding="UTF-8"?>
483
451
  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
484
452
  <plist version="1.0">
485
453
  <dict>
@@ -496,13 +464,12 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
496
464
  </array>
497
465
  </dict>
498
466
  </plist>`,
499
- });
500
- }
501
- const plistContent = session.build();
502
- this.$logger.trace("Info.plist: Write to: " +
503
- this.getPlatformData(projectData).configurationFilePath);
504
- this.$fs.writeFile(this.getPlatformData(projectData).configurationFilePath, plistContent);
505
- });
467
+ });
468
+ }
469
+ const plistContent = session.build();
470
+ this.$logger.trace("Info.plist: Write to: " +
471
+ this.getPlatformData(projectData).configurationFilePath);
472
+ this.$fs.writeFile(this.getPlatformData(projectData).configurationFilePath, plistContent);
506
473
  }
507
474
  getAllProductionPlugins(projectData) {
508
475
  return (this.$injector.resolve("pluginsService")).getAllProductionPlugins(projectData, this.getPlatformData(projectData).platformNameLowerCase);
@@ -536,89 +503,81 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
536
503
  savePbxProj(project, projectData, omitEmptyValues) {
537
504
  return this.$fs.writeFile(this.getPbxProjPath(projectData), project.writeSync({ omitEmptyValues }));
538
505
  }
539
- preparePluginNativeCode(pluginData, projectData, opts) {
540
- return __awaiter(this, void 0, void 0, function* () {
541
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
542
- const sourcePath = path.join(pluginPlatformsFolderPath, "src");
543
- yield this.prepareNativeSourceCode(pluginData.name, sourcePath, projectData);
544
- yield this.prepareResources(pluginPlatformsFolderPath, pluginData, projectData);
545
- yield this.prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
546
- yield this.prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
547
- });
548
- }
549
- removePluginNativeCode(pluginData, projectData) {
550
- return __awaiter(this, void 0, void 0, function* () {
551
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
552
- this.removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData);
553
- this.removeFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
554
- this.removeStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
555
- const projectRoot = this.getPlatformData(projectData).projectRoot;
556
- this.$cocoapodsService.removePodfileFromProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, projectRoot);
557
- });
506
+ async preparePluginNativeCode(pluginData, projectData, opts) {
507
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
508
+ const sourcePath = path.join(pluginPlatformsFolderPath, "src");
509
+ await this.prepareNativeSourceCode(pluginData.name, sourcePath, projectData);
510
+ await this.prepareResources(pluginPlatformsFolderPath, pluginData, projectData);
511
+ await this.prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
512
+ await this.prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
513
+ }
514
+ async removePluginNativeCode(pluginData, projectData) {
515
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
516
+ this.removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData);
517
+ this.removeFrameworks(pluginPlatformsFolderPath, pluginData, projectData);
518
+ this.removeStaticLibs(pluginPlatformsFolderPath, pluginData, projectData);
519
+ const projectRoot = this.getPlatformData(projectData).projectRoot;
520
+ this.$cocoapodsService.removePodfileFromProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, projectRoot);
558
521
  }
559
- handleNativeDependenciesChange(projectData, opts) {
560
- return __awaiter(this, void 0, void 0, function* () {
561
- const platformData = this.getPlatformData(projectData);
562
- const pluginsData = this.getAllProductionPlugins(projectData);
563
- this.setProductBundleIdentifier(projectData);
564
- yield this.applyPluginsCocoaPods(pluginsData, projectData, platformData);
565
- yield this.$cocoapodsService.applyPodfileFromAppResources(projectData, platformData);
566
- yield this.$cocoapodsService.applyPodfileArchExclusions(projectData, platformData);
567
- yield this.$cocoapodsService.applyPodfileFromExtensions(projectData, platformData);
568
- const projectPodfilePath = this.$cocoapodsService.getProjectPodfilePath(platformData.projectRoot);
569
- if (this.$fs.exists(projectPodfilePath)) {
570
- yield this.$cocoapodsService.executePodInstall(platformData.projectRoot, this.$xcprojService.getXcodeprojPath(projectData, platformData.projectRoot));
571
- yield this.$cocoapodsService.mergePodXcconfigFile(projectData, platformData, opts);
572
- }
573
- yield this.$spmService.applySPMPackages(platformData, projectData);
574
- });
522
+ async handleNativeDependenciesChange(projectData, opts) {
523
+ const platformData = this.getPlatformData(projectData);
524
+ const pluginsData = this.getAllProductionPlugins(projectData);
525
+ this.setProductBundleIdentifier(projectData);
526
+ await this.applyPluginsCocoaPods(pluginsData, projectData, platformData);
527
+ await this.$cocoapodsService.applyPodfileFromAppResources(projectData, platformData);
528
+ await this.$cocoapodsService.applyPodfileArchExclusions(projectData, platformData);
529
+ await this.$cocoapodsService.applyPodfileFromExtensions(projectData, platformData);
530
+ const projectPodfilePath = this.$cocoapodsService.getProjectPodfilePath(platformData.projectRoot);
531
+ if (this.$fs.exists(projectPodfilePath)) {
532
+ await this.$cocoapodsService.executePodInstall(platformData.projectRoot, this.$xcprojService.getXcodeprojPath(projectData, platformData.projectRoot));
533
+ await this.$cocoapodsService.mergePodXcconfigFile(projectData, platformData, opts);
534
+ }
535
+ await this.$spmService.applySPMPackages(platformData, projectData);
575
536
  }
576
537
  beforePrepareAllPlugins(projectData, dependencies) {
577
538
  return Promise.resolve(dependencies);
578
539
  }
579
- checkForChanges(changesInfo, prepareData, projectData) {
580
- return __awaiter(this, void 0, void 0, function* () {
581
- const { provision, teamId } = prepareData;
582
- const hasProvision = provision !== undefined;
583
- const hasTeamId = teamId !== undefined;
584
- if (hasProvision || hasTeamId) {
585
- const pbxprojPath = this.getPbxProjPath(projectData);
586
- if (this.$fs.exists(pbxprojPath)) {
587
- const xcode = this.$pbxprojDomXcode.Xcode.open(pbxprojPath);
588
- const signing = xcode.getSigning(projectData.projectName);
589
- if (hasProvision) {
590
- if (signing && signing.style === "Manual") {
591
- for (const name in signing.configurations) {
592
- const config = signing.configurations[name];
593
- if (config.uuid !== provision && config.name !== provision) {
594
- changesInfo.signingChanged = true;
595
- break;
596
- }
540
+ async checkForChanges(changesInfo, prepareData, projectData) {
541
+ const { provision, teamId } = prepareData;
542
+ const hasProvision = provision !== undefined;
543
+ const hasTeamId = teamId !== undefined;
544
+ if (hasProvision || hasTeamId) {
545
+ const pbxprojPath = this.getPbxProjPath(projectData);
546
+ if (this.$fs.exists(pbxprojPath)) {
547
+ const xcode = this.$pbxprojDomXcode.Xcode.open(pbxprojPath);
548
+ const signing = xcode.getSigning(projectData.projectName);
549
+ if (hasProvision) {
550
+ if (signing && signing.style === "Manual") {
551
+ for (const name in signing.configurations) {
552
+ const config = signing.configurations[name];
553
+ if (config.uuid !== provision && config.name !== provision) {
554
+ changesInfo.signingChanged = true;
555
+ break;
597
556
  }
598
557
  }
599
- else {
600
- changesInfo.signingChanged = true;
601
- }
602
558
  }
603
- if (hasTeamId) {
604
- if (signing && signing.style === "Automatic") {
605
- if (signing.team !== teamId) {
606
- const teamIdsForName = yield this.$iOSProvisionService.getTeamIdsWithName(teamId);
607
- if (!teamIdsForName.some((id) => id === signing.team)) {
608
- changesInfo.signingChanged = true;
609
- }
559
+ else {
560
+ changesInfo.signingChanged = true;
561
+ }
562
+ }
563
+ if (hasTeamId) {
564
+ if (signing && signing.style === "Automatic") {
565
+ if (signing.team !== teamId) {
566
+ const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
567
+ if (!teamIdsForName.some((id) => id === signing.team)) {
568
+ changesInfo.signingChanged = true;
610
569
  }
611
570
  }
612
- else {
613
- changesInfo.signingChanged = true;
614
- }
615
571
  }
616
- }
617
- else {
618
- changesInfo.signingChanged = true;
572
+ else {
573
+ changesInfo.signingChanged = true;
574
+ }
619
575
  }
620
576
  }
621
- });
577
+ else {
578
+ changesInfo.signingChanged = true;
579
+ }
580
+ }
622
581
  }
623
582
  getDeploymentTarget(projectData) {
624
583
  const target = this.$xcconfigService.readPropertyValue(this.getBuildXCConfigFilePath(projectData), "IPHONEOS_DEPLOYMENT_TARGET");
@@ -665,54 +624,50 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
665
624
  const newFileName = projectData.projectName + fileNamePart;
666
625
  this.$fs.rename(path.join(fileRootLocation, oldFileName), path.join(fileRootLocation, newFileName));
667
626
  }
668
- prepareNativeSourceCode(groupName, sourceFolderPath, projectData) {
669
- return __awaiter(this, void 0, void 0, function* () {
670
- const project = this.createPbxProj(projectData);
671
- const group = this.getRootGroup(groupName, sourceFolderPath);
672
- project.addPbxGroup(group.files, group.name, group.path, null, {
673
- isMain: true,
674
- filesRelativeToProject: true,
675
- });
676
- project.addToHeaderSearchPaths(group.path);
677
- const headerFiles = this.$fs.exists(sourceFolderPath)
678
- ? this.$fs.enumerateFilesInDirectorySync(sourceFolderPath, (file, stat) => stat.isDirectory() || path.extname(file) === ".h")
679
- : [];
680
- if (headerFiles.length > 0 &&
681
- !this.$fs.exists(path.join(sourceFolderPath, "module.modulemap"))) {
682
- 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`);
683
- }
684
- this.savePbxProj(project, projectData);
627
+ async prepareNativeSourceCode(groupName, sourceFolderPath, projectData) {
628
+ const project = this.createPbxProj(projectData);
629
+ const group = this.getRootGroup(groupName, sourceFolderPath);
630
+ project.addPbxGroup(group.files, group.name, group.path, null, {
631
+ isMain: true,
632
+ filesRelativeToProject: true,
685
633
  });
634
+ project.addToHeaderSearchPaths(group.path);
635
+ const headerFiles = this.$fs.exists(sourceFolderPath)
636
+ ? this.$fs.enumerateFilesInDirectorySync(sourceFolderPath, (file, stat) => stat.isDirectory() || path.extname(file) === ".h")
637
+ : [];
638
+ if (headerFiles.length > 0 &&
639
+ !this.$fs.exists(path.join(sourceFolderPath, "module.modulemap"))) {
640
+ 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`);
641
+ }
642
+ this.savePbxProj(project, projectData);
686
643
  }
687
- addExtensions(projectData, pluginsData) {
688
- return __awaiter(this, void 0, void 0, function* () {
689
- const resorcesExtensionsPath = path.join(projectData.getAppResourcesDirectoryPath(), this.getPlatformData(projectData).normalizedPlatformName, constants.NATIVE_EXTENSION_FOLDER);
690
- const platformData = this.getPlatformData(projectData);
691
- const pbxProjPath = this.getPbxProjPath(projectData);
692
- const addedExtensionsFromResources = yield this.$iOSExtensionsService.addExtensionsFromPath({
693
- extensionsFolderPath: resorcesExtensionsPath,
644
+ async addExtensions(projectData, pluginsData) {
645
+ const resorcesExtensionsPath = path.join(projectData.getAppResourcesDirectoryPath(), this.getPlatformData(projectData).normalizedPlatformName, constants.NATIVE_EXTENSION_FOLDER);
646
+ const platformData = this.getPlatformData(projectData);
647
+ const pbxProjPath = this.getPbxProjPath(projectData);
648
+ const addedExtensionsFromResources = await this.$iOSExtensionsService.addExtensionsFromPath({
649
+ extensionsFolderPath: resorcesExtensionsPath,
650
+ projectData,
651
+ platformData,
652
+ pbxProjPath,
653
+ });
654
+ let addedExtensionsFromPlugins = false;
655
+ for (const pluginIndex in pluginsData) {
656
+ const pluginData = pluginsData[pluginIndex];
657
+ const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
658
+ const extensionPath = path.join(pluginPlatformsFolderPath, constants.NATIVE_EXTENSION_FOLDER);
659
+ const addedExtensionFromPlugin = await this.$iOSExtensionsService.addExtensionsFromPath({
660
+ extensionsFolderPath: extensionPath,
694
661
  projectData,
695
662
  platformData,
696
663
  pbxProjPath,
697
664
  });
698
- let addedExtensionsFromPlugins = false;
699
- for (const pluginIndex in pluginsData) {
700
- const pluginData = pluginsData[pluginIndex];
701
- const pluginPlatformsFolderPath = pluginData.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
702
- const extensionPath = path.join(pluginPlatformsFolderPath, constants.NATIVE_EXTENSION_FOLDER);
703
- const addedExtensionFromPlugin = yield this.$iOSExtensionsService.addExtensionsFromPath({
704
- extensionsFolderPath: extensionPath,
705
- projectData,
706
- platformData,
707
- pbxProjPath,
708
- });
709
- addedExtensionsFromPlugins =
710
- addedExtensionsFromPlugins || addedExtensionFromPlugin;
711
- }
712
- if (addedExtensionsFromResources || addedExtensionsFromPlugins) {
713
- this.$logger.warn("The support for iOS App Extensions 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/4472");
714
- }
715
- });
665
+ addedExtensionsFromPlugins =
666
+ addedExtensionsFromPlugins || addedExtensionFromPlugin;
667
+ }
668
+ if (addedExtensionsFromResources || addedExtensionsFromPlugins) {
669
+ this.$logger.warn("The support for iOS App Extensions 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/4472");
670
+ }
716
671
  }
717
672
  getRootGroup(name, rootPath) {
718
673
  const filePathsArr = [];
@@ -732,32 +687,26 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
732
687
  }
733
688
  return rootGroup;
734
689
  }
735
- prepareResources(pluginPlatformsFolderPath, pluginData, projectData) {
736
- return __awaiter(this, void 0, void 0, function* () {
737
- const project = this.createPbxProj(projectData);
738
- const resourcesPath = path.join(pluginPlatformsFolderPath, "Resources");
739
- if (this.$fs.exists(resourcesPath) && !this.$fs.isEmptyDir(resourcesPath)) {
740
- for (const fileName of this.$fs.readDirectory(resourcesPath)) {
741
- const filePath = path.join(resourcesPath, fileName);
742
- project.addResourceFile(filePath);
743
- }
690
+ async prepareResources(pluginPlatformsFolderPath, pluginData, projectData) {
691
+ const project = this.createPbxProj(projectData);
692
+ const resourcesPath = path.join(pluginPlatformsFolderPath, "Resources");
693
+ if (this.$fs.exists(resourcesPath) && !this.$fs.isEmptyDir(resourcesPath)) {
694
+ for (const fileName of this.$fs.readDirectory(resourcesPath)) {
695
+ const filePath = path.join(resourcesPath, fileName);
696
+ project.addResourceFile(filePath);
744
697
  }
745
- this.savePbxProj(project, projectData);
746
- });
698
+ }
699
+ this.savePbxProj(project, projectData);
747
700
  }
748
- prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData) {
749
- return __awaiter(this, void 0, void 0, function* () {
750
- for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, FRAMEWORK_EXTENSIONS)) {
751
- yield this.addFramework(path.join(pluginPlatformsFolderPath, fileName), projectData);
752
- }
753
- });
701
+ async prepareFrameworks(pluginPlatformsFolderPath, pluginData, projectData) {
702
+ for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, FRAMEWORK_EXTENSIONS)) {
703
+ await this.addFramework(path.join(pluginPlatformsFolderPath, fileName), projectData);
704
+ }
754
705
  }
755
- prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData) {
756
- return __awaiter(this, void 0, void 0, function* () {
757
- for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, ".a")) {
758
- yield this.addStaticLibrary(path.join(pluginPlatformsFolderPath, fileName), projectData);
759
- }
760
- });
706
+ async prepareStaticLibs(pluginPlatformsFolderPath, pluginData, projectData) {
707
+ for (const fileName of this.getAllLibsForPluginWithFileExtension(pluginData, ".a")) {
708
+ await this.addStaticLibrary(path.join(pluginPlatformsFolderPath, fileName), projectData);
709
+ }
761
710
  }
762
711
  removeNativeSourceCode(pluginPlatformsFolderPath, pluginData, projectData) {
763
712
  const project = this.createPbxProj(projectData);
@@ -806,46 +755,44 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
806
755
  const modulemap = `module ${libraryName} { explicit module ${libraryName} { ${headers.join(" ")} } }`;
807
756
  this.$fs.writeFile(path.join(headersFolderPath, "module.modulemap"), modulemap);
808
757
  }
809
- mergeProjectXcconfigFiles(projectData) {
810
- return __awaiter(this, void 0, void 0, function* () {
811
- const platformData = this.getPlatformData(projectData);
812
- const pluginsXcconfigFilePaths = _.values(this.$xcconfigService.getPluginsXcconfigFilePaths(platformData.projectRoot));
813
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
814
- this.$fs.deleteFile(pluginsXcconfigFilePath);
815
- }
816
- const allPlugins = this.getAllProductionPlugins(projectData);
817
- for (const plugin of allPlugins) {
818
- const pluginPlatformsFolderPath = plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
819
- const pluginXcconfigFilePath = path.join(pluginPlatformsFolderPath, constants_2.BUILD_XCCONFIG_FILE_NAME);
820
- if (this.$fs.exists(pluginXcconfigFilePath)) {
821
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
822
- yield this.$xcconfigService.mergeFiles(pluginXcconfigFilePath, pluginsXcconfigFilePath);
823
- }
824
- }
825
- }
826
- const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
827
- if (this.$fs.exists(appResourcesXcconfigPath)) {
758
+ async mergeProjectXcconfigFiles(projectData) {
759
+ const platformData = this.getPlatformData(projectData);
760
+ const pluginsXcconfigFilePaths = _.values(this.$xcconfigService.getPluginsXcconfigFilePaths(platformData.projectRoot));
761
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
762
+ this.$fs.deleteFile(pluginsXcconfigFilePath);
763
+ }
764
+ const allPlugins = this.getAllProductionPlugins(projectData);
765
+ for (const plugin of allPlugins) {
766
+ const pluginPlatformsFolderPath = plugin.pluginPlatformsFolderPath(IOSProjectService.IOS_PLATFORM_NAME);
767
+ const pluginXcconfigFilePath = path.join(pluginPlatformsFolderPath, constants_2.BUILD_XCCONFIG_FILE_NAME);
768
+ if (this.$fs.exists(pluginXcconfigFilePath)) {
828
769
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
829
- yield this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
770
+ await this.$xcconfigService.mergeFiles(pluginXcconfigFilePath, pluginsXcconfigFilePath);
830
771
  }
831
772
  }
773
+ }
774
+ const appResourcesXcconfigPath = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
775
+ if (this.$fs.exists(appResourcesXcconfigPath)) {
832
776
  for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
833
- if (!this.$fs.exists(pluginsXcconfigFilePath)) {
834
- this.$fs.writeFile(pluginsXcconfigFilePath, "");
835
- }
777
+ await this.$xcconfigService.mergeFiles(appResourcesXcconfigPath, pluginsXcconfigFilePath);
836
778
  }
837
- for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
838
- const entitlementsPropertyValue = this.$xcconfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS);
839
- if (entitlementsPropertyValue === null &&
840
- this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) {
841
- const tempEntitlementsDir = yield this.$tempService.mkdirSync("entitlements");
842
- const tempEntitlementsFilePath = path.join(tempEntitlementsDir, "set-entitlements.xcconfig");
843
- const entitlementsRelativePath = this.$iOSEntitlementsService.getPlatformsEntitlementsRelativePath(projectData);
844
- this.$fs.writeFile(tempEntitlementsFilePath, `CODE_SIGN_ENTITLEMENTS = ${entitlementsRelativePath}${os_1.EOL}`);
845
- yield this.$xcconfigService.mergeFiles(tempEntitlementsFilePath, pluginsXcconfigFilePath);
846
- }
779
+ }
780
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
781
+ if (!this.$fs.exists(pluginsXcconfigFilePath)) {
782
+ this.$fs.writeFile(pluginsXcconfigFilePath, "");
847
783
  }
848
- });
784
+ }
785
+ for (const pluginsXcconfigFilePath of pluginsXcconfigFilePaths) {
786
+ const entitlementsPropertyValue = this.$xcconfigService.readPropertyValue(pluginsXcconfigFilePath, constants.CODE_SIGN_ENTITLEMENTS);
787
+ if (entitlementsPropertyValue === null &&
788
+ this.$fs.exists(this.$iOSEntitlementsService.getPlatformsEntitlementsPath(projectData))) {
789
+ const tempEntitlementsDir = await this.$tempService.mkdirSync("entitlements");
790
+ const tempEntitlementsFilePath = path.join(tempEntitlementsDir, "set-entitlements.xcconfig");
791
+ const entitlementsRelativePath = this.$iOSEntitlementsService.getPlatformsEntitlementsRelativePath(projectData);
792
+ this.$fs.writeFile(tempEntitlementsFilePath, `CODE_SIGN_ENTITLEMENTS = ${entitlementsRelativePath}${os_1.EOL}`);
793
+ await this.$xcconfigService.mergeFiles(tempEntitlementsFilePath, pluginsXcconfigFilePath);
794
+ }
795
+ }
849
796
  }
850
797
  getBuildXCConfigFilePath(projectData) {
851
798
  const buildXCConfig = path.join(projectData.appResourcesDirectoryPath, this.getPlatformData(projectData).normalizedPlatformName, constants_2.BUILD_XCCONFIG_FILE_NAME);
@@ -864,21 +811,19 @@ class IOSProjectService extends projectServiceBaseLib.PlatformProjectServiceBase
864
811
  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}".`);
865
812
  }
866
813
  }
867
- applyPluginsCocoaPods(pluginsData, projectData, platformData) {
868
- return __awaiter(this, void 0, void 0, function* () {
869
- for (const pluginIndex in pluginsData) {
870
- const pluginData = pluginsData[pluginIndex];
871
- if (this.$fs.exists(pluginData.pluginPlatformsFolderPath(platformData.normalizedPlatformName))) {
872
- yield this.$cocoapodsService.applyPodfileToProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, platformData);
873
- }
814
+ async applyPluginsCocoaPods(pluginsData, projectData, platformData) {
815
+ for (const pluginIndex in pluginsData) {
816
+ const pluginData = pluginsData[pluginIndex];
817
+ if (this.$fs.exists(pluginData.pluginPlatformsFolderPath(platformData.normalizedPlatformName))) {
818
+ await this.$cocoapodsService.applyPodfileToProject(pluginData.name, this.$cocoapodsService.getPluginPodfilePath(pluginData), projectData, platformData);
874
819
  }
875
- });
820
+ }
876
821
  }
877
822
  }
823
+ exports.IOSProjectService = IOSProjectService;
878
824
  IOSProjectService.IOS_PROJECT_NAME_PLACEHOLDER = "__PROJECT_NAME__";
879
825
  IOSProjectService.IOS_PLATFORM_NAME = "ios";
880
826
  __decorate([
881
827
  (0, helpers_2.hook)("buildIOS")
882
828
  ], IOSProjectService.prototype, "buildProject", null);
883
- exports.IOSProjectService = IOSProjectService;
884
829
  yok_1.injector.register("iOSProjectService", IOSProjectService);