Skip to content

Instantly share code, notes, and snippets.

@jcayzac
Last active June 23, 2016 03:04
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 jcayzac/62c9a6eb08fef5692c32 to your computer and use it in GitHub Desktop.
Save jcayzac/62c9a6eb08fef5692c32 to your computer and use it in GitHub Desktop.
How to reset the iOS simulator properly
# source this in your Bash scripts
reset-sim() {
printf 'Close the frontend app if needed…'
killall iOS\ Simulator 2>&- && sleep 5 || true
printf ' Done.\n'
declare SIM_OS SIM SIM_ID
while read SIM
do
if [[ "$SIM" =~ ^--\ iOS\ (.+)\ --$ ]]
then
SIM_OS="${BASH_REMATCH[1]}"
continue
fi
[[ ! "$SIM" =~ unavailable ]] || continue
SIM_ID="${SIM%%)*}"
SIM_ID="${SIM_ID#* (}"
[[ "$SIM_ID" =~ [0-9A-F\-]{36} ]] || continue
printf 'Resetting [%21s] simulator…' "${SIM%% (*}/$SIM_OS"
[[ "$SIM" =~ Shutdown ]] || xcrun simctl shutdown "$SIM_ID"
xcrun simctl erase "$SIM_ID"
# BUG: 'simctl erase' doesn't re-create the 'Documents' folder
mkdir -p "$HOME/Library/Developer/CoreSimulator/Devices/$SIM_ID/data/Documents"
printf ' Done.\n'
done < <(xcrun simctl list devices)
}
# $ reset-sim
# Close the frontend app if needed… Done.
# Resetting [ iPhone 4s/7.1] simulator… Done.
# Resetting [ iPhone 5/7.1] simulator… Done.
# Resetting [ iPhone 5s/7.1] simulator… Done.
# Resetting [ iPad 2/7.1] simulator… Done.
# Resetting [ iPad Retina/7.1] simulator… Done.
# Resetting [ iPad Air/7.1] simulator… Done.
# Resetting [ iPhone 4s/8.0] simulator… Done.
# Resetting [ iPhone 5/8.0] simulator… Done.
# Resetting [ iPhone 5s/8.0] simulator… Done.
# Resetting [ iPhone 6 Plus/8.0] simulator… Done.
# Resetting [ iPhone 6/8.0] simulator… Done.
# Resetting [ iPad 2/8.0] simulator… Done.
# Resetting [ iPad Retina/8.0] simulator… Done.
# Resetting [ iPad Air/8.0] simulator… Done.
# Resetting [ Resizable iPhone/8.0] simulator… Done.
# Resetting [ Resizable iPad/8.0] simulator… Done.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment