シミュレーターiOS 13でダークモードを使用する方法


165

iOSアプリを開発しているときに、ダークモードオプションを使用してシミュレーターでテストする必要があるので、アプリのUIをより明確にすることができます。しかし、設定に移動すると、実際のデバイスとして表示されるダークモードのオプションが表示されません。

回答:


302

[設定]、下にスクロール開発して、暗い外観 ...

ここに画像の説明を入力してください


更新

上記に加えて、以下の多くのすばらしい答えに示されているように、シミュレーターで暗い外観を有効にする他の多くの方法があります。

•環境オーバーライドをXcodeから変更(@AshCameron)

Aシミュレータメニューからの外観の切り替え(@ Shredder2794)

xcrun simctl ui booted appearance …(@ blackjacx、@ tadija)を使用してコマンドラインから更新する

•プログラムによる使用overrideUserInterfaceStyle = .dark(@thisIsTheFoxe)

info.plist(@DhavalGevariya)で指定UIUserInterfaceStyleします

•Curtis HerbertのSimGenieを使用してください… https: //simgenie.app 


78

次のように、インターフェイスモード(つまり、ライト/ダーク)を切り替えたり、動的なタイプ設定を(シミュレーターの実行中に)オンザフライで調整したりできます。

Xcodeによるダークモード


すばらしい答えです。また、他のすべてのサイズとアクセシビリティを確認できるので、開発が非常に速くなります
Matt Fletcher

3
ニース👍マークされていないボタンをクリックしたことはありません。
1

3
これは、複数のメニューを使用する代わりに、短くて便利であると私が考える受け入れられた答えであるべきです。
Heckscheibe

6
Protip:Xcodeを介してフォアグラウンドにシミュレーターがある場合、Xcodeのそのボタン(およびそのパネルのスイッチ)をコマンド+クリックすると、シミュレーターを前面に置いたまま設定を変更できます!クレジット:WWDCの労働組合状態iirc
グレイストライプ

13

外観の自動変更🦉

Xcode 11.4🌟

Appleは、このトピックに役立つものを含む強力なXcodeアップデートをリリースしました。外観をシミュレーターで直接選択できるようになりました。Features > Toggle Appearanceまたは⇧+⌘+ Aを選択するだけです。たとえば、コマンドラインでの自動スクリーンショットテストの場合、自動外観の切り替えが重要になる場合があります。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

シミュレーターを殺したり、再設定したりする必要はありません。また、plistツールをいじる必要もありません。使用するランタイムで使用可能なデバイスIDを使用する必要があることに注意してください。を使用してそれらを見つけますxcrun simctl list

私の完全なスクリプトも参照してください: https //github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh

Xcode 11.3

コマンドラインを使用して、シミュレータをライトモードとダークモードの間で切り替える方法があります。デバイスIDの配列がある場合は、次の操作を実行できます。

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

デバイスIDはマシンごとに異なるため、スクリプトでデバイス名を指定する場合は、次のbashコードを使用してIDを簡単に見つけることもできます。

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コマンドによって直接サポートされます。
russbishop

1
うん、これを見た-私がすべてをテストしたらすぐに答えを更新するautomation自動化は、特に自動化されたテストに対しては、まだ素晴らしい。新しいsimctl設定は、上記のコードをはるかに簡単にします。
blackjacx

12

シミュレータメニューのドロップダウンから[外観の切り替え]設定を使用できます(Shift-Command-A)。

ここに画像の説明を入力してください


9

または、プログラムで外観を切り替えることもできます(docs)。

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

4

Simulatorでダークモードを有効にする方法は2つあります。注:iOS 13シミュレーターを使用していることを確認してください。XD

解決策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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.