सिम्युलेटर iOS 13 में डार्क मोड का उपयोग कैसे करें?


165

जब मैं आईओएस ऐप विकसित कर रहा हूं तो मुझे इसे डार्क मोड विकल्प के साथ सिम्युलेटर में परीक्षण करने की आवश्यकता है ताकि मैं ऐप यूआई के बारे में अधिक स्पष्टता प्राप्त कर सकूं। लेकिन जब मैं सेटिंग पर जाता हूं तो मुझे वास्तविक डिवाइस दिखाने के रूप में डार्क मोड के लिए विकल्प नहीं मिल रहा है।

जवाबों:


302

में सेटिंग्स , के लिए नीचे स्क्रॉल डेवलपर और फिर अंधेरे उपस्थिति ...

यहाँ छवि विवरण दर्ज करें


अपडेट करें

उपरोक्त के अलावा, अब सिम्युलेटर में अंधेरे उपस्थिति को सक्षम करने के कई अन्य तरीके हैं, जैसा कि नीचे दिए गए कई शानदार जवाबों में दिखाया गया है।

• Xcode (@AshCameron) से पर्यावरण ओवरराइड बदलें

Aसिम्युलेटर मेनू से टॉगल उपस्थिति (@ Shredder2794)

• कमांड लाइन का उपयोग करके अपडेट करें xcrun simctl ui booted appearance … (@blackjacx, @tadija)

• प्रोग्रामेटिक रूप से उपयोग करना overrideUserInterfaceStyle = .dark (@thisIsTheFoxe)

UIUserInterfaceStyleअपनी info.plist में निर्दिष्ट करें (@DhavalGevariya)

• कर्टिस हर्बर्ट से https://Gimgenie.app सिम्गेनी का उपयोग  करें


78

आप इंटरफ़ेस मोड (यानी लाइट / डार्क) को टॉगल कर सकते हैं और साथ ही फ्लाई पर डायनामिक टाइप सेटिंग को समायोजित कर सकते हैं (जब सिम्युलेटर चल रहा हो) इस तरह:

Xcode के साथ डार्क मोड


बहुत बढ़िया जवाब। अन्य सभी आकार और पहुंच की चीजों को देखने के लिए भी अच्छा है, इसे विकसित करते समय बहुत तेज बनाता है
मैट फ्लेचर

3
अच्छा Nice मैं उस अनमार्क बटन पर कभी क्लिक नहीं करता।
Woz

3
यह कई मेनू से गुजरने के बजाय मुझे लगता है कि स्वीकृत उत्तर होना चाहिए, छोटा और आसान।
फरवरी को हेक्सचेईब

6
Protip: यदि आपके पास Xcode पर अग्रभूमि में सिम्युलेटर है, तो आप सिम्युलेटर को सामने रखते हुए सेटिंग्स बदलने के लिए Xcode (और उस पैनल के किसी भी स्विच पर) में उस बटन पर + कमांड कर सकते हैं! श्रेय: WWDC राज्य के संघ iirc
ग्रेस्ट्रियपे

13

स्वचालित प्रकटन परिवर्तन Change

Xcode 11.4 🌟

Apple ने एक शक्तिशाली Xcode अपडेट जारी किया जिसमें इस विषय के लिए कुछ उपयोगी चीजें हैं। अब सूरत को सीधे सिम्युलेटर में चुना जा सकता है। बस का चयन करें Features > Toggle Appearanceया select + The + ए। स्वचालित रूप से स्विच करना महत्वपूर्ण हो सकता है, जैसे कि कमांड लाइन पर स्वचालित स्क्रीनशॉट परीक्षणों के लिए। Xcode 11.4 का उपयोग करते समय स्क्रिप्ट इस तरह आसान हो जाती है:

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

कोई और अधिक सिम्युलेटर हत्या या फिर से सेटिंग की आवश्यकता नहीं है जो एक बहुत बड़ा प्रदर्शन जीत है। इसके अलावा अब और कभी नहीं - किसी भी पलस्तर उपकरण के साथ आसपास की कोई हलचल नहीं। ध्यान रखें कि आपको डिवाइस आईडी का उपयोग करना है जो आपके द्वारा उपयोग किए जाने वाले रनटाइम में उपलब्ध हैं। उनका उपयोग करके पता करें xcrun simctl list

मेरी पूरी स्क्रिप्ट भी देखें: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

प्रकाश और अंधेरे मोड के बीच एक सिम्युलेटर को स्विच करने के लिए कमांड लाइन का उपयोग करने का एक तरीका है। यदि आपके पास आपकी डिवाइस आईडी के साथ एक सरणी है तो आप निम्नलिखित कार्य कर सकते हैं:

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

यदि आप अपनी स्क्रिप्ट में डिवाइस के नाम निर्दिष्ट करना चाहते हैं - चूंकि डिवाइस आईडी अलग-अलग मशीनों पर अलग-अलग हैं - तो आप निम्नलिखित बैश कोड का उपयोग करके आसानी से उनमें से आईडी भी ढूंढ सकते हैं:

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[@]}"

1
Xcode 11.4 के रूप में यह सीधे Simulator.app और xcrun simctl uiकमांड द्वारा समर्थित है ।
रुसबिशप

1
हां ने यह देखा - जैसे ही मैंने सब कुछ परीक्षण किया मैं उत्तर को अपडेट करूंगा still स्वचालन अभी भी अच्छा है - विशेष रूप से स्वचालित परीक्षणों के लिए। नया simctl सेटिंग उपरोक्त कोड को बहुत आसान बना देगा।
ब्लैकजैक्स

12

आप सिम्युलेटर मेनू ड्रॉपडाउन (Shift-Command-A) से "टॉगल अपीयरेंस" सेटिंग का उपयोग कर सकते हैं:

यहाँ छवि विवरण दर्ज करें


9

वैकल्पिक रूप से, आप उपस्थिति को प्रोग्रामेटिक रूप से बदल सकते हैं ( डॉक्स ):

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

4

सिम्युलेटर में डार्क मोड को सक्षम करने के दो तरीके हैं। नोट: सुनिश्चित करें कि आप iOS 13 सिम्युलेटर का उपयोग कर रहे हैं। एक्सडी

समाधान 1: बिल्ड सेटिंग्स बदलें

  1. सेटिंग्स ऐप खोलें
  2. डेवलपर का चयन करें
  3. डार्क उपस्थिति सक्षम करें

स्क्रीनशॉट -1

समाधान 2: प्रोग्रामेटिक रूप से

बस इस कोड ब्लॉक को अपनी ViewController फाइल में जोड़ें।

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

स्क्रीनशॉट -2

अधिक जानकारी के लिए इस ऐप्पल डॉक्स की जाँच करें ।


0

आप इस लाइन का उपयोग करके डार्क मोड को भी स्विच कर सकते हैं, आपको बस इन लाइनों को अपनी info.plist फाइल में डालना होगा

<key>UIUserInterfaceStyle</key>
<string>Dark</string> //Light

0

टर्मिनल से:

xcrun simctl ui booted appearance light

xcrun simctl ui booted appearance dark

कोड केवल उत्तरों की अनुमति है, लेकिन इसका उत्तर भी समझाने के लिए प्रोत्साहित किया जाता है। कुछ स्पष्टीकरण जोड़ने पर विचार करें।
zonksoft
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.