Skip to content

Commit 5d90356

Browse files
Fatme HavaluovaFatme Havaluova
Fatme Havaluova
authored and
Fatme Havaluova
committed
Support for sdkVersion option
Implements NativeScript/nativescript-cli#952
1 parent 8a6f364 commit 5d90356

File tree

4 files changed

+61
-31
lines changed

4 files changed

+61
-31
lines changed

lib/iphone-simulator.js

+25-13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/iphone-simulator.ts

+32-16
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,9 @@ export class iPhoneSimulator implements IiPhoneSimulator {
4848

4949
public printSDKS(): IFuture<void> {
5050
var action = () => {
51-
var systemRootClass = this.getClassByName("DTiPhoneSimulatorSystemRoot");
52-
var roots = systemRootClass("knownRoots");
53-
var count = roots("count");
54-
55-
var sdks: ISdk[] = [];
56-
for(var index=0; index < count; index++) {
57-
var root = roots("objectAtIndex", index);
58-
59-
var displayName = root("sdkDisplayName").toString();
60-
var version = root("sdkVersion").toString();
61-
var rootPath = root("sdkRootPath").toString();
62-
63-
sdks.push(new Sdk(displayName, version, rootPath));
64-
}
65-
51+
var sdks = this.getInstalledSdks();
6652
sdks = _.sortBy(sdks, (sdk: ISdk) => sdk.version);
53+
6754
_.each(sdks, (sdk: ISdk) => console.log(sdk.sdkInfo() + os.EOL));
6855
};
6956

@@ -145,7 +132,7 @@ export class iPhoneSimulator implements IiPhoneSimulator {
145132
config("setApplicationToSimulateOnStart", appSpec);
146133
config("setSimulatedApplicationShouldWaitForDebugger", options.waitForDebugger);
147134

148-
var sdkRoot = options.sdkRoot ? $(options.sdkRoot) : this.getClassByName("DTiPhoneSimulatorSystemRoot")("defaultRoot");
135+
var sdkRoot = options.sdkVersion ? $(this.getSdkRootPathByVersion(options.sdkVersion)) : this.getClassByName("DTiPhoneSimulatorSystemRoot")("defaultRoot");
149136
config("setSimulatedSystemRoot", sdkRoot);
150137

151138
var simulator = this.createSimulator(config);
@@ -306,6 +293,35 @@ export class iPhoneSimulator implements IiPhoneSimulator {
306293

307294
return future;
308295
}
296+
297+
private getInstalledSdks(): ISdk[] {
298+
var systemRootClass = this.getClassByName("DTiPhoneSimulatorSystemRoot");
299+
var roots = systemRootClass("knownRoots");
300+
var count = roots("count");
301+
302+
var sdks: ISdk[] = [];
303+
for(var index=0; index < count; index++) {
304+
var root = roots("objectAtIndex", index);
305+
306+
var displayName = root("sdkDisplayName").toString();
307+
var version = root("sdkVersion").toString();
308+
var rootPath = root("sdkRootPath").toString();
309+
310+
sdks.push(new Sdk(displayName, version, rootPath));
311+
}
312+
313+
return sdks;
314+
}
315+
316+
private getSdkRootPathByVersion(version: string): string {
317+
var sdks = this.getInstalledSdks();
318+
var sdk = _.find(sdks, sdk => sdk.version === version);
319+
if(!sdk) {
320+
errors.fail("Unable to find installed sdk with version %s. Verify that you have specified correct version and the sdk with that version is installed.", version);
321+
}
322+
323+
return sdk.rootPath;
324+
}
309325
}
310326

311327
class Sdk implements ISdk {

lib/options.js

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/options.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ var knownOptions: any = {
1414
"timeout": String,
1515
"help": Boolean,
1616
"logging": Boolean,
17-
"waitForDebugger": Boolean
17+
"waitForDebugger": Boolean,
18+
"sdkVersion": String
1819
};
1920

2021
var parsed: any = {};

0 commit comments

Comments
 (0)