Skip to content

Commit cce926c

Browse files
Fatme HavaluovaFatme Havaluova
Fatme Havaluova
authored and
Fatme Havaluova
committed
Support for sdkVersion option
Implements NativeScript/nativescript-cli#952
1 parent af44291 commit cce926c

File tree

4 files changed

+70
-34
lines changed

4 files changed

+70
-34
lines changed

lib/iphone-simulator.js

+34-16
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

@@ -142,7 +129,7 @@ export class iPhoneSimulator implements IiPhoneSimulator {
142129
var config = this.getClassByName("DTiPhoneSimulatorSessionConfig")("alloc")("init")("autorelease");
143130
config("setApplicationToSimulateOnStart", appSpec);
144131

145-
var sdkRoot = options.sdkRoot ? $(options.sdkRoot) : this.getClassByName("DTiPhoneSimulatorSystemRoot")("defaultRoot");
132+
var sdkRoot = options.sdkVersion ? $(this.getSdkRootPathByVersion(options.sdkVersion)) : this.getClassByName("DTiPhoneSimulatorSystemRoot")("defaultRoot");
146133
config("setSimulatedSystemRoot", sdkRoot);
147134

148135
var simulator = this.createSimulator(config);
@@ -303,6 +290,35 @@ export class iPhoneSimulator implements IiPhoneSimulator {
303290

304291
return future;
305292
}
293+
294+
private getInstalledSdks(): ISdk[] {
295+
var systemRootClass = this.getClassByName("DTiPhoneSimulatorSystemRoot");
296+
var roots = systemRootClass("knownRoots");
297+
var count = roots("count");
298+
299+
var sdks: ISdk[] = [];
300+
for(var index=0; index < count; index++) {
301+
var root = roots("objectAtIndex", index);
302+
303+
var displayName = root("sdkDisplayName").toString();
304+
var version = root("sdkVersion").toString();
305+
var rootPath = root("sdkRootPath").toString();
306+
307+
sdks.push(new Sdk(displayName, version, rootPath));
308+
}
309+
310+
return sdks;
311+
}
312+
313+
private getSdkRootPathByVersion(version: string): string {
314+
var sdks = this.getInstalledSdks();
315+
var sdk = _.find(sdks, sdk => sdk.version === version);
316+
if(!sdk) {
317+
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);
318+
}
319+
320+
return sdk.rootPath;
321+
}
306322
}
307323

308324
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
@@ -13,7 +13,8 @@ var knownOptions: any = {
1313
"args": String,
1414
"timeout": String,
1515
"help": Boolean,
16-
"logging": Boolean
16+
"logging": Boolean,
17+
"sdkVersion": String
1718
};
1819

1920
var parsed: any = {};

0 commit comments

Comments
 (0)