nativescript 8.9.0-dev.2 → 8.9.0-dev.4
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.
- package/config/test-deps-versions-generated.json +1 -1
- package/docs/man_pages/project/configuration/widget-ios.md +24 -0
- package/docs/man_pages/project/configuration/widget.md +24 -0
- package/docs/man_pages/start.md +1 -1
- package/lib/android-tools-info.js +11 -22
- package/lib/base-package-manager.js +53 -70
- package/lib/bun-package-manager.js +75 -98
- package/lib/color.js +4 -4
- package/lib/commands/add-platform.js +14 -30
- package/lib/commands/apple-login.js +18 -29
- package/lib/commands/appstore-list.js +34 -45
- package/lib/commands/appstore-upload.js +54 -67
- package/lib/commands/build.js +55 -87
- package/lib/commands/clean.js +169 -184
- package/lib/commands/command-base.js +14 -27
- package/lib/commands/config.js +49 -68
- package/lib/commands/create-project.js +215 -234
- package/lib/commands/debug.js +66 -88
- package/lib/commands/deploy.js +28 -44
- package/lib/commands/embedding/embed.js +37 -56
- package/lib/commands/extensibility/install-extension.js +5 -16
- package/lib/commands/extensibility/list-extensions.js +13 -24
- package/lib/commands/extensibility/uninstall-extension.js +4 -15
- package/lib/commands/fonts.js +30 -41
- package/lib/commands/generate-assets.js +13 -28
- package/lib/commands/generate-help.js +2 -13
- package/lib/commands/generate.js +49 -60
- package/lib/commands/info.js +2 -13
- package/lib/commands/install.js +34 -49
- package/lib/commands/list-platforms.js +14 -25
- package/lib/commands/migrate.js +15 -26
- package/lib/commands/native-add.js +23 -46
- package/lib/commands/platform-clean.js +19 -32
- package/lib/commands/plugin/add-plugin.js +12 -25
- package/lib/commands/plugin/build-plugin.js +31 -44
- package/lib/commands/plugin/create-plugin.js +114 -137
- package/lib/commands/plugin/list-plugins.js +22 -33
- package/lib/commands/plugin/remove-plugin.js +21 -34
- package/lib/commands/plugin/update-plugin.js +20 -33
- package/lib/commands/post-install.js +25 -38
- package/lib/commands/prepare.js +19 -35
- package/lib/commands/preview.js +50 -63
- package/lib/commands/remove-platform.js +7 -18
- package/lib/commands/resources/resources-update.js +14 -27
- package/lib/commands/run.js +55 -76
- package/lib/commands/start.js +6 -19
- package/lib/commands/test-init.js +126 -137
- package/lib/commands/test.js +72 -95
- package/lib/commands/typings.js +126 -142
- package/lib/commands/update-platform.js +26 -39
- package/lib/commands/update.js +31 -44
- package/lib/commands/widget.js +408 -357
- package/lib/common/child-process.js +53 -72
- package/lib/common/codeGeneration/code-entity.js +1 -1
- package/lib/common/codeGeneration/code-printer.js +1 -1
- package/lib/common/command-params.js +7 -18
- package/lib/common/commands/analytics.js +29 -42
- package/lib/common/commands/autocompletion.js +41 -58
- package/lib/common/commands/device/device-log-stream.js +12 -23
- package/lib/common/commands/device/get-file.js +23 -34
- package/lib/common/commands/device/list-applications.js +12 -23
- package/lib/common/commands/device/list-devices.js +72 -87
- package/lib/common/commands/device/list-files.js +24 -35
- package/lib/common/commands/device/put-file.js +23 -34
- package/lib/common/commands/device/run-application.js +12 -25
- package/lib/common/commands/device/stop-application.js +11 -22
- package/lib/common/commands/device/uninstall-application.js +6 -17
- package/lib/common/commands/generate-messages.js +17 -28
- package/lib/common/commands/help.js +20 -33
- package/lib/common/commands/package-manager-get.js +6 -17
- package/lib/common/commands/package-manager-set.js +9 -20
- package/lib/common/commands/post-install.js +2 -13
- package/lib/common/commands/preuninstall.js +27 -42
- package/lib/common/commands/proxy/proxy-base.js +11 -22
- package/lib/common/commands/proxy/proxy-clear.js +4 -15
- package/lib/common/commands/proxy/proxy-get.js +3 -14
- package/lib/common/commands/proxy/proxy-set.js +87 -100
- package/lib/common/constants.js +11 -11
- package/lib/common/decorators.js +10 -22
- package/lib/common/dispatchers.js +84 -101
- package/lib/common/errors.js +92 -107
- package/lib/common/file-system.js +110 -132
- package/lib/common/header.js +1 -2
- package/lib/common/helpers.js +149 -178
- package/lib/common/host-info.js +40 -53
- package/lib/common/http-client.js +104 -119
- package/lib/common/logger/appenders/cli-appender.js +1 -2
- package/lib/common/logger/appenders/emit-appender.js +1 -2
- package/lib/common/logger/layouts/cli-layout.js +1 -2
- package/lib/common/logger/logger.js +4 -4
- package/lib/common/mobile/android/android-application-manager.js +138 -159
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
- package/lib/common/mobile/android/android-debug-bridge.js +92 -117
- package/lib/common/mobile/android/android-device-file-system.js +101 -134
- package/lib/common/mobile/android/android-device-hash-service.js +52 -77
- package/lib/common/mobile/android/android-device.js +73 -90
- package/lib/common/mobile/android/android-emulator-services.js +105 -130
- package/lib/common/mobile/android/android-log-filter.js +1 -1
- package/lib/common/mobile/android/android-virtual-device-service.js +78 -99
- package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
- package/lib/common/mobile/android/genymotion/genymotion-service.js +94 -121
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +74 -91
- package/lib/common/mobile/android/logcat-helper.js +114 -133
- package/lib/common/mobile/application-manager-base.js +89 -112
- package/lib/common/mobile/device-log-provider-base.js +7 -18
- package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
- package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
- package/lib/common/mobile/ios/device/ios-device-operations.js +106 -143
- package/lib/common/mobile/ios/device/ios-device.js +20 -36
- package/lib/common/mobile/ios/ios-device-base.js +58 -81
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +66 -95
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +61 -90
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +31 -47
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
- package/lib/common/mobile/mobile-core/android-device-discovery.js +44 -63
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +23 -34
- package/lib/common/mobile/mobile-core/android-process-service.js +174 -213
- package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
- package/lib/common/mobile/mobile-core/devices-service.js +400 -450
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +25 -36
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +49 -64
- package/lib/common/mobile/mobile-helper.js +15 -26
- package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
- package/lib/common/opener.js +2 -2
- package/lib/common/prompter.js +91 -106
- package/lib/common/queue.js +9 -20
- package/lib/common/services/auto-completion-service.js +40 -53
- package/lib/common/services/cancellation.js +17 -28
- package/lib/common/services/commands-service.js +156 -179
- package/lib/common/services/help-service.js +130 -155
- package/lib/common/services/hooks-service.js +99 -114
- package/lib/common/services/ios-notification-service.js +21 -34
- package/lib/common/services/json-file-settings-service.js +56 -75
- package/lib/common/services/lock-service.js +35 -52
- package/lib/common/services/message-contract-generator.js +35 -46
- package/lib/common/services/micro-templating-service.js +6 -17
- package/lib/common/services/net-service.js +92 -109
- package/lib/common/services/project-files-manager.js +10 -23
- package/lib/common/services/proxy-service.js +13 -24
- package/lib/common/services/qr.js +13 -24
- package/lib/common/services/settings-service.js +1 -1
- package/lib/common/services/xcode-select-service.js +20 -35
- package/lib/common/utils.js +2 -2
- package/lib/common/validators/project-name-validator.js +1 -1
- package/lib/common/validators/validation-result.js +1 -1
- package/lib/common/verify-node-version.js +2 -3
- package/lib/common/yok.js +25 -38
- package/lib/config.js +41 -56
- package/lib/constants.js +24 -24
- package/lib/controllers/build-controller.js +82 -99
- package/lib/controllers/debug-controller.js +111 -132
- package/lib/controllers/deploy-controller.js +15 -23
- package/lib/controllers/migrate-controller.js +780 -853
- package/lib/controllers/platform-controller.js +74 -89
- package/lib/controllers/prepare-controller.js +241 -270
- package/lib/controllers/run-controller.js +411 -425
- package/lib/controllers/update-controller-base.js +16 -29
- package/lib/controllers/update-controller.js +101 -126
- package/lib/data/prepare-data.js +4 -1
- package/lib/definitions/project.d.ts +24 -24
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
- package/lib/detached-processes/cleanup-process.js +16 -25
- package/lib/device-path-provider.js +23 -34
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +155 -170
- package/lib/device-sockets/ios/notification.js +1 -1
- package/lib/device-sockets/ios/socket-request-executor.js +26 -41
- package/lib/helpers/android-bundle-validator-helper.js +1 -1
- package/lib/helpers/deploy-command-helper.js +44 -49
- package/lib/helpers/key-command-helper.js +4 -13
- package/lib/helpers/livesync-command-helper.js +138 -153
- package/lib/helpers/network-connectivity-validator.js +6 -17
- package/lib/helpers/options-track-helper.js +6 -17
- package/lib/helpers/platform-command-helper.js +103 -124
- package/lib/key-commands/index.js +150 -200
- package/lib/nativescript-cli.js +5 -14
- package/lib/node-package-manager.js +90 -113
- package/lib/options.js +4 -13
- package/lib/package-installation-manager.js +132 -167
- package/lib/package-manager.js +64 -87
- package/lib/platform-command-param.js +4 -15
- package/lib/pnpm-package-manager.js +60 -79
- package/lib/project-data.js +1 -1
- package/lib/providers/project-files-provider.js +1 -1
- package/lib/services/analytics/analytics-broker-process.js +13 -22
- package/lib/services/analytics/analytics-broker.js +17 -30
- package/lib/services/analytics/analytics-service.js +165 -201
- package/lib/services/analytics/google-analytics-provider.js +41 -56
- package/lib/services/analytics-settings-service.js +15 -32
- package/lib/services/android/android-bundle-tool-service.js +43 -60
- package/lib/services/android/gradle-build-args-service.js +10 -21
- package/lib/services/android/gradle-build-service.js +22 -35
- package/lib/services/android/gradle-command-service.js +22 -35
- package/lib/services/android-device-debug-service.js +92 -119
- package/lib/services/android-plugin-build-service.js +219 -245
- package/lib/services/android-project-service.js +134 -179
- package/lib/services/android-resources-migration-service.js +57 -70
- package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
- package/lib/services/apple-portal/apple-portal-session-service.js +196 -215
- package/lib/services/apple-portal/srp/srp-wrapper.js +45 -60
- package/lib/services/assets-generation/assets-generation-service.js +114 -128
- package/lib/services/build-artifacts-service.js +9 -20
- package/lib/services/build-info-file-service.js +20 -35
- package/lib/services/cleanup-service.js +47 -76
- package/lib/services/cocoapods-service.js +124 -145
- package/lib/services/device/device-install-app-service.js +54 -71
- package/lib/services/doctor-service.js +106 -125
- package/lib/services/extensibility-service.js +87 -106
- package/lib/services/files-hash-service.js +26 -43
- package/lib/services/hmr-status-service.js +1 -1
- package/lib/services/initialize-service.js +38 -51
- package/lib/services/ios/export-options-plist-service.js +41 -54
- package/lib/services/ios/ios-signing-service.js +171 -190
- package/lib/services/ios/spm-service.js +52 -65
- package/lib/services/ios/xcodebuild-args-service.js +77 -94
- package/lib/services/ios/xcodebuild-command-service.js +14 -25
- package/lib/services/ios/xcodebuild-service.js +52 -71
- package/lib/services/ios-debugger-port-service.js +24 -37
- package/lib/services/ios-device-debug-service.js +75 -102
- package/lib/services/ios-entitlements-service.js +31 -42
- package/lib/services/ios-extensions-service.js +18 -29
- package/lib/services/ios-project-service.js +530 -591
- package/lib/services/ios-provision-service.js +110 -131
- package/lib/services/ios-watch-app-service.js +21 -32
- package/lib/services/ip-service.js +39 -54
- package/lib/services/itmstransporter-service.js +129 -152
- package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
- package/lib/services/livesync/android-device-livesync-service.js +121 -150
- package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -154
- package/lib/services/livesync/android-livesync-service.js +14 -35
- package/lib/services/livesync/android-livesync-tool.js +90 -113
- package/lib/services/livesync/device-livesync-service-base.js +16 -29
- package/lib/services/livesync/ios-device-livesync-service.js +120 -149
- package/lib/services/livesync/ios-livesync-service.js +43 -59
- package/lib/services/livesync/platform-livesync-service-base.js +98 -123
- package/lib/services/log-parser-service.js +1 -1
- package/lib/services/log-source-map-service.js +31 -42
- package/lib/services/marking-mode-service.js +17 -30
- package/lib/services/npm-config-service.js +1 -1
- package/lib/services/pacote-service.js +54 -69
- package/lib/services/performance-service.js +1 -1
- package/lib/services/platform/add-platform-service.js +57 -78
- package/lib/services/platform/platform-validation-service.js +22 -33
- package/lib/services/platform/prepare-native-platform-service.js +51 -64
- package/lib/services/platform-environment-requirements.js +27 -38
- package/lib/services/plugins-service.js +126 -151
- package/lib/services/project-backup-service.js +1 -1
- package/lib/services/project-changes-service.js +126 -143
- package/lib/services/project-cleanup-service.js +65 -78
- package/lib/services/project-config-service.js +78 -88
- package/lib/services/project-data-service.js +112 -129
- package/lib/services/project-name-service.js +28 -43
- package/lib/services/project-service.js +90 -109
- package/lib/services/project-templates-service.js +52 -67
- package/lib/services/start-service.js +41 -59
- package/lib/services/temp-service.js +8 -21
- package/lib/services/terminal-spinner-service.js +15 -26
- package/lib/services/test-execution-service.js +64 -77
- package/lib/services/test-initialization-service.js +2 -2
- package/lib/services/timeline-profiler-service.js +1 -1
- package/lib/services/versions-service.js +120 -139
- package/lib/services/webpack/webpack-compiler-service.js +228 -251
- package/lib/services/xcconfig-service.js +8 -19
- package/lib/sys-info.js +45 -62
- package/lib/tools/node-modules/node-modules-builder.js +16 -27
- package/lib/yarn-package-manager.js +59 -78
- package/lib/yarn2-package-manager.js +62 -81
- package/package.json +67 -82
- package/node_modules/@npmcli/move-file/LICENSE.md +0 -22
- package/node_modules/@npmcli/move-file/README.md +0 -69
- package/node_modules/@npmcli/move-file/lib/index.js +0 -185
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +0 -21
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +0 -68
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +0 -31
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +0 -64
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +0 -39
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +0 -23
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +0 -29
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +0 -10
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +0 -44
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +0 -266
- package/node_modules/@npmcli/move-file/package.json +0 -47
- package/node_modules/balanced-match/.github/FUNDING.yml +0 -2
- package/node_modules/balanced-match/LICENSE.md +0 -21
- package/node_modules/balanced-match/README.md +0 -97
- package/node_modules/balanced-match/index.js +0 -62
- package/node_modules/balanced-match/package.json +0 -48
- package/node_modules/concat-map/.travis.yml +0 -4
- package/node_modules/concat-map/LICENSE +0 -18
- package/node_modules/concat-map/README.markdown +0 -62
- package/node_modules/concat-map/example/map.js +0 -6
- package/node_modules/concat-map/index.js +0 -13
- package/node_modules/concat-map/package.json +0 -43
- package/node_modules/concat-map/test/map.js +0 -39
- package/node_modules/fs.realpath/LICENSE +0 -43
- package/node_modules/fs.realpath/README.md +0 -33
- package/node_modules/fs.realpath/index.js +0 -66
- package/node_modules/fs.realpath/old.js +0 -303
- package/node_modules/fs.realpath/package.json +0 -26
- package/node_modules/inflight/LICENSE +0 -15
- package/node_modules/inflight/README.md +0 -37
- package/node_modules/inflight/inflight.js +0 -54
- package/node_modules/inflight/package.json +0 -29
- package/node_modules/inherits/LICENSE +0 -16
- package/node_modules/inherits/README.md +0 -42
- package/node_modules/inherits/inherits.js +0 -9
- package/node_modules/inherits/inherits_browser.js +0 -27
- package/node_modules/inherits/package.json +0 -29
- package/node_modules/once/LICENSE +0 -15
- package/node_modules/once/README.md +0 -79
- package/node_modules/once/once.js +0 -42
- package/node_modules/once/package.json +0 -33
- package/node_modules/path-is-absolute/index.js +0 -20
- package/node_modules/path-is-absolute/license +0 -21
- package/node_modules/path-is-absolute/package.json +0 -43
- package/node_modules/path-is-absolute/readme.md +0 -59
- package/node_modules/rimraf/LICENSE +0 -15
- package/node_modules/rimraf/README.md +0 -101
- package/node_modules/rimraf/bin.js +0 -68
- package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/brace-expansion/README.md +0 -129
- package/node_modules/rimraf/node_modules/brace-expansion/index.js +0 -201
- package/node_modules/rimraf/node_modules/brace-expansion/package.json +0 -47
- package/node_modules/rimraf/node_modules/glob/LICENSE +0 -21
- package/node_modules/rimraf/node_modules/glob/README.md +0 -378
- package/node_modules/rimraf/node_modules/glob/common.js +0 -238
- package/node_modules/rimraf/node_modules/glob/glob.js +0 -790
- package/node_modules/rimraf/node_modules/glob/package.json +0 -55
- package/node_modules/rimraf/node_modules/glob/sync.js +0 -486
- package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
- package/node_modules/rimraf/node_modules/minimatch/README.md +0 -230
- package/node_modules/rimraf/node_modules/minimatch/minimatch.js +0 -947
- package/node_modules/rimraf/node_modules/minimatch/package.json +0 -33
- package/node_modules/rimraf/package.json +0 -32
- package/node_modules/rimraf/rimraf.js +0 -360
- package/node_modules/stringify-package/LICENSE +0 -13
- package/node_modules/stringify-package/README.md +0 -55
- package/node_modules/stringify-package/index.js +0 -18
- package/node_modules/stringify-package/package.json +0 -38
- package/node_modules/wrappy/LICENSE +0 -15
- package/node_modules/wrappy/README.md +0 -36
- package/node_modules/wrappy/package.json +0 -29
- package/node_modules/wrappy/wrappy.js +0 -33
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.IOSSigningService = void 0;
|
|
13
4
|
const path = require("path");
|
|
@@ -27,111 +18,105 @@ class IOSSigningService {
|
|
|
27
18
|
this.$xcconfigService = $xcconfigService;
|
|
28
19
|
this.$xcprojService = $xcprojService;
|
|
29
20
|
}
|
|
30
|
-
setupSigningForDevice(projectRoot, projectData, iOSBuildData) {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
});
|
|
21
|
+
async setupSigningForDevice(projectRoot, projectData, iOSBuildData) {
|
|
22
|
+
const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
|
|
23
|
+
const signing = xcode.getSigning(projectData.projectName);
|
|
24
|
+
const hasProvisioningProfileInXCConfig = this.readXCConfigProvisioningProfileSpecifierForIPhoneOs(projectData) ||
|
|
25
|
+
this.readXCConfigProvisioningProfileSpecifier(projectData) ||
|
|
26
|
+
this.readXCConfigProvisioningProfileForIPhoneOs(projectData) ||
|
|
27
|
+
this.readXCConfigProvisioningProfile(projectData);
|
|
28
|
+
if (hasProvisioningProfileInXCConfig &&
|
|
29
|
+
(!signing || signing.style !== "Manual")) {
|
|
30
|
+
xcode.setManualSigningStyle(projectData.projectName);
|
|
31
|
+
this.getExtensionNames(projectData).forEach((name) => {
|
|
32
|
+
xcode.setManualSigningStyle(name);
|
|
33
|
+
});
|
|
34
|
+
xcode.save();
|
|
35
|
+
}
|
|
36
|
+
else if (!iOSBuildData.provision &&
|
|
37
|
+
!(signing && signing.style === "Manual" && !iOSBuildData.teamId)) {
|
|
38
|
+
const teamId = await this.getDevelopmentTeam(projectData, projectRoot, iOSBuildData.teamId);
|
|
39
|
+
await this.setupSigningFromTeam(projectRoot, projectData, teamId);
|
|
40
|
+
}
|
|
52
41
|
}
|
|
53
|
-
setupSigningFromTeam(projectRoot, projectData, teamId) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (signing
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
shouldUpdateXcode = true;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
shouldUpdateXcode = true;
|
|
69
|
-
}
|
|
70
|
-
if (shouldUpdateXcode) {
|
|
71
|
-
const teamIdsForName = yield this.$iOSProvisionService.getTeamIdsWithName(teamId);
|
|
72
|
-
if (teamIdsForName.length > 0) {
|
|
73
|
-
this.$logger.trace(`Team id ${teamIdsForName[0]} will be used for team name "${teamId}".`);
|
|
74
|
-
teamId = teamIdsForName[0];
|
|
42
|
+
async setupSigningFromTeam(projectRoot, projectData, teamId) {
|
|
43
|
+
const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
|
|
44
|
+
const signing = xcode.getSigning(projectData.projectName);
|
|
45
|
+
let shouldUpdateXcode = false;
|
|
46
|
+
if (signing && signing.style === "Automatic") {
|
|
47
|
+
if (signing.team !== teamId) {
|
|
48
|
+
// Maybe the provided team is name such as "Telerik AD" and we need to convert it to CH******37
|
|
49
|
+
const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
|
|
50
|
+
if (!teamIdsForName.some((id) => id === signing.team)) {
|
|
51
|
+
shouldUpdateXcode = true;
|
|
75
52
|
}
|
|
76
|
-
xcode.setAutomaticSigningStyle(projectData.projectName, teamId);
|
|
77
|
-
xcode.setAutomaticSigningStyleByTargetProductTypesList([
|
|
78
|
-
constants_1.IOSNativeTargetProductTypes.appExtension,
|
|
79
|
-
constants_1.IOSNativeTargetProductTypes.watchApp,
|
|
80
|
-
constants_1.IOSNativeTargetProductTypes.watchExtension,
|
|
81
|
-
], teamId);
|
|
82
|
-
this.getExtensionNames(projectData).forEach((name) => {
|
|
83
|
-
xcode.setAutomaticSigningStyle(name, teamId);
|
|
84
|
-
});
|
|
85
|
-
xcode.save();
|
|
86
|
-
this.$logger.trace(`Set Automatic signing style and team id ${teamId}.`);
|
|
87
53
|
}
|
|
88
|
-
|
|
89
|
-
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
shouldUpdateXcode = true;
|
|
57
|
+
}
|
|
58
|
+
if (shouldUpdateXcode) {
|
|
59
|
+
const teamIdsForName = await this.$iOSProvisionService.getTeamIdsWithName(teamId);
|
|
60
|
+
if (teamIdsForName.length > 0) {
|
|
61
|
+
this.$logger.trace(`Team id ${teamIdsForName[0]} will be used for team name "${teamId}".`);
|
|
62
|
+
teamId = teamIdsForName[0];
|
|
90
63
|
}
|
|
91
|
-
|
|
64
|
+
xcode.setAutomaticSigningStyle(projectData.projectName, teamId);
|
|
65
|
+
xcode.setAutomaticSigningStyleByTargetProductTypesList([
|
|
66
|
+
constants_1.IOSNativeTargetProductTypes.appExtension,
|
|
67
|
+
constants_1.IOSNativeTargetProductTypes.watchApp,
|
|
68
|
+
constants_1.IOSNativeTargetProductTypes.watchExtension,
|
|
69
|
+
], teamId);
|
|
70
|
+
this.getExtensionNames(projectData).forEach((name) => {
|
|
71
|
+
xcode.setAutomaticSigningStyle(name, teamId);
|
|
72
|
+
});
|
|
73
|
+
xcode.save();
|
|
74
|
+
this.$logger.trace(`Set Automatic signing style and team id ${teamId}.`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
this.$logger.trace(`The specified ${teamId} is already set in the Xcode.`);
|
|
78
|
+
}
|
|
92
79
|
}
|
|
93
|
-
setupSigningFromProvision(projectRoot, projectData, provision, mobileProvisionData) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
break;
|
|
108
|
-
}
|
|
80
|
+
async setupSigningFromProvision(projectRoot, projectData, provision, mobileProvisionData) {
|
|
81
|
+
if (!provision) {
|
|
82
|
+
// read uuid from Xcode an cache...
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const xcode = this.$pbxprojDomXcode.Xcode.open(this.getPbxProjPath(projectData, projectRoot));
|
|
86
|
+
const signing = xcode.getSigning(projectData.projectName);
|
|
87
|
+
let shouldUpdateXcode = false;
|
|
88
|
+
if (signing && signing.style === "Manual") {
|
|
89
|
+
for (const config in signing.configurations) {
|
|
90
|
+
const options = signing.configurations[config];
|
|
91
|
+
if (options.name !== provision && options.uuid !== provision) {
|
|
92
|
+
shouldUpdateXcode = true;
|
|
93
|
+
break;
|
|
109
94
|
}
|
|
110
95
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
}
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
shouldUpdateXcode = true;
|
|
99
|
+
}
|
|
100
|
+
if (shouldUpdateXcode) {
|
|
101
|
+
const projectSigningConfig = await this.getManualSigningConfiguration(projectData, provision, mobileProvisionData);
|
|
102
|
+
xcode.setManualSigningStyle(projectData.projectName, projectSigningConfig);
|
|
103
|
+
xcode.setManualSigningStyleByTargetProductTypesList([
|
|
104
|
+
constants_1.IOSNativeTargetProductTypes.appExtension,
|
|
105
|
+
constants_1.IOSNativeTargetProductTypes.watchApp,
|
|
106
|
+
constants_1.IOSNativeTargetProductTypes.watchExtension,
|
|
107
|
+
], projectSigningConfig);
|
|
108
|
+
this.$logger.trace(`Set Manual signing style and provisioning profile: ${projectSigningConfig.name} (${projectSigningConfig.uuid})`);
|
|
109
|
+
const extensionSigningConfig = await Promise.all(this.getExtensionsManualSigningConfiguration(projectData));
|
|
110
|
+
extensionSigningConfig.forEach(({ name, configuration }) => {
|
|
111
|
+
xcode.setManualSigningStyle(name, configuration);
|
|
112
|
+
this.$logger.trace(`Set Manual signing style and provisioning profile: ${configuration.name} (${configuration.uuid})`);
|
|
113
|
+
});
|
|
114
|
+
xcode.save();
|
|
115
|
+
// this.cache(uuid);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.$logger.trace(`The specified provisioning profile is already set in the Xcode: ${provision}`);
|
|
119
|
+
}
|
|
135
120
|
}
|
|
136
121
|
getExtensionNames(projectData) {
|
|
137
122
|
const extensionFolderPath = path.join(projectData.getAppResourcesDirectoryPath(), constants.iOSAppResourcesFolderName, constants.NATIVE_EXTENSION_FOLDER);
|
|
@@ -152,45 +137,43 @@ class IOSSigningService {
|
|
|
152
137
|
if (this.$fs.exists(provisioningJSONPath)) {
|
|
153
138
|
const provisioningJSON = this.$fs.readJson(provisioningJSONPath);
|
|
154
139
|
const extensionNames = this.getExtensionNames(projectData);
|
|
155
|
-
const provisioning = Object.entries(provisioningJSON).map(([id, provision]) =>
|
|
140
|
+
const provisioning = Object.entries(provisioningJSON).map(async ([id, provision]) => {
|
|
156
141
|
const name = id.split(".").at(-1);
|
|
157
142
|
if (extensionNames.includes(name)) {
|
|
158
|
-
const configuration =
|
|
143
|
+
const configuration = await this.getManualSigningConfiguration(projectData, provision);
|
|
159
144
|
return { name, configuration };
|
|
160
145
|
}
|
|
161
146
|
return null;
|
|
162
|
-
})
|
|
147
|
+
});
|
|
163
148
|
return provisioning;
|
|
164
149
|
}
|
|
165
150
|
return [];
|
|
166
151
|
}
|
|
167
|
-
getManualSigningConfiguration(projectData, provision, mobileProvisionData) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
return configuration;
|
|
193
|
-
});
|
|
152
|
+
async getManualSigningConfiguration(projectData, provision, mobileProvisionData) {
|
|
153
|
+
const pickStart = Date.now();
|
|
154
|
+
const mobileprovision = mobileProvisionData ||
|
|
155
|
+
(await this.$iOSProvisionService.pick(provision, projectData.projectIdentifiers.ios));
|
|
156
|
+
const pickEnd = Date.now();
|
|
157
|
+
this.$logger.trace("Searched and " +
|
|
158
|
+
(mobileprovision ? "found" : "failed to find ") +
|
|
159
|
+
" matching provisioning profile. (" +
|
|
160
|
+
(pickEnd - pickStart) +
|
|
161
|
+
"ms.)");
|
|
162
|
+
if (!mobileprovision) {
|
|
163
|
+
this.$errors.fail("Failed to find mobile provision with UUID or Name: " + provision);
|
|
164
|
+
}
|
|
165
|
+
const configuration = {
|
|
166
|
+
team: mobileprovision.TeamIdentifier &&
|
|
167
|
+
mobileprovision.TeamIdentifier.length > 0
|
|
168
|
+
? mobileprovision.TeamIdentifier[0]
|
|
169
|
+
: undefined,
|
|
170
|
+
uuid: mobileprovision.UUID,
|
|
171
|
+
name: mobileprovision.Name,
|
|
172
|
+
identity: mobileprovision.Type === "Development"
|
|
173
|
+
? "iPhone Developer"
|
|
174
|
+
: "iPhone Distribution",
|
|
175
|
+
};
|
|
176
|
+
return configuration;
|
|
194
177
|
}
|
|
195
178
|
getBuildXCConfigFilePath(projectData) {
|
|
196
179
|
return path.join(projectData.appResourcesDirectoryPath, constants_1.iOSAppResourcesFolderName, constants_1.BUILD_XCCONFIG_FILE_NAME);
|
|
@@ -210,65 +193,63 @@ class IOSSigningService {
|
|
|
210
193
|
}
|
|
211
194
|
return undefined;
|
|
212
195
|
}
|
|
213
|
-
getDevelopmentTeam(projectData, projectRoot, teamId) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
196
|
+
async getDevelopmentTeam(projectData, projectRoot, teamId) {
|
|
197
|
+
teamId = teamId || this.readXCConfigDevelopmentTeam(projectData);
|
|
198
|
+
if (!teamId) {
|
|
199
|
+
const teams = await this.$iOSProvisionService.getDevelopmentTeams();
|
|
200
|
+
this.$logger.warn("Xcode requires a team id to be specified when building for device.");
|
|
201
|
+
this.$logger.warn("You can specify the team id by setting the DEVELOPMENT_TEAM setting in build.xcconfig file located in App_Resources folder of your app, or by using the --teamId option when calling run, debug or livesync commands.");
|
|
202
|
+
if (teams.length === 1) {
|
|
203
|
+
teamId = teams[0].id;
|
|
204
|
+
this.$logger.warn("Found and using the following development team installed on your system: " +
|
|
205
|
+
teams[0].name +
|
|
206
|
+
" (" +
|
|
207
|
+
teams[0].id +
|
|
208
|
+
")");
|
|
209
|
+
}
|
|
210
|
+
else if (teams.length > 0) {
|
|
211
|
+
if (!helpers.isInteractive()) {
|
|
212
|
+
this.$errors.fail(`Unable to determine default development team. Available development teams are: ${_.map(teams, (team) => team.id)}. Specify team in app/App_Resources/iOS/build.xcconfig file in the following way: DEVELOPMENT_TEAM = <team id>`);
|
|
227
213
|
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
214
|
+
const fromFile = this.readTeamIdFromFile(projectRoot);
|
|
215
|
+
if (fromFile) {
|
|
216
|
+
const idFromFile = teams.find((value) => value.id === fromFile);
|
|
217
|
+
if (idFromFile) {
|
|
218
|
+
teamId = idFromFile.id;
|
|
219
|
+
this.$logger.info(`Team Id resolved from file: '${teamId}'.`);
|
|
231
220
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
this.$logger.info(`Team Id resolved from file: '${teamId}'.`);
|
|
238
|
-
}
|
|
221
|
+
}
|
|
222
|
+
if (!teamId) {
|
|
223
|
+
const choices = [];
|
|
224
|
+
for (const team of teams) {
|
|
225
|
+
choices.push(team.name + " (" + team.id + ")");
|
|
239
226
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
teamId +
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
case 1:
|
|
261
|
-
this.$fs.writeFile(path.join(projectRoot, "teamid"), teamId);
|
|
262
|
-
break;
|
|
263
|
-
default:
|
|
264
|
-
break;
|
|
265
|
-
}
|
|
227
|
+
const choice = await this.$prompter.promptForChoice("Found multiple development teams, select one:", choices);
|
|
228
|
+
teamId = teams[choices.indexOf(choice)].id;
|
|
229
|
+
const choicesPersist = [
|
|
230
|
+
"Yes, set the DEVELOPMENT_TEAM setting in build.xcconfig file.",
|
|
231
|
+
"Yes, persist the team id in platforms folder.",
|
|
232
|
+
"No, don't persist this setting.",
|
|
233
|
+
];
|
|
234
|
+
const choicePersist = await this.$prompter.promptForChoice("Do you want to make teamId: " +
|
|
235
|
+
teamId +
|
|
236
|
+
" a persistent choice for your app?", choicesPersist);
|
|
237
|
+
switch (choicesPersist.indexOf(choicePersist)) {
|
|
238
|
+
case 0:
|
|
239
|
+
const xcconfigFile = path.join(projectData.appResourcesDirectoryPath, "iOS", constants_1.BUILD_XCCONFIG_FILE_NAME);
|
|
240
|
+
this.$fs.appendFile(xcconfigFile, "\nDEVELOPMENT_TEAM = " + teamId + "\n");
|
|
241
|
+
break;
|
|
242
|
+
case 1:
|
|
243
|
+
this.$fs.writeFile(path.join(projectRoot, "teamid"), teamId);
|
|
244
|
+
break;
|
|
245
|
+
default:
|
|
246
|
+
break;
|
|
266
247
|
}
|
|
267
248
|
}
|
|
268
249
|
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
250
|
+
}
|
|
251
|
+
this.$logger.trace(`Selected teamId is '${teamId}'.`);
|
|
252
|
+
return teamId;
|
|
272
253
|
}
|
|
273
254
|
readXCConfigDevelopmentTeam(projectData) {
|
|
274
255
|
return this.$xcconfigService.readPropertyValue(this.getBuildXCConfigFilePath(projectData), "DEVELOPMENT_TEAM");
|
|
@@ -1,13 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.SPMService = void 0;
|
|
13
4
|
const yok_1 = require("../../common/yok");
|
|
@@ -28,68 +19,64 @@ class SPMService {
|
|
|
28
19
|
// public hasSPMPackages(projectData: IProjectData): boolean {
|
|
29
20
|
// return this.getSPMPackages(projectData).length > 0;
|
|
30
21
|
// }
|
|
31
|
-
applySPMPackages(platformData, projectData, pluginSpmPackages) {
|
|
22
|
+
async applySPMPackages(platformData, projectData, pluginSpmPackages) {
|
|
32
23
|
var _a;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
24
|
+
try {
|
|
25
|
+
const spmPackages = this.getSPMPackages(projectData, platformData.platformNameLowerCase);
|
|
26
|
+
if (pluginSpmPackages === null || pluginSpmPackages === void 0 ? void 0 : pluginSpmPackages.length) {
|
|
27
|
+
// include swift packages from plugin configs
|
|
28
|
+
spmPackages.push(...pluginSpmPackages);
|
|
29
|
+
}
|
|
30
|
+
if (!spmPackages.length) {
|
|
31
|
+
this.$logger.trace("SPM: no SPM packages to apply.");
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const project = new trapezedev_project_1.MobileProject(platformData.projectRoot, {
|
|
35
|
+
ios: {
|
|
36
|
+
path: ".",
|
|
37
|
+
},
|
|
38
|
+
enableAndroid: false,
|
|
39
|
+
});
|
|
40
|
+
await project.load();
|
|
41
|
+
// note: in trapeze both visionOS and iOS are handled by the ios project.
|
|
42
|
+
if (!project.ios) {
|
|
43
|
+
this.$logger.trace("SPM: no iOS project found via trapeze.");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// todo: handle removing packages? Or just warn and require a clean?
|
|
47
|
+
for (const pkg of spmPackages) {
|
|
48
|
+
if ("path" in pkg) {
|
|
49
|
+
// resolve the path relative to the project root
|
|
50
|
+
this.$logger.trace("SPM: resolving path for package: ", pkg.path);
|
|
51
|
+
pkg.path = path.resolve(projectData.projectDir, pkg.path);
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg);
|
|
64
|
-
yield project.ios.addSPMPackage(projectData.projectName, pkg);
|
|
65
|
-
// Add to other Targets if specified (like widgets, etc.)
|
|
66
|
-
if ((_a = pkg.targets) === null || _a === void 0 ? void 0 : _a.length) {
|
|
67
|
-
for (const target of pkg.targets) {
|
|
68
|
-
yield project.ios.addSPMPackage(target, pkg);
|
|
69
|
-
}
|
|
53
|
+
this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg);
|
|
54
|
+
await project.ios.addSPMPackage(projectData.projectName, pkg);
|
|
55
|
+
// Add to other Targets if specified (like widgets, etc.)
|
|
56
|
+
if ((_a = pkg.targets) === null || _a === void 0 ? void 0 : _a.length) {
|
|
57
|
+
for (const target of pkg.targets) {
|
|
58
|
+
await project.ios.addSPMPackage(target, pkg);
|
|
70
59
|
}
|
|
71
60
|
}
|
|
72
|
-
yield project.commit();
|
|
73
|
-
// finally resolve the dependencies
|
|
74
|
-
yield this.resolveSPMDependencies(platformData, projectData);
|
|
75
|
-
}
|
|
76
|
-
catch (err) {
|
|
77
|
-
this.$logger.trace("SPM: error applying SPM packages: ", err);
|
|
78
61
|
}
|
|
79
|
-
|
|
62
|
+
await project.commit();
|
|
63
|
+
// finally resolve the dependencies
|
|
64
|
+
await this.resolveSPMDependencies(platformData, projectData);
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
this.$logger.trace("SPM: error applying SPM packages: ", err);
|
|
68
|
+
}
|
|
80
69
|
}
|
|
81
|
-
resolveSPMDependencies(platformData, projectData) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
message: "Resolving SPM dependencies...",
|
|
92
|
-
});
|
|
70
|
+
async resolveSPMDependencies(platformData, projectData) {
|
|
71
|
+
await this.$xcodebuildCommandService.executeCommand(this.$xcodebuildArgsService
|
|
72
|
+
.getXcodeProjectArgs(platformData, projectData)
|
|
73
|
+
.concat([
|
|
74
|
+
"-destination",
|
|
75
|
+
"generic/platform=iOS",
|
|
76
|
+
"-resolvePackageDependencies",
|
|
77
|
+
]), {
|
|
78
|
+
cwd: projectData.projectDir,
|
|
79
|
+
message: "Resolving SPM dependencies...",
|
|
93
80
|
});
|
|
94
81
|
}
|
|
95
82
|
}
|