Wie verwende ich den Dunkelmodus in Simulator iOS 13?

162

Während ich die iOS-App entwickle, muss ich sie im Simulator mit der Option "Dunkler Modus" testen, damit ich mehr Klarheit über die Benutzeroberfläche der App bekomme. Wenn ich jedoch zur Einstellung gehe, erhalte ich keine Option für den Dunkelmodus, da das reale Gerät angezeigt wird.

Mr.Javed Multani
quelle

Antworten:

295

Scrollen Sie in den Einstellungen nach unten zu Entwickler und dann zu Dunkler Darstellung

Geben Sie hier die Bildbeschreibung ein


Aktualisieren

Darüber hinaus gibt es jetzt viele andere Möglichkeiten, um ein dunkles Erscheinungsbild im Simulator zu ermöglichen, wie in den vielen großartigen Antworten unten gezeigt.

• Umgebungsüberschreibungen von Xcode ändern (@AshCameron)

• Schalten Sie die Darstellung Aim Simulator-Menü um (@ Shredder2794).

• Aktualisieren Sie über die Befehlszeile mit xcrun simctl ui booted appearance …(@blackjacx, @tadija).

• Programmgesteuert mit overrideUserInterfaceStyle = .dark(@thisIsTheFoxe)

• Geben Sie UIUserInterfaceStylein Ihrer info.plist (@DhavalGevariya) an.

• Verwenden Sie SimGenie von Curtis Herbert…  https://simgenie.app

Ashley Mills
quelle
78

Sie können den Schnittstellenmodus (dh Hell / Dunkel) umschalten und die Einstellung des dynamischen Typs im laufenden Betrieb (wenn der Simulator läuft) wie folgt anpassen:

Dunkler Modus mit Xcode

Ash Cameron
quelle
Gute Antwort. Auch gut zu sehen, alle anderen Größe und Zugänglichkeit Dinge, macht es so viel schneller bei der Entwicklung
Matt Fletcher
3
Schön 👍 Ich hätte nie auf diese nicht markierte Schaltfläche geklickt.
Woz
3
Dies sollte die akzeptierte Antwort sein, kurz und praktisch, anstatt mehrere Menüs durchzugehen.
Heckscheibe
6
Protip: Wenn Sie den Simulator über Xcode im Vordergrund haben, können Sie mit der Befehlstaste + auf diese Schaltfläche in Xcode (und auf alle Schalter in diesem Bereich) klicken, um die Einstellungen zu ändern, während der Simulator vorne bleibt! Kredit: WWDC Zustand der Gewerkschaft iirc
Graystripe
13

Automatisierte Änderung des Erscheinungsbilds 🦉

Xcode 11.4 🌟

Apple hat ein leistungsstarkes Xcode-Update veröffentlicht, das einige nützliche Dinge für dieses Thema enthält. Das Aussehen kann jetzt direkt im Simulator ausgewählt werden. Wählen Sie einfach Features > Toggle Appearanceoder ⇧ + ⌘ + A. Die automatische Umschaltung des Erscheinungsbilds kann dennoch wichtig sein, z. B. für automatisierte Screenshot-Tests in der Befehlszeile. Das Skript wird bei Verwendung von Xcode 11.4 so einfach:

device_ids=("C741F3CD-FDAC-49EA-A4DB-7F797B97291E" "428183B6-3EB8-4D36-9938-9D07C141BF49")

# The value to use is now just 'dark' or 'light'
appearance=dark

for device in "${device_ids[@]}"; do
  xcrun simctl boot $device
  xcrun simctl ui $device appearance $appearance
done

Es ist kein Töten oder Zurücksetzen des Simulators mehr erforderlich, was einen enormen Leistungsgewinn darstellt. Auch kein Herumspielen mit Plist-Werkzeugen mehr - niemals. Beachten Sie, dass Sie Geräte-IDs verwenden müssen, die in der von Ihnen verwendeten Laufzeit verfügbar sind. Finden Sie sie heraus mit xcrun simctl list.

Siehe auch mein vollständiges Skript: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

Es gibt eine Möglichkeit, über die Befehlszeile einen Simulator zwischen Hell- und Dunkelmodus umzuschalten. Wenn Sie ein Array mit Ihren Geräte-IDs haben, können Sie Folgendes tun:

device_ids=("C741F3CD-FDAC-49EA-A4DB-7F797B97291E" "428183B6-3EB8-4D36-9938-9D07C141BF49")

# Determine the plist value for the desired style: "dark" -> 2 / "light" -> 1
style=2

for device_id in "${device_ids[@]}"; do
  plist_path="${HOME}/Library/Developer/CoreSimulator/Devices/${device_id}/data/Library/Preferences/com.apple.uikitservices.userInterfaceStyleMode.plist"  
  printf '\n%s' "Set style $style for device $device_id ($plist_path)"

  killall "Simulator"
  xcrun simctl shutdown booted
  xcrun simctl erase $device_id

  # Crate the plist since it might not be available after erase
  [[ ! -f "$plist_path" ]] && /usr/libexec/PlistBuddy -c "save" $plist_path  
  # Set the style mode
  plutil -replace UserInterfaceStyleMode -integer $style $plist_path
done

Wenn Sie in Ihrem Skript Gerätenamen angeben möchten, da die Geräte-IDs auf verschiedenen Computern unterschiedlich sind, können Sie die IDs dieser Geräte auch mithilfe des folgenden Bash-Codes leicht finden:

device_names=("iPhone SE" "iPhone 8" "iPhone 11 Pro" "iPhone 11 Pro Max")
device_ids=()

for name in "${device_names[@]}"; do
  id=$(xcrun simctl list --json | jq ".devices | .[] | .[] | select(.name == \"$name\") | .udid" | cut -d\" -f2)
  device_ids+=("$id")
done

printf '%s\n' "${device_ids[@]}"
blackjacx
quelle
1
Ab Xcode 11.4 wird dies direkt von Simulator.app und dem xcrun simctl uiBefehl unterstützt.
Russbischof
1
Ja, das habe ich gesehen - ich werde die Antwort aktualisieren, sobald ich alles getestet habe. Die Automatisierung ist immer noch gut - besonders für automatisierte Tests. Die neue Simctl-Einstellung erleichtert den obigen Code erheblich.
Blackjacx
11

Sie können die Einstellung "Aussehen umschalten" aus der Dropdown-Liste des Simulator-Menüs (Umschalt-Befehl-A) verwenden:

Geben Sie hier die Bildbeschreibung ein

Shredder2794
quelle
9

Alternativ können Sie das Erscheinungsbild auch programmgesteuert ändern ( Dokumente ):

override func viewDidLoad() {
    super.viewDidLoad()
    #if DEBUG
    // change the appearance only while testing  
    overrideUserInterfaceStyle = .dark
    #endif
}
thisIsTheFoxe
quelle
4

Es gibt zwei Möglichkeiten, den Dunkelmodus in Simulator zu aktivieren. Hinweis: Stellen Sie sicher, dass Sie den iOS 13-Simulator verwenden. XD

Lösung 1: Ändern Sie die Build-Einstellungen

  1. Öffnen Sie die App Einstellungen
  2. Wählen Sie Entwickler
  3. Dunkles Erscheinungsbild aktivieren

Screenshot-1

Lösung 2: Programmatisch

Fügen Sie diesen Codeblock einfach in Ihre ViewController-Datei ein.

override func viewDidLoad() {
    super.viewDidLoad()
    #if DEBUG
    // This changes appearance only for debug mode
    overrideUserInterfaceStyle = .dark
    #endif
}

Screenshot-2

Überprüfen Sie diese Apple-Dokumente für weitere Details.

Jayprakash Dubey
quelle
0

Sie können mit dieser Zeile auch den Dunkelmodus wechseln. Sie müssen diese Zeilen nur in Ihre Datei info.plist einfügen

<key>UIUserInterfaceStyle</key>
<string>Dark</string> //Light
Dhaval Gevariya
quelle
0

vom Terminal:

xcrun simctl ui booted appearance light

xcrun simctl ui booted appearance dark
Tadija
quelle
Nur-Code-Antworten sind zulässig, es wird jedoch empfohlen, die Antwort ebenfalls zu erläutern. Erwägen Sie, eine Erklärung hinzuzufügen.
Zonksoft