Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@buscarini
Created July 15, 2015 07:09
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save buscarini/6ec0ef1385f47fdbc505 to your computer and use it in GitHub Desktop.
Save buscarini/6ec0ef1385f47fdbc505 to your computer and use it in GitHub Desktop.
Remove Xcode duplicated simulators
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
from subprocess import Popen, PIPE
from subprocess import call
p = Popen(["xcrun","simctl","list","devices"], stdin=PIPE, stdout=PIPE, stderr=PIPE)
output, err = p.communicate(b"input data that is passed to subprocess' stdin")
blocks = re.split("--\s+(.*?)\s+--",output)
dic = {}
i=0
for block in blocks:
matches = re.findall("iOS 8.4",block)
if len(matches)>0:
content = blocks[i+1]
lines = content.split("\n")
for line in lines:
line = line.strip()
if len(line)>0:
match = re.match("(.*?)\(",line)
if match:
devicename = match.group(1)
idMatch = re.match(".*?\((.*?)\).*",line)
dic[devicename] = idMatch.group(1)
# print match.group(1)
# print line
i = i+1
for guid in dic.itervalues():
call(["xcrun","simctl","delete",guid])
@lammertw
Copy link

lammertw commented Aug 7, 2015

When I run this it's not doing anything. I still have all duplicate simulators afterwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment