@@ -48,22 +48,9 @@ export class iPhoneSimulator implements IiPhoneSimulator {
48
48
49
49
public printSDKS ( ) : IFuture < void > {
50
50
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 ( ) ;
66
52
sdks = _ . sortBy ( sdks , ( sdk : ISdk ) => sdk . version ) ;
53
+
67
54
_ . each ( sdks , ( sdk : ISdk ) => console . log ( sdk . sdkInfo ( ) + os . EOL ) ) ;
68
55
} ;
69
56
@@ -145,7 +132,7 @@ export class iPhoneSimulator implements IiPhoneSimulator {
145
132
config ( "setApplicationToSimulateOnStart" , appSpec ) ;
146
133
config ( "setSimulatedApplicationShouldWaitForDebugger" , options . waitForDebugger ) ;
147
134
148
- var sdkRoot = options . sdkRoot ? $ ( options . sdkRoot ) : this . getClassByName ( "DTiPhoneSimulatorSystemRoot" ) ( "defaultRoot" ) ;
135
+ var sdkRoot = options . sdkVersion ? $ ( this . getSdkRootPathByVersion ( options . sdkVersion ) ) : this . getClassByName ( "DTiPhoneSimulatorSystemRoot" ) ( "defaultRoot" ) ;
149
136
config ( "setSimulatedSystemRoot" , sdkRoot ) ;
150
137
151
138
var simulator = this . createSimulator ( config ) ;
@@ -306,6 +293,35 @@ export class iPhoneSimulator implements IiPhoneSimulator {
306
293
307
294
return future ;
308
295
}
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
+ }
309
325
}
310
326
311
327
class Sdk implements ISdk {
0 commit comments