@@ -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
@@ -142,7 +129,7 @@ export class iPhoneSimulator implements IiPhoneSimulator {
142
129
var config = this . getClassByName ( "DTiPhoneSimulatorSessionConfig" ) ( "alloc" ) ( "init" ) ( "autorelease" ) ;
143
130
config ( "setApplicationToSimulateOnStart" , appSpec ) ;
144
131
145
- var sdkRoot = options . sdkRoot ? $ ( options . sdkRoot ) : this . getClassByName ( "DTiPhoneSimulatorSystemRoot" ) ( "defaultRoot" ) ;
132
+ var sdkRoot = options . sdkVersion ? $ ( this . getSdkRootPathByVersion ( options . sdkVersion ) ) : this . getClassByName ( "DTiPhoneSimulatorSystemRoot" ) ( "defaultRoot" ) ;
146
133
config ( "setSimulatedSystemRoot" , sdkRoot ) ;
147
134
148
135
var simulator = this . createSimulator ( config ) ;
@@ -303,6 +290,35 @@ export class iPhoneSimulator implements IiPhoneSimulator {
303
290
304
291
return future ;
305
292
}
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
+ }
306
322
}
307
323
308
324
class Sdk implements ISdk {
0 commit comments