Skip to content

Instantly share code, notes, and snippets.

@dynamicguy
Last active September 14, 2018 23:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dynamicguy/e8756a9f0f50af86d6e746d4b1ab6a09 to your computer and use it in GitHub Desktop.
Save dynamicguy/e8756a9f0f50af86d6e746d4b1ab6a09 to your computer and use it in GitHub Desktop.
Recreate all available iOS simulators
#!/usr/bin/env ruby
# -*- mode: ruby -*-
# vi: set ft=ruby :
require 'JSON'
device_types = JSON.parse `xcrun simctl list -j devicetypes`
runtimes = JSON.parse `xcrun simctl list -j runtimes`
devices = JSON.parse `xcrun simctl list -j devices`
devices['devices'].each do |runtime, runtime_devices|
runtime_devices.each do |device|
puts "Removing device #{device['name']} (#{device['udid']})"
`xcrun simctl delete #{device['udid']}`
end
end
device_types['devicetypes'].each do |device_type|
runtimes['runtimes'].select{|runtime| runtime['availability'] == '(available)'}.each do |runtime|
puts "Creating #{device_type['name']} with #{runtime['name']}"
command = "xcrun simctl create '#{device_type['name']}' #{device_type['identifier']} #{runtime['identifier']}"
command_output = `#{command}`
sleep 0.5
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment