File tree Expand file tree Collapse file tree 2 files changed +21
-25
lines changed
packages/cli-platform-apple/src Expand file tree Collapse file tree 2 files changed +21
-25
lines changed Original file line number Diff line number Diff line change @@ -149,14 +149,32 @@ const createRun =
149149 return ;
150150 }
151151
152- const devices = await listDevices ( sdkNames ) ;
152+ let devices = await listDevices ( sdkNames ) ;
153153
154154 if ( devices . length === 0 ) {
155155 return logger . error (
156156 `${ platformReadableName } devices or simulators not detected. Install simulators via Xcode or connect a physical ${ platformReadableName } device` ,
157157 ) ;
158158 }
159159
160+ const packageJson = getPackageJson ( ctx . root ) ;
161+
162+ const preferredDevice = cacheManager . get (
163+ packageJson . name ,
164+ 'lastUsedIOSDeviceId' ,
165+ ) ;
166+
167+ if ( preferredDevice ) {
168+ const preferredDeviceIndex = devices . findIndex (
169+ ( { udid} ) => udid === preferredDevice ,
170+ ) ;
171+
172+ if ( preferredDeviceIndex > - 1 ) {
173+ const [ device ] = devices . splice ( preferredDeviceIndex , 1 ) ;
174+ devices . unshift ( device ) ;
175+ }
176+ }
177+
160178 const fallbackSimulator =
161179 platformName === 'ios' ? getFallbackSimulator ( args ) : devices [ 0 ] ;
162180
@@ -169,16 +187,7 @@ const createRun =
169187 ) ;
170188 }
171189
172- const packageJson = getPackageJson ( ctx . root ) ;
173- const preferredDevice = cacheManager . get (
174- packageJson . name ,
175- 'lastUsedIOSDeviceId' ,
176- ) ;
177-
178- const selectedDevice = await promptForDeviceSelection (
179- devices ,
180- preferredDevice ,
181- ) ;
190+ const selectedDevice = await promptForDeviceSelection ( devices ) ;
182191
183192 if ( ! selectedDevice ) {
184193 throw new CLIError (
Original file line number Diff line number Diff line change @@ -40,25 +40,12 @@ export async function promptForConfigurationSelection(
4040
4141export async function promptForDeviceSelection (
4242 devices : Device [ ] ,
43- lastUsedIOSDeviceId ?: string ,
4443) : Promise < Device | undefined > {
45- const sortedDevices = [ ...devices ] ;
46- const devicesIds = sortedDevices . map ( ( { udid} ) => udid ) ;
47-
48- if ( lastUsedIOSDeviceId ) {
49- const preferredDeviceIndex = devicesIds . indexOf ( lastUsedIOSDeviceId ) ;
50-
51- if ( preferredDeviceIndex > - 1 ) {
52- const [ preferredDevice ] = sortedDevices . splice ( preferredDeviceIndex , 1 ) ;
53- sortedDevices . unshift ( preferredDevice ) ;
54- }
55- }
56-
5744 const { device} = await prompt ( {
5845 type : 'select' ,
5946 name : 'device' ,
6047 message : 'Select the device you want to use' ,
61- choices : sortedDevices
48+ choices : devices
6249 . filter ( ( { type} ) => type === 'device' || type === 'simulator' )
6350 . map ( ( d ) => {
6451 const availability =
You can’t perform that action at this time.
0 commit comments