Last active
June 23, 2016 03:04
-
-
Save jcayzac/62c9a6eb08fef5692c32 to your computer and use it in GitHub Desktop.
How to reset the iOS simulator properly
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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