ในขณะที่ฉันกำลังพัฒนาแอป iOS ฉันต้องทดสอบในโปรแกรมจำลองด้วยตัวเลือกโหมดมืดเพื่อที่ฉันจะได้รับความชัดเจนมากขึ้นเกี่ยวกับ UI ของแอป แต่เมื่อฉันไปที่การตั้งค่าฉันไม่ได้รับตัวเลือกสำหรับโหมดมืดตามที่อุปกรณ์จริงแสดง
ในขณะที่ฉันกำลังพัฒนาแอป iOS ฉันต้องทดสอบในโปรแกรมจำลองด้วยตัวเลือกโหมดมืดเพื่อที่ฉันจะได้รับความชัดเจนมากขึ้นเกี่ยวกับ UI ของแอป แต่เมื่อฉันไปที่การตั้งค่าฉันไม่ได้รับตัวเลือกสำหรับโหมดมืดตามที่อุปกรณ์จริงแสดง
คำตอบ:
ในการตั้งค่าเลื่อนลงไปที่นักพัฒนาและจากนั้นลักษณะมืด ...
อัปเดต
นอกเหนือจากข้างต้นแล้วตอนนี้ยังมีวิธีอื่น ๆอีกมากมายในการเปิดใช้งานลักษณะมืดในเครื่องจำลองดังที่แสดงไว้ในคำตอบที่ยอดเยี่ยมมากมายด้านล่าง
•เปลี่ยนสภาพแวดล้อมแทนที่จาก Xcode ( @AshCameron )
•สลับลักษณะที่ปรากฏ⇧⌘Aจากเมนู Simulator ( @ Shredder2794 )
•อัปเดตจากบรรทัดคำสั่งโดยใช้xcrun simctl ui booted appearance …
( @blackjacx, @tadija )
•โดยใช้โปรแกรมoverrideUserInterfaceStyle = .dark
( @thisIsTheFoxe )
•ระบุUIUserInterfaceStyle
ในinfo.plistของคุณ(@ DhavalGevariya )
•ใช้ SimGenie จาก Curtis Herbert ... https://simgenie.app
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
ไม่จำเป็นต้องฆ่าตัวจำลองหรือตั้งค่าใหม่อีกต่อไปซึ่งเป็นผลงานที่ยอดเยี่ยม นอกจากนี้ยังไม่มีการเล่นซอด้วยเครื่องมือคีมใด ๆ อีกต่อไป โปรดทราบว่าคุณต้องใช้รหัสอุปกรณ์ที่มีอยู่ในรันไทม์ที่คุณใช้ xcrun simctl list
พบพวกเขาออกมาใช้
ดูสคริปต์ทั้งหมดของฉัน: https://github.com/Blackjacx/Scripts/blob/master/set-simulator-style.sh
มีวิธีการใช้บรรทัดคำสั่งเพื่อสลับตัวจำลองระหว่างโหมดสว่างและโหมดมืด หากคุณมีอาร์เรย์ที่มีรหัสอุปกรณ์ของคุณคุณสามารถทำสิ่งต่อไปนี้:
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[@]}"
xcrun simctl ui
คำสั่ง
หรือคุณสามารถเปลี่ยนลักษณะที่ปรากฏโดยใช้โปรแกรม ( เอกสาร ):
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// change the appearance only while testing
overrideUserInterfaceStyle = .dark
#endif
}
มีสองวิธีในการเปิดโหมดมืดในโปรแกรมจำลอง หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณใช้โปรแกรมจำลอง iOS 13 XD
โซลูชันที่ 1: เปลี่ยนการตั้งค่าการสร้าง
โซลูชันที่ 2: โดยทาง โปรแกรม
เพียงเพิ่มบล็อกโค้ดนี้ในไฟล์ ViewController ของคุณ
override func viewDidLoad() {
super.viewDidLoad()
#if DEBUG
// This changes appearance only for debug mode
overrideUserInterfaceStyle = .dark
#endif
}
ตรวจสอบเอกสาร Appleนี้สำหรับรายละเอียดเพิ่มเติม
จากอาคารผู้โดยสาร:
xcrun simctl ui booted appearance light
xcrun simctl ui booted appearance dark
คุณยังสามารถสลับโหมดมืดโดยใช้บรรทัดนี้คุณเพียงแค่ใส่บรรทัดเหล่านี้ในไฟล์ info.plist ของคุณ
<key>UIUserInterfaceStyle</key>
<string>Dark</string> //Light