สำหรับ Xcode 8.2 หรือใหม่กว่า
คุณสามารถถ่ายวิดีโอและภาพหน้าจอของ Simulator โดยใช้xcrun simctl
ยูทิลิตี้บรรทัดคำสั่งเพื่อควบคุม Simulator
- เรียกใช้แอปของคุณบนตัวจำลอง
- เปิดเทอร์มินัล
เรียกใช้คำสั่ง
เพื่อถ่ายภาพหน้าจอ
xcrun simctl io booted screenshot <filename>.<file extension>
ตัวอย่างเช่น:
xcrun simctl io booted screenshot myScreenshot.png
ในการถ่ายวิดีโอ
xcrun simctl io booted recordVideo <filename>.<file extension>
ตัวอย่างเช่น:
xcrun simctl io booted recordVideo appVideo.mov
กดctrl + c
เพื่อหยุดการบันทึกวิดีโอ
ตำแหน่งเริ่มต้นสำหรับไฟล์ที่สร้างขึ้นเป็นไดเรกทอรีปัจจุบัน
Xcode 11.2 และใหม่กว่ามีตัวเลือกเพิ่มเติม
จากบันทึกย่อประจำรุ่น Xcode 11.2 Beta
ขณะนี้การบันทึกวิดีโอ simctl สร้างไฟล์วิดีโอขนาดเล็กรองรับการบีบอัด HEIC และใช้ประโยชน์จากการสนับสนุนการเข้ารหัสฮาร์ดแวร์หากมี นอกจากนี้ความสามารถในการบันทึกวิดีโอบนอุปกรณ์ iOS 13, tvOS 13 และ watchOS 6 ได้รับการกู้คืนแล้ว
คุณสามารถใช้ธงเพิ่มเติม:
xcrun simctl io --help
Set up a device IO operation.
Usage: simctl io <device> <operation> <arguments>
...
recordVideo [--codec=<codec>] [--display=<display>] [--mask=<policy>] [--force] <file or url>
Records the display to a QuickTime movie at the specified file or url.
--codec Specifies the codec type: "h264" or "hevc". Default is "hevc".
--display iOS: supports "internal" or "external". Default is "internal".
tvOS: supports only "external"
watchOS: supports only "internal"
--mask For non-rectangular displays, handle the mask by policy:
ignored: The mask is ignored and the unmasked framebuffer is saved.
alpha: Not supported, but retained for compatibility; the mask is rendered black.
black: The mask is rendered black.
--force Force the output file to be written to, even if the file already exists.
screenshot [--type=<type>] [--display=<display>] [--mask=<policy>] <file or url>
Saves a screenshot as a PNG to the specified file or url(use "-" for stdout).
--type Can be "png", "tiff", "bmp", "gif", "jpeg". Default is png.
--display iOS: supports "internal" or "external". Default is "internal".
tvOS: supports only "external"
watchOS: supports only "internal"
You may also specify a port by UUID
--mask For non-rectangular displays, handle the mask by policy:
ignored: The mask is ignored and the unmasked framebuffer is saved.
alpha: The mask is used as premultiplied alpha.
black: The mask is rendered black.
ตอนนี้คุณสามารถจับภาพหน้าจอjpeg
โดยใช้มาสก์ (สำหรับหน้าจอที่ไม่ใช่รูปสี่เหลี่ยมผืนผ้า) และแฟล็กอื่น ๆ :
xcrun simctl io booted screenshot --type=jpeg --mask=black screenshot.jpeg