Я решил найти его самостоятельно, используя fswatch
.Кстати, это действительно полезно для подобных ситуаций.Наблюдая за изменениями файла, пока переключал флаг " Показать как место назначения запуска ", я обнаружил, что Xcode изменяет файл ~/Library/Preferences/com.apple.dt.Xcode.plist
?
После некоторого анализа я заметил ключ, который мне нужно было изменить, чтобы достичь того, что я имел в виду.Ключ DVTIgnoredDevices
и содержит массив симуляторов.Таким образом, каждый UUID симулятора в этом списке будет игнорироваться в Xcode.
Теперь я могу изменить клавишу DVTIgnoredDevices
, используя defaults
инструмент командной строки, указав необходимый тип значения:
-array Позволяет пользователю указать массив в качестве значения для данного ключа предпочтения:
defaults write somedomain preferenceKey -array element1 element2 element3
Указанный массив перезаписывает значение ключаесли ключ присутствовал во время записи.Если ключ отсутствует, он создается с новым значением.
Пример:
defaults write com.apple.dt.Xcode DVTIgnoredDevices '(
"80E16DBC-2FE5-48AC-8A44-1F5DEFA00EA7",
"B8C4D5FF-8F1A-4895-BD16-CCAFECD71098"
)'
После установки клавиши DVTIgnoredDevices
вынужно почистить папку DerivedData
и перезапустить Xcode.Чтобы очистить папку DerivedData
, посмотрите этот ответ или просто запустите ярлык shift+alt+cmd+k
(это то, что я обычно делаю).
Протестировано на Xcode Version 9.4 (9F1027a).
ОБНОВЛЕНИЕ:
Я обычно хотел бы иметь в списке всего пару симуляторов, поэтому я решил сделать скрипт, используя instruments -s devices
и добавить все текущие симуляторына ключ DVTIgnoredDevices
.Затем я выбрал симулятор (ы), которые будут показаны ?
Xcode-hide-all-iPhone-simulators.sh
simulatorsIdentifiers=$(instruments -s devices |
grep -o "iPhone .* (.*) \[.*\]" | #only iPhone
grep -o "\[.*\]" | #only UUID
sed "s/^\[\(.*\)\]$/\1/" | #remove square brackets
sed 's/^/"/;$!s/$/"/;$s/$/"/' | #add quotes
sed '$!s/$/,/' #add comma to separate each element
)
arrayOfSimulatorsIdentifiers=($(echo "$simulatorsIdentifiers" | tr ',' '\n'))
# Add simulators to DVTIgnoredDevices
echo "${#arrayOfSimulatorsIdentifiers[@]}"
for index in "${!arrayOfSimulatorsIdentifiers[@]}"
do
echo "$index Adding: ${arrayOfSimulatorsIdentifiers[index]}"
done
defaults write com.apple.dt.Xcode DVTIgnoredDevices -array ${arrayOfSimulatorsIdentifiers[@]}
Gist file