Подтвердить что ты не робот

Дублированные симуляторы iPhone появились на моем Xcode

Повторный симулятор iPhone появился только после того, как я удалил папку ~/Library/Developer/Xcode/CoreSimulator

Duplicate iPhone Simulators

Как решить эту проблему?

Я попытался удалить папку ~/Library/Developer/Xcode и папку ~/Library/Application Support/iPhoneSimulator. Но все не удалось.

4b9b3361

Ответ 1

Это может произойти из-за установки нескольких Xcode или во время обновления Xcode. Единственное, что нужно сделать, это открыть Xcode → Window → Devices, выбрать дублированное устройство и удалить его.

Ответ 2

У меня такая же проблема после установки бета-версии Xcode. Я обнаружил, что есть несколько решений для устранения этой проблемы.

1. снимок

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

использование: gem install fastlane; fastlane snapshot reset_simulators

Я решил проблему с этой библиотекой, и ее очень просто использовать.

2. Xcode- > Window- > Устройства

Вы можете проверить установленные имитаторы и удалить их. Но это займет слишком много времени, если у вас много симуляторов.

3. xcrun simctl delete

вы можете использовать команду xcrun в терминале. Но вам нужно ввести конкретное имя устройства с помощью команды.

Ответ 3

У меня было очень много! Слишком много, чтобы удалить один за другим в устройствах, спасибо Apple за то, что вы не включили мульти-выбор. Не удаляйте двойное нажатие либо, либо вы будете разбивать Xcode. Я нашел script, который мог удалять дубликаты, но он работал только в том случае, если в каждом случае было только один дубликат, поэтому в моем случае это не сработало. Поэтому я отредактировал script, чтобы просто удалить все симуляторы, а затем вы можете добавить все, что вам нужно, просто щелкнув плюс в окне "Устройства".

Сохраните следующее как 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])

Затем запустите:

python remove_all_sims.py

Обратите внимание на свои жесткие кодировки только для iOS 8.4.

Много дубликатов