Simülatör iOS 13'te karanlık mod nasıl kullanılır?


166

IOS uygulamasını geliştirirken, karanlık mod seçeneği ile simülatörde test etmem gerekiyor, böylece uygulama kullanıcı arayüzü hakkında daha fazla netlik elde edebiliyorum. Ancak Ayar'a gittiğimde, karanlık cihaz için gerçek cihaz gösterme seçeneği elde edemiyorum.

Yanıtlar:


303

In Ayarlar , aşağı kaydırarak Geliştirici sonra ve Karanlık Görünüm ...

resim açıklamasını buraya girin


Güncelleme

Yukarıdakilere ek olarak, aşağıdaki birçok harika cevapta gösterildiği gibi, simülatörde karanlık görünümü etkinleştirmenin başka birçok yolu var.

• Xcode'dan Ortam Geçersiz Kılmalarını Değiştirme (@AshCameron)

ASimülatör menüsünden Görünümü Değiştir (@ Shredder2794)

xcrun simctl ui booted appearance …(@blackjacx, @tadija) kullanarak komut satırından güncelleme

• Programlı olarak overrideUserInterfaceStyle = .dark(@thisIsTheFoxe)

Belirtin • UIUserInterfaceStylesizin de Info.plist (@DhavalGevariya)

• Curtis Herbert'den SimGenie kullanın…  https://simgenie.app


78

Arayüz modunu (yani Açık / Koyu) değiştirebilir ve dinamik tip ayarını anında (simülatör çalışırken) ayarlayabilirsiniz:

Xcode ile karanlık mod


Mükemmel cevap. Ayrıca diğer tüm boyut ve erişilebilirlik şeylerini görmek güzel, geliştirirken çok daha hızlı yapar
Matt Fletcher

3
Güzel un Bu işaretlenmemiş düğmeyi asla tıklamazdım.
woz

3
bence kabul edilen cevap, birden fazla menüye girmek yerine kısa ve kullanışlıdır.
Heckscheibe

6
Protip: Ön planda, Xcode üzerinde Simulator varsa, simülatörü önde tutarken ayarları değiştirmek için Xcode (ve bu paneldeki herhangi bir anahtarda) üzerindeki düğmeyi Command + tıklatabilirsiniz! kredi: WWDC sendika devlet iirc
Graystripe

13

Otomatik Görünüm Değişikliği 🦉

Xcode 11.4 🌟

Apple, bu konu için bazı yararlı şeyler içeren güçlü bir Xcode güncellemesi yayınladı. Görünüm artık doğrudan simülatörden seçilebilir. Sadece Features > Toggle Appearanceveya ⇧ + ⌘ + A'yı seçin. Otomatik görünüm değiştirme, örneğin komut satırındaki otomatik ekran görüntüsü testleri için önemli olabilir. Xcode 11.4 kullanırken komut dosyası bu şekilde kolaylaşır:

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

Simülatör öldürmeye veya yeniden ayarlamaya gerek yok, bu da büyük bir performans kazancıdır. Ayrıca artık herhangi bir plist araçları ile uğraşmak yok - hiç. kullandığınız çalışma zamanında kullanılabilen cihaz kimliklerini kullanmanız gerektiğini unutmayın. Bunları kullanarak öğrenin xcrun simctl list.

Ayrıca tüm betiğime de bakın: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

Bir simülatörü açık ve koyu mod arasında değiştirmek için komut satırını kullanmanın bir yolu vardır. Cihaz kimliklerinizle bir dizi varsa aşağıdakileri yapabilirsiniz:

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

Komut dosyanızda aygıt adları belirtmek istiyorsanız - aygıt kimlikleri farklı makinelerde farklı olduğundan - aşağıdaki bash kodunu kullanarak kimlikleri de kolayca bulabilirsiniz:

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'ten itibaren bu doğrudan Simulator.app ve xcrun simctl uikomut tarafından desteklenmektedir .
russbishop

1
Evet bunu gördüm - Her şeyi test ettiğimde cevabı güncelleyeceğim 👍 Otomasyon hala güzel - özellikle otomatik testler için. Yeni simctl ayarı yukarıdaki kodu daha kolay hale getirecektir.
blackjacx

12

"Görünümü Değiştir" ayarını Simülatör menüsü açılır menüsünden (Shift-Komut-A) kullanabilirsiniz:

resim açıklamasını buraya girin


9

Alternatif olarak, görünümü programlı olarak da değiştirebilirsiniz ( dokümanlar ):

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

4

Simülatörde karanlık modu etkinleştirmenin iki yolu vardır. Not: iOS 13 simülatörünü kullandığınızdan emin olun. XD

1.Çözüm: Derleme ayarlarını değiştirin

  1. Ayarlar uygulamasını açın
  2. Geliştirici Seçin
  3. Karanlık görünümü etkinleştir

Ekran-1

Çözüm 2: Programlı olarak

Bu kod bloğunu ViewController dosyanıza eklemeniz yeterlidir.

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

Ekran-2

Daha fazla bilgi için bu elma belgelerine bakın.


0

Bu modu kullanarak Karanlık modu da değiştirebilirsiniz, bu satırları info.plist dosyanıza koymanız yeterlidir

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

0

terminalden:

xcrun simctl ui booted appearance light

xcrun simctl ui booted appearance dark

Yalnızca kod yanıtlarına izin verilir, ancak yanıtı açıklamaya da teşvik edilir. Biraz açıklama eklemeyi düşünün.
zonksoft
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.