重复的iPhone模拟器出现在我的Xcode上

WeZ*_*ard 24 xcode ios-simulator

我删除~/Library/Developer/Xcode/CoreSimulator文件夹后出现了一个重复的iPhone模拟器

重复的iPhone模拟器

如何解决这个问题呢?

我试图删除~/Library/Developer/Xcode文件夹和~/Library/Application Support/iPhoneSimulator文件夹.但都失败了.

Nik*_*nov 55

可能由于安装了多个Xcode或在Xcode升级期间发生.唯一需要做的就是打开Xcode - > Window - > Devices选择重复的设备并删除它.


san*_*oon 32

安装Xcode beta版后我遇到了同样的问题.我发现有几种解决方案可以解决这个问题.

快照

https://github.com/fastlane/fastlane/tree/master/snapshot

用法: gem install fastlane; fastlane snapshot reset_simulators

我用这个库解决了我的问题,使用起来非常简单.

2. Xcode-> Window-> Devices

您可以检查已安装的模拟器并将其删除.但是如果你有很多模拟器需要很长时间.

3. xcrun simctl删除

你可以在终端中使用xcrun命令.但是您需要使用命令输入特定的设备名称.

  • 我使用了选项1,这是一个很好的结果.谢谢 (4认同)

mal*_*hal 5

我有点儿了!在设备中逐个删除太多,感谢Apple不包括多选.不要双击删除,否则你将崩溃Xcode.我找到了一个可以删除重复项的脚本,但只有每种类型只有1个副本才有效,所以在我的情况下不起作用.因此我编辑了脚本以简单地删除所有模拟器,然后只需在"设备"窗口中单击加号即可添加任何所需的模拟器.

将以下内容另存为remove_all_sims.py:

#!/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)
                    call(["xcrun","simctl","delete",idMatch.group(1)])
                    # print match.group(1)
                # print line

    i = i+1

for guid in dic.itervalues():
    call(["xcrun","simctl","delete",guid])
Run Code Online (Sandbox Code Playgroud)

然后运行:

python remove_all_sims.py
Run Code Online (Sandbox Code Playgroud)

请注意其仅适用于iOS 8.4模拟器的硬编码.

许多重复

  • 这对我有用,并且节省了我很多时间,因为我有很多重复项,因此在删除每一个后,Xcode需要几秒钟重新渲染列表.谢谢. (2认同)