nativescript 8.6.6-vision.9 → 8.7.0-rc.0
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/README.md +42 -21
- package/config/test-deps-versions-generated.json +1 -1
- package/lib/common/definitions/key-commands.d.ts +2 -1
- package/lib/common/mobile/ios/device/ios-device.js +9 -2
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +1 -0
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +2 -1
- package/lib/definitions/start-service.d.ts +2 -0
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +0 -1
- package/lib/helpers/key-command-helper.js +5 -0
- package/lib/key-commands/bootstrap.js +5 -1
- package/lib/key-commands/index.js +111 -5
- package/lib/services/ios/xcodebuild-args-service.js +14 -1
- package/lib/services/ios-entitlements-service.js +6 -3
- package/lib/services/start-service.js +12 -0
- package/package.json +4 -4
- package/node_modules/@npmcli/move-file/node_modules/mkdirp/CHANGELOG.md +0 -15
- package/node_modules/rimraf/CHANGELOG.md +0 -65
- package/node_modules/stringify-package/CHANGELOG.md +0 -16
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<br>
|
|
9
9
|
</h1>
|
|
10
10
|
|
|
11
|
-
<h4 align="center">The NativeScript CLI lets you create, build, and deploy <a href="https://docs.nativescript.org/" target="_blank">NativeScript</a
|
|
11
|
+
<h4 align="center">The NativeScript CLI lets you create, build, and deploy <a href="https://docs.nativescript.org/" target="_blank">NativeScript</a> apps.</h4>
|
|
12
12
|
</a>
|
|
13
13
|
</h4>
|
|
14
14
|
|
|
@@ -18,30 +18,51 @@
|
|
|
18
18
|
|
|
19
19
|
Get it using: `npm install -g nativescript`
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
21
|
+
- [What is NativeScript](#what-is-nativescript)
|
|
22
|
+
- [How the NativeScript CLI works](#how-the-nativescript-cli-works)
|
|
23
|
+
- [Supported Platforms](#supported-platforms)
|
|
24
|
+
- [System Requirements](#system-requirements)
|
|
25
|
+
- [Installation](#installation)
|
|
26
|
+
- [Install the NativeScript CLI](#install-the-nativescript-cli)
|
|
27
|
+
- [Configure Proxy Settings](#configure-proxy-settings)
|
|
28
|
+
- [Set Proxy Settings](#set-proxy-settings)
|
|
29
|
+
- [Attributes](#attributes)
|
|
30
|
+
- [Options](#options)
|
|
31
|
+
- [Limitations](#limitations)
|
|
32
|
+
- [Display Current Proxy Settings](#display-current-proxy-settings)
|
|
33
|
+
- [Clear Proxy Settings](#clear-proxy-settings)
|
|
34
|
+
- [Quick Start](#quick-start)
|
|
35
|
+
- [The Commands](#the-commands)
|
|
36
|
+
- [Create Project](#create-project)
|
|
37
|
+
- [Develop Your Project](#develop-your-project)
|
|
38
|
+
- [Development with NativeScript](#development-with-nativescript)
|
|
39
|
+
- [Development in `app`](#development-in-app)
|
|
40
|
+
- [Development in `platforms`](#development-in-platforms)
|
|
41
|
+
- [Modifying Configuration Files](#modifying-configuration-files)
|
|
42
|
+
- [Modifying Entitlements File (iOS only)](#modifying-entitlements-file-ios-only)
|
|
43
|
+
- [Build Your Project](#build-your-project)
|
|
44
|
+
- [Run Your Project](#run-your-project)
|
|
45
|
+
- [Extending the CLI](#extending-the-cli)
|
|
46
|
+
- [Troubleshooting](#troubleshooting)
|
|
47
|
+
- [How to Contribute](#how-to-contribute)
|
|
48
|
+
- [How to Build](#how-to-build)
|
|
49
|
+
- [Get Help](#get-help)
|
|
50
|
+
- [License](#license)
|
|
40
51
|
|
|
41
52
|
What is NativeScript
|
|
42
53
|
===
|
|
43
54
|
|
|
44
|
-
NativeScript
|
|
55
|
+
NativeScript provides platform APIs directly to the JavaScript runtime (_with strong types_) for a rich TypeScript development experience.
|
|
56
|
+
|
|
57
|
+
Some popular use cases:
|
|
58
|
+
|
|
59
|
+
- Building Web, iOS, Android and Vision Pro apps with a shared codebase (aka, cross platform apps)
|
|
60
|
+
- Building native platform apps with portable JavaScript skills
|
|
61
|
+
- Augmenting JavaScript projects with platform API capabilities
|
|
62
|
+
- AndroidTV and Watch development
|
|
63
|
+
- watchOS development
|
|
64
|
+
- Learning native platforms through JavaScript understanding
|
|
65
|
+
- Exploring platform API documentation by trying APIs [directly from a web browser](https://preview.nativescript.org/) without requiring a platform development machine setup.
|
|
45
66
|
|
|
46
67
|
To learn more about NativeScript, you can check the following resources:
|
|
47
68
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"@jsdevtools/coverage-istanbul-loader":"3.0.5","karma":"6.4.
|
|
1
|
+
{"@jsdevtools/coverage-istanbul-loader":"3.0.5","karma":"6.4.3","karma-coverage":"2.2.1","karma-nativescript-launcher":"0.4.0","mocha":"10.4.0","karma-mocha":"2.0.1","karma-chai":"0.1.0","karma-jasmine":"4.0.2","karma-qunit":"4.2.0","@types/karma-chai":"0.1.6","@types/mocha":"10.0.6","@types/jasmine":"5.1.4","@types/qunit":"2.19.10","nyc":"15.1.0"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type IKeyCommandPlatform = "Android" | "iOS" | "all";
|
|
1
|
+
export type IKeyCommandPlatform = "Android" | "iOS" | "visionOS" | "all";
|
|
2
2
|
export type IKeysLowerCase =
|
|
3
3
|
| "a"
|
|
4
4
|
| "b"
|
|
@@ -55,6 +55,7 @@ export interface IKeyCommand {
|
|
|
55
55
|
key: IValidKeyName;
|
|
56
56
|
platform: IKeyCommandPlatform;
|
|
57
57
|
description: string;
|
|
58
|
+
group: string;
|
|
58
59
|
willBlockKeyCommandExecution?: boolean;
|
|
59
60
|
execute(platform: string): Promise<void>;
|
|
60
61
|
canExecute?: (processType: SupportedProcessType) => boolean;
|
|
@@ -49,7 +49,7 @@ class IOSDevice extends ios_device_base_1.IOSDeviceBase {
|
|
|
49
49
|
this.deviceInfo = {
|
|
50
50
|
identifier: deviceActionInfo.deviceId,
|
|
51
51
|
vendor: "Apple",
|
|
52
|
-
platform: this
|
|
52
|
+
platform: this.getPlatform(productType),
|
|
53
53
|
status: deviceStatus,
|
|
54
54
|
errorHelp: deviceStatus === commonConstants.UNREACHABLE_STATUS
|
|
55
55
|
? `Device ${deviceActionInfo.deviceId} is ${commonConstants.UNREACHABLE_STATUS}`
|
|
@@ -131,13 +131,20 @@ class IOSDevice extends ios_device_base_1.IOSDeviceBase {
|
|
|
131
131
|
else if (_.startsWith(productType, "ipod")) {
|
|
132
132
|
isArm64Architecture = majorVersion >= 7;
|
|
133
133
|
}
|
|
134
|
-
else if (_.startsWith(productType, "
|
|
134
|
+
else if (_.startsWith(productType, "realitydevice")) {
|
|
135
135
|
isArm64Architecture = true;
|
|
136
136
|
}
|
|
137
137
|
activeArchitecture = isArm64Architecture ? "arm64" : "armv7";
|
|
138
138
|
}
|
|
139
139
|
return activeArchitecture;
|
|
140
140
|
}
|
|
141
|
+
getPlatform(productType) {
|
|
142
|
+
productType = productType.toLowerCase().trim();
|
|
143
|
+
if (_.startsWith(productType, "realitydevice")) {
|
|
144
|
+
return this.$devicePlatformsConstants.visionOS;
|
|
145
|
+
}
|
|
146
|
+
return this.$devicePlatformsConstants.iOS;
|
|
147
|
+
}
|
|
141
148
|
}
|
|
142
149
|
__decorate([
|
|
143
150
|
(0, decorators_1.cache)()
|
|
@@ -26,6 +26,7 @@ const ios_device_base_1 = require("../ios-device-base");
|
|
|
26
26
|
const constants_1 = require("../../../../constants");
|
|
27
27
|
class IOSSimulator extends ios_device_base_1.IOSDeviceBase {
|
|
28
28
|
constructor(simulator, $devicePlatformsConstants, $deviceLogProvider, $errors, $lockService, $injector, $iOSDebuggerPortService, $iOSSimResolver, $iOSEmulatorServices, $iOSNotification, $iOSSimulatorLogProvider, $logger) {
|
|
29
|
+
var _a;
|
|
29
30
|
super();
|
|
30
31
|
this.simulator = simulator;
|
|
31
32
|
this.$devicePlatformsConstants = $devicePlatformsConstants;
|
|
@@ -48,7 +49,7 @@ class IOSSimulator extends ios_device_base_1.IOSDeviceBase {
|
|
|
48
49
|
model: _.last(this.simulator.fullId.split(".")),
|
|
49
50
|
version: this.simulator.runtimeVersion,
|
|
50
51
|
vendor: "Apple",
|
|
51
|
-
platform: this.$devicePlatformsConstants.iOS,
|
|
52
|
+
platform: (_a = this.simulator.platform) !== null && _a !== void 0 ? _a : this.$devicePlatformsConstants.iOS,
|
|
52
53
|
status: constants.CONNECTED_STATUS,
|
|
53
54
|
errorHelp: null,
|
|
54
55
|
isTablet: this.simulator.fullId.toLowerCase().indexOf("ipad") !== -1,
|
|
@@ -106,7 +106,6 @@ class AppDebugSocketProxyFactory extends events_1.EventEmitter {
|
|
|
106
106
|
let currentWebSocket = null;
|
|
107
107
|
const server = new ws.Server({
|
|
108
108
|
port: localPort,
|
|
109
|
-
host: "localhost",
|
|
110
109
|
verifyClient: (info, callback) => __awaiter(this, void 0, void 0, function* () {
|
|
111
110
|
let acceptHandshake = true;
|
|
112
111
|
clientConnectionLockRelease = null;
|
|
@@ -72,6 +72,7 @@ class KeyCommandHelper {
|
|
|
72
72
|
}
|
|
73
73
|
printCommands(platform) {
|
|
74
74
|
const commands = yok_1.injector.getRegisteredKeyCommandsNames();
|
|
75
|
+
const groupings = {};
|
|
75
76
|
const commandHelp = commands.reduce((arr, key) => {
|
|
76
77
|
const command = yok_1.injector.resolveKeyCommand(key);
|
|
77
78
|
if (!command.description ||
|
|
@@ -82,6 +83,10 @@ class KeyCommandHelper {
|
|
|
82
83
|
return arr;
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
86
|
+
if (!groupings[command.group]) {
|
|
87
|
+
groupings[command.group] = true;
|
|
88
|
+
arr.push(` \n${color_1.color.underline(color_1.color.bold(command.group))}\n`);
|
|
89
|
+
}
|
|
85
90
|
arr.push(` ${color_1.color.bold(command.key)} — ${command.description}`);
|
|
86
91
|
return arr;
|
|
87
92
|
}
|
|
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const yok_1 = require("../common/yok");
|
|
4
4
|
const path = "./key-commands/index";
|
|
5
5
|
yok_1.injector.requireKeyCommand("a", path);
|
|
6
|
-
yok_1.injector.requireKeyCommand("i", path);
|
|
7
6
|
yok_1.injector.requireKeyCommand("A", path);
|
|
7
|
+
yok_1.injector.requireKeyCommand("i", path);
|
|
8
8
|
yok_1.injector.requireKeyCommand("I", path);
|
|
9
|
+
yok_1.injector.requireKeyCommand("v", path);
|
|
10
|
+
yok_1.injector.requireKeyCommand("V", path);
|
|
9
11
|
yok_1.injector.requireKeyCommand("r", path);
|
|
10
12
|
yok_1.injector.requireKeyCommand("R", path);
|
|
11
13
|
yok_1.injector.requireKeyCommand("w", path);
|
|
@@ -15,3 +17,5 @@ yok_1.injector.requireKeyCommand("?", path);
|
|
|
15
17
|
yok_1.injector.requireKeyCommand("\u0003", path);
|
|
16
18
|
yok_1.injector.requireCommand("open|ios", path);
|
|
17
19
|
yok_1.injector.requireCommand("open|android", path);
|
|
20
|
+
yok_1.injector.requireCommand("open|visionos", path);
|
|
21
|
+
yok_1.injector.requireCommand("open|vision", path);
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.QuestionMark = exports.N = exports.C = exports.W = exports.CtrlC = exports.ShiftR = exports.R = exports.OpenIOSCommand = exports.ShiftI = exports.I = exports.OpenAndroidCommand = exports.ShiftA = exports.A = void 0;
|
|
12
|
+
exports.QuestionMark = exports.N = exports.C = exports.W = exports.CtrlC = exports.ShiftR = exports.R = exports.OpenVisionOSCommand = exports.ShiftV = exports.V = exports.OpenIOSCommand = exports.ShiftI = exports.I = exports.OpenAndroidCommand = exports.ShiftA = exports.A = void 0;
|
|
13
13
|
const fs = require("fs");
|
|
14
14
|
const os_1 = require("os");
|
|
15
15
|
const path = require("path");
|
|
@@ -20,7 +20,8 @@ class A {
|
|
|
20
20
|
this.$startService = $startService;
|
|
21
21
|
this.key = "a";
|
|
22
22
|
this.platform = "Android";
|
|
23
|
-
this.description = "Run
|
|
23
|
+
this.description = "Run Android app";
|
|
24
|
+
this.group = "Android";
|
|
24
25
|
}
|
|
25
26
|
execute() {
|
|
26
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -40,7 +41,8 @@ class ShiftA {
|
|
|
40
41
|
this.$projectData = $projectData;
|
|
41
42
|
this.key = "A";
|
|
42
43
|
this.platform = "Android";
|
|
43
|
-
this.description = "Open
|
|
44
|
+
this.description = "Open project in Android Studio";
|
|
45
|
+
this.group = "Android";
|
|
44
46
|
this.willBlockKeyCommandExecution = true;
|
|
45
47
|
this.isInteractive = true;
|
|
46
48
|
}
|
|
@@ -118,6 +120,7 @@ class I {
|
|
|
118
120
|
this.key = "i";
|
|
119
121
|
this.platform = "iOS";
|
|
120
122
|
this.description = "Run iOS app";
|
|
123
|
+
this.group = "iOS";
|
|
121
124
|
}
|
|
122
125
|
execute() {
|
|
123
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -139,7 +142,8 @@ class ShiftI {
|
|
|
139
142
|
this.$xcodebuildArgsService = $xcodebuildArgsService;
|
|
140
143
|
this.key = "I";
|
|
141
144
|
this.platform = "iOS";
|
|
142
|
-
this.description = "Open
|
|
145
|
+
this.description = "Open project in Xcode";
|
|
146
|
+
this.group = "iOS";
|
|
143
147
|
this.willBlockKeyCommandExecution = true;
|
|
144
148
|
this.isInteractive = true;
|
|
145
149
|
}
|
|
@@ -194,12 +198,100 @@ class OpenIOSCommand extends ShiftI {
|
|
|
194
198
|
}
|
|
195
199
|
}
|
|
196
200
|
exports.OpenIOSCommand = OpenIOSCommand;
|
|
201
|
+
class V {
|
|
202
|
+
constructor($startService) {
|
|
203
|
+
this.$startService = $startService;
|
|
204
|
+
this.key = "v";
|
|
205
|
+
this.platform = "visionOS";
|
|
206
|
+
this.description = "Run visionOS app";
|
|
207
|
+
this.group = "visionOS";
|
|
208
|
+
}
|
|
209
|
+
execute() {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
this.$startService.runVisionOS();
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
canExecute(processType) {
|
|
215
|
+
return processType === "start";
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.V = V;
|
|
219
|
+
class ShiftV {
|
|
220
|
+
constructor($iOSProjectService, $logger, $childProcess, $projectData, $xcodeSelectService, $xcodebuildArgsService, $options) {
|
|
221
|
+
this.$iOSProjectService = $iOSProjectService;
|
|
222
|
+
this.$logger = $logger;
|
|
223
|
+
this.$childProcess = $childProcess;
|
|
224
|
+
this.$projectData = $projectData;
|
|
225
|
+
this.$xcodeSelectService = $xcodeSelectService;
|
|
226
|
+
this.$xcodebuildArgsService = $xcodebuildArgsService;
|
|
227
|
+
this.$options = $options;
|
|
228
|
+
this.key = "V";
|
|
229
|
+
this.platform = "visionOS";
|
|
230
|
+
this.description = "Open project in Xcode";
|
|
231
|
+
this.group = "visionOS";
|
|
232
|
+
this.willBlockKeyCommandExecution = true;
|
|
233
|
+
this.isInteractive = true;
|
|
234
|
+
}
|
|
235
|
+
execute() {
|
|
236
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
237
|
+
this.$options.platformOverride = "visionOS";
|
|
238
|
+
const os = (0, os_1.platform)();
|
|
239
|
+
if (os === "darwin") {
|
|
240
|
+
this.$projectData.initializeProjectData();
|
|
241
|
+
const visionOSDir = path.resolve(this.$projectData.platformsDir, "visionos");
|
|
242
|
+
if (!fs.existsSync(visionOSDir)) {
|
|
243
|
+
const prepareCommand = yok_1.injector.resolveCommand("prepare");
|
|
244
|
+
yield prepareCommand.execute(["visionos"]);
|
|
245
|
+
if (this.isInteractive) {
|
|
246
|
+
process.stdin.resume();
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
const platformData = this.$iOSProjectService.getPlatformData(this.$projectData);
|
|
250
|
+
const xcprojectFile = this.$xcodebuildArgsService.getXcodeProjectArgs(platformData, this.$projectData)[1];
|
|
251
|
+
if (fs.existsSync(xcprojectFile)) {
|
|
252
|
+
this.$xcodeSelectService
|
|
253
|
+
.getDeveloperDirectoryPath()
|
|
254
|
+
.then(() => this.$childProcess.exec(`open ${xcprojectFile}`, {}))
|
|
255
|
+
.catch((e) => {
|
|
256
|
+
this.$logger.error(e.message);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
this.$logger.error(`Unable to open project file: ${xcprojectFile}`);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
this.$logger.error("Opening a project in XCode requires macOS.");
|
|
265
|
+
}
|
|
266
|
+
this.$options.platformOverride = null;
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.ShiftV = ShiftV;
|
|
271
|
+
class OpenVisionOSCommand extends ShiftV {
|
|
272
|
+
constructor($iOSProjectService, $logger, $childProcess, $projectData, $xcodeSelectService, $xcodebuildArgsService, $options) {
|
|
273
|
+
super($iOSProjectService, $logger, $childProcess, $projectData, $xcodeSelectService, $xcodebuildArgsService, $options);
|
|
274
|
+
this.$options = $options;
|
|
275
|
+
this.isInteractive = false;
|
|
276
|
+
}
|
|
277
|
+
execute() {
|
|
278
|
+
const _super = Object.create(null, {
|
|
279
|
+
execute: { get: () => super.execute }
|
|
280
|
+
});
|
|
281
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
282
|
+
this.$options.watch = false;
|
|
283
|
+
_super.execute.call(this);
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.OpenVisionOSCommand = OpenVisionOSCommand;
|
|
197
288
|
class R {
|
|
198
289
|
constructor($liveSyncCommandHelper) {
|
|
199
290
|
this.$liveSyncCommandHelper = $liveSyncCommandHelper;
|
|
200
291
|
this.key = "r";
|
|
201
292
|
this.platform = "all";
|
|
202
293
|
this.description = "Rebuild native app if needed and restart";
|
|
294
|
+
this.group = "Development Workflow";
|
|
203
295
|
this.willBlockKeyCommandExecution = true;
|
|
204
296
|
}
|
|
205
297
|
execute(platform) {
|
|
@@ -218,6 +310,7 @@ class ShiftR {
|
|
|
218
310
|
this.key = "R";
|
|
219
311
|
this.platform = "all";
|
|
220
312
|
this.description = "Force rebuild native app and restart";
|
|
313
|
+
this.group = "Development Workflow";
|
|
221
314
|
this.willBlockKeyCommandExecution = true;
|
|
222
315
|
}
|
|
223
316
|
execute(platform) {
|
|
@@ -236,6 +329,7 @@ class CtrlC {
|
|
|
236
329
|
constructor() {
|
|
237
330
|
this.key = "\u0003";
|
|
238
331
|
this.platform = "all";
|
|
332
|
+
this.group = "Development Workflow";
|
|
239
333
|
this.willBlockKeyCommandExecution = false;
|
|
240
334
|
}
|
|
241
335
|
execute() {
|
|
@@ -251,6 +345,7 @@ class W {
|
|
|
251
345
|
this.key = "w";
|
|
252
346
|
this.platform = "all";
|
|
253
347
|
this.description = "Toggle file watcher";
|
|
348
|
+
this.group = "Development Workflow";
|
|
254
349
|
this.willBlockKeyCommandExecution = true;
|
|
255
350
|
}
|
|
256
351
|
execute() {
|
|
@@ -273,6 +368,7 @@ class C {
|
|
|
273
368
|
this.key = "c";
|
|
274
369
|
this.platform = "all";
|
|
275
370
|
this.description = "Clean project";
|
|
371
|
+
this.group = "Development Workflow";
|
|
276
372
|
this.willBlockKeyCommandExecution = true;
|
|
277
373
|
}
|
|
278
374
|
execute() {
|
|
@@ -295,6 +391,7 @@ class N {
|
|
|
295
391
|
this.key = "n";
|
|
296
392
|
this.platform = "all";
|
|
297
393
|
this.description = "Install dependencies";
|
|
394
|
+
this.group = "Development Workflow";
|
|
298
395
|
this.willBlockKeyCommandExecution = true;
|
|
299
396
|
}
|
|
300
397
|
execute(platform) {
|
|
@@ -312,6 +409,7 @@ class QuestionMark {
|
|
|
312
409
|
this.key = "?";
|
|
313
410
|
this.platform = "all";
|
|
314
411
|
this.description = "Show this help";
|
|
412
|
+
this.group = "Development Workflow";
|
|
315
413
|
this.willBlockKeyCommandExecution = true;
|
|
316
414
|
}
|
|
317
415
|
execute(platform_) {
|
|
@@ -324,6 +422,10 @@ class QuestionMark {
|
|
|
324
422
|
case "ios":
|
|
325
423
|
platform = "iOS";
|
|
326
424
|
break;
|
|
425
|
+
case "visionOS":
|
|
426
|
+
case "vision":
|
|
427
|
+
platform = "visionOS";
|
|
428
|
+
break;
|
|
327
429
|
default:
|
|
328
430
|
platform = "all";
|
|
329
431
|
break;
|
|
@@ -335,9 +437,11 @@ class QuestionMark {
|
|
|
335
437
|
}
|
|
336
438
|
exports.QuestionMark = QuestionMark;
|
|
337
439
|
yok_1.injector.registerKeyCommand("a", A);
|
|
338
|
-
yok_1.injector.registerKeyCommand("i", I);
|
|
339
440
|
yok_1.injector.registerKeyCommand("A", ShiftA);
|
|
441
|
+
yok_1.injector.registerKeyCommand("i", I);
|
|
340
442
|
yok_1.injector.registerKeyCommand("I", ShiftI);
|
|
443
|
+
yok_1.injector.registerKeyCommand("v", V);
|
|
444
|
+
yok_1.injector.registerKeyCommand("V", ShiftV);
|
|
341
445
|
yok_1.injector.registerKeyCommand("r", R);
|
|
342
446
|
yok_1.injector.registerKeyCommand("R", ShiftR);
|
|
343
447
|
yok_1.injector.registerKeyCommand("w", W);
|
|
@@ -347,4 +451,6 @@ yok_1.injector.registerKeyCommand("n", N);
|
|
|
347
451
|
yok_1.injector.registerKeyCommand("?", QuestionMark);
|
|
348
452
|
yok_1.injector.registerKeyCommand("\u0003", CtrlC);
|
|
349
453
|
yok_1.injector.registerCommand("open|ios", OpenIOSCommand);
|
|
454
|
+
yok_1.injector.registerCommand("open|visionos", OpenVisionOSCommand);
|
|
455
|
+
yok_1.injector.registerCommand("open|vision", OpenVisionOSCommand);
|
|
350
456
|
yok_1.injector.registerCommand("open|android", OpenAndroidCommand);
|
|
@@ -60,9 +60,17 @@ class XcodebuildArgsService {
|
|
|
60
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
61
|
const architectures = yield this.getArchitecturesArgs(buildConfig);
|
|
62
62
|
const archivePath = path.join(platformData.getBuildOutputPath(buildConfig), projectData.projectName + ".xcarchive");
|
|
63
|
+
let destination = "generic/platform=iOS";
|
|
64
|
+
let isvisionOS = this.$devicePlatformsConstants.isvisionOS(buildConfig.platform);
|
|
65
|
+
if (isvisionOS) {
|
|
66
|
+
destination = "platform=visionOS";
|
|
67
|
+
if (buildConfig._device) {
|
|
68
|
+
destination += `,id=${buildConfig._device.deviceInfo.identifier}`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
63
71
|
const args = [
|
|
64
72
|
"-destination",
|
|
65
|
-
|
|
73
|
+
destination,
|
|
66
74
|
"archive",
|
|
67
75
|
"-archivePath",
|
|
68
76
|
archivePath,
|
|
@@ -107,6 +115,11 @@ class XcodebuildArgsService {
|
|
|
107
115
|
if (deployTargetVersion) {
|
|
108
116
|
extraArgs.push(`${deployTargetProperty}=${deployTargetVersion}`);
|
|
109
117
|
}
|
|
118
|
+
const bootProperty = "NS_SWIFTUI_BOOT";
|
|
119
|
+
const bootValue = this.$xcconfigService.readPropertyValue(BUILD_SETTINGS_FILE_PATH, bootProperty);
|
|
120
|
+
if (bootValue) {
|
|
121
|
+
extraArgs.push(`${bootProperty}=${bootValue}`);
|
|
122
|
+
}
|
|
110
123
|
if (this.$fs.exists(xcworkspacePath)) {
|
|
111
124
|
return ["-workspace", xcworkspacePath, ...extraArgs];
|
|
112
125
|
}
|
|
@@ -14,7 +14,8 @@ const path = require("path");
|
|
|
14
14
|
const plist_merge_patch_1 = require("plist-merge-patch");
|
|
15
15
|
const yok_1 = require("../common/yok");
|
|
16
16
|
class IOSEntitlementsService {
|
|
17
|
-
constructor($fs, $logger, $devicePlatformsConstants, $mobileHelper, $pluginsService) {
|
|
17
|
+
constructor($options, $fs, $logger, $devicePlatformsConstants, $mobileHelper, $pluginsService) {
|
|
18
|
+
this.$options = $options;
|
|
18
19
|
this.$fs = $fs;
|
|
19
20
|
this.$logger = $logger;
|
|
20
21
|
this.$devicePlatformsConstants = $devicePlatformsConstants;
|
|
@@ -22,12 +23,14 @@ class IOSEntitlementsService {
|
|
|
22
23
|
this.$pluginsService = $pluginsService;
|
|
23
24
|
}
|
|
24
25
|
getDefaultAppEntitlementsPath(projectData) {
|
|
26
|
+
var _a;
|
|
25
27
|
const entitlementsName = IOSEntitlementsService.DefaultEntitlementsName;
|
|
26
|
-
const entitlementsPath = path.join(projectData.appResourcesDirectoryPath, this.$mobileHelper.normalizePlatformName(this.$devicePlatformsConstants.iOS), entitlementsName);
|
|
28
|
+
const entitlementsPath = path.join(projectData.appResourcesDirectoryPath, this.$mobileHelper.normalizePlatformName((_a = this.$options.platformOverride) !== null && _a !== void 0 ? _a : this.$devicePlatformsConstants.iOS), entitlementsName);
|
|
27
29
|
return entitlementsPath;
|
|
28
30
|
}
|
|
29
31
|
getPlatformsEntitlementsPath(projectData) {
|
|
30
|
-
|
|
32
|
+
var _a;
|
|
33
|
+
return path.join(projectData.platformsDir, (_a = this.$options.platformOverride) !== null && _a !== void 0 ? _a : this.$devicePlatformsConstants.iOS.toLowerCase(), projectData.projectName, projectData.projectName + ".entitlements");
|
|
31
34
|
}
|
|
32
35
|
getPlatformsEntitlementsRelativePath(projectData) {
|
|
33
36
|
return path.join(projectData.projectName, projectData.projectName + ".entitlements");
|
|
@@ -48,6 +48,11 @@ class StartService {
|
|
|
48
48
|
this.runForPlatform(this.$devicePlatformsConstants.iOS);
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
|
+
runVisionOS() {
|
|
52
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
this.runForPlatform(this.$devicePlatformsConstants.visionOS);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
51
56
|
runAndroid() {
|
|
52
57
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
58
|
this.runForPlatform(this.$devicePlatformsConstants.Android);
|
|
@@ -60,6 +65,13 @@ class StartService {
|
|
|
60
65
|
}
|
|
61
66
|
});
|
|
62
67
|
}
|
|
68
|
+
stopVisionOS() {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
if (this.visionos) {
|
|
71
|
+
this.visionos.kill("SIGINT");
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
63
75
|
stopAndroid() {
|
|
64
76
|
return __awaiter(this, void 0, void 0, function* () {
|
|
65
77
|
if (this.android) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nativescript",
|
|
3
3
|
"preferGlobal": true,
|
|
4
|
-
"version": "8.
|
|
4
|
+
"version": "8.7.0-rc.0",
|
|
5
5
|
"author": "NativeScript <support@nativescript.org>",
|
|
6
6
|
"description": "Command-line interface for building NativeScript projects",
|
|
7
7
|
"bin": {
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"@npmcli/move-file": "^2.0.0",
|
|
62
62
|
"@rigor789/resolve-package-path": "1.0.7",
|
|
63
63
|
"@rigor789/trapezedev-project": "7.1.1",
|
|
64
|
-
|
|
64
|
+
"ansi-colors": "^4.1.3",
|
|
65
65
|
"archiver": "^5.3.1",
|
|
66
66
|
"axios": "1.6.5",
|
|
67
67
|
"byline": "5.0.0",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"esprima": "4.0.1",
|
|
76
76
|
"font-finder": "1.1.0",
|
|
77
77
|
"glob": "9.3.4",
|
|
78
|
-
"ios-device-lib": "0.9.
|
|
78
|
+
"ios-device-lib": "0.9.3",
|
|
79
79
|
"ios-mobileprovision-finder": "1.1.0",
|
|
80
80
|
"ios-sim-portable": "4.5.0",
|
|
81
81
|
"jimp": "0.22.10",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"minimatch": "7.4.2",
|
|
87
87
|
"mkdirp": "2.1.6",
|
|
88
88
|
"mute-stream": "1.0.0",
|
|
89
|
-
"nativescript-dev-xcode": "0.
|
|
89
|
+
"nativescript-dev-xcode": "0.7.0",
|
|
90
90
|
"open": "8.4.2",
|
|
91
91
|
"ora": "5.4.1",
|
|
92
92
|
"pacote": "15.1.1",
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Changers Lorgs!
|
|
2
|
-
|
|
3
|
-
## 1.0
|
|
4
|
-
|
|
5
|
-
Full rewrite. Essentially a brand new module.
|
|
6
|
-
|
|
7
|
-
- Return a promise instead of taking a callback.
|
|
8
|
-
- Use native `fs.mkdir(path, { recursive: true })` when available.
|
|
9
|
-
- Drop support for outdated Node.js versions. (Technically still works on
|
|
10
|
-
Node.js v8, but only 10 and above are officially supported.)
|
|
11
|
-
|
|
12
|
-
## 0.x
|
|
13
|
-
|
|
14
|
-
Original and most widely used recursive directory creation implementation
|
|
15
|
-
in JavaScript, dating back to 2010.
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
# v3.0
|
|
2
|
-
|
|
3
|
-
- Add `--preserve-root` option to executable (default true)
|
|
4
|
-
- Drop support for Node.js below version 6
|
|
5
|
-
|
|
6
|
-
# v2.7
|
|
7
|
-
|
|
8
|
-
- Make `glob` an optional dependency
|
|
9
|
-
|
|
10
|
-
# 2.6
|
|
11
|
-
|
|
12
|
-
- Retry on EBUSY on non-windows platforms as well
|
|
13
|
-
- Make `rimraf.sync` 10000% more reliable on Windows
|
|
14
|
-
|
|
15
|
-
# 2.5
|
|
16
|
-
|
|
17
|
-
- Handle Windows EPERM when lstat-ing read-only dirs
|
|
18
|
-
- Add glob option to pass options to glob
|
|
19
|
-
|
|
20
|
-
# 2.4
|
|
21
|
-
|
|
22
|
-
- Add EPERM to delay/retry loop
|
|
23
|
-
- Add `disableGlob` option
|
|
24
|
-
|
|
25
|
-
# 2.3
|
|
26
|
-
|
|
27
|
-
- Make maxBusyTries and emfileWait configurable
|
|
28
|
-
- Handle weird SunOS unlink-dir issue
|
|
29
|
-
- Glob the CLI arg for better Windows support
|
|
30
|
-
|
|
31
|
-
# 2.2
|
|
32
|
-
|
|
33
|
-
- Handle ENOENT properly on Windows
|
|
34
|
-
- Allow overriding fs methods
|
|
35
|
-
- Treat EPERM as indicative of non-empty dir
|
|
36
|
-
- Remove optional graceful-fs dep
|
|
37
|
-
- Consistently return null error instead of undefined on success
|
|
38
|
-
- win32: Treat ENOTEMPTY the same as EBUSY
|
|
39
|
-
- Add `rimraf` binary
|
|
40
|
-
|
|
41
|
-
# 2.1
|
|
42
|
-
|
|
43
|
-
- Fix SunOS error code for a non-empty directory
|
|
44
|
-
- Try rmdir before readdir
|
|
45
|
-
- Treat EISDIR like EPERM
|
|
46
|
-
- Remove chmod
|
|
47
|
-
- Remove lstat polyfill, node 0.7 is not supported
|
|
48
|
-
|
|
49
|
-
# 2.0
|
|
50
|
-
|
|
51
|
-
- Fix myGid call to check process.getgid
|
|
52
|
-
- Simplify the EBUSY backoff logic.
|
|
53
|
-
- Use fs.lstat in node >= 0.7.9
|
|
54
|
-
- Remove gently option
|
|
55
|
-
- remove fiber implementation
|
|
56
|
-
- Delete files that are marked read-only
|
|
57
|
-
|
|
58
|
-
# 1.0
|
|
59
|
-
|
|
60
|
-
- Allow ENOENT in sync method
|
|
61
|
-
- Throw when no callback is provided
|
|
62
|
-
- Make opts.gently an absolute path
|
|
63
|
-
- use 'stat' if 'lstat' is not available
|
|
64
|
-
- Consistent error naming, and rethrow non-ENOENT stat errors
|
|
65
|
-
- add fiber implementation
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
<a name="1.0.1"></a>
|
|
6
|
-
## [1.0.1](https://github.com/npm/stringify-package/compare/v1.0.0...v1.0.1) (2019-09-30)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
### Bug Fixes
|
|
10
|
-
|
|
11
|
-
* strict comparison ([0c5675f](https://github.com/npm/stringify-package/commit/0c5675f)), closes [#2](https://github.com/npm/stringify-package/issues/2)
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<a name="1.0.0"></a>
|
|
16
|
-
# 1.0.0 (2018-07-18)
|