ฉันจะทดสอบกล้องในเครื่องจำลอง iPhone ได้อย่างไร


123

มีวิธีใดในการทดสอบกล้อง iPhone ในเครื่องจำลองโดยไม่ต้องปรับใช้บนอุปกรณ์หรือไม่? นี่ดูน่าเบื่อชะมัด

คำตอบ:


138

มีคุณสมบัติเฉพาะของอุปกรณ์หลายอย่างที่คุณต้องทดสอบบนอุปกรณ์ แต่ก็ไม่ยากไปกว่าการใช้เครื่องจำลอง เพียงสร้างเป้าหมายการดีบักสำหรับอุปกรณ์และปล่อยให้เชื่อมต่อกับคอมพิวเตอร์

รายการการดำเนินการที่ต้องใช้อุปกรณ์จริง:

  • โทรศัพท์จริง
  • กล้อง
  • accelerometer
  • ข้อมูล GPS จริง
  • เข็มทิศ
  • การสั่นสะเทือน
  • ผลักดันการแจ้งเตือน ...

54
มันแย่มากถ้าคุณต้องการทดสอบระบบปฏิบัติการเวอร์ชันก่อนหน้าซึ่งตั้งอยู่ในเป้าหมายการปรับใช้ของคุณเดาว่าคุณจะเมาแล้ว
marchinram

2
คำแนะนำในการดาวน์เกรดอุปกรณ์ของคุณมีดังนี้: iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6
knagode

5
การแจ้งเตือนแบบพุชไม่ได้เป็นคุณสมบัติเฉพาะอุปกรณ์ด้วยหรือไม่?
mgarciaisaia

13
ฉันไม่ได้เป็นเจ้าของอุปกรณ์ iOS ถ้าอยากทดสอบกับเครื่องจริงต้องถามใคร.. ที่ห่วย ..
Luca

10
wtf ไม่ใช่ทุกคนที่มีอุปกรณ์ iOS เพียงเพราะพวกเขากำลังพัฒนาสำหรับ iOS
pete

7

ฉันต้องการทดสอบภาพซ้อนทับแบบกำหนดเองสำหรับรูปภาพ การวางซ้อนจำเป็นต้องปรับตามขนาด / ความละเอียดของภาพ

ฉันเข้าหาสิ่งนี้ในลักษณะที่คล้ายกับคำแนะนำจาก Stefan ฉันตัดสินใจที่จะเขียนโค้ดตอบกลับกล้องแบบ "หลอกๆ"

เมื่อเครื่องจำลองกำลังทำงานฉันรันโค้ดจำลองนี้แทนมาตรฐาน "captureStillImageAsynchronouslyFromConnection"

ในโค้ดจำลองนี้ฉันสร้าง "ภาพถ่ายสีดำ" ที่มีความละเอียดที่จำเป็นแล้วส่งผ่านท่อเพื่อให้ได้รับการปฏิบัติเหมือนภาพถ่ายทั่วไป โดยพื้นฐานแล้วให้ความรู้สึกของกล้องที่เร็วมาก

CGSize sz = UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) ? CGSizeMake(2448, 3264) : CGSizeMake(3264, 2448);
UIGraphicsBeginImageContextWithOptions(sz, YES, 1);
[[UIColor blackColor] setFill];
UIRectFill(CGRectMake(0, 0, sz.width, sz.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *imageData = UIImageJPEGRepresentation(image, 1.0);

ภาพด้านบนเทียบเท่ากับภาพถ่าย 8MP ที่อุปกรณ์ส่วนใหญ่ในปัจจุบันส่งออกมา แน่นอนในการทดสอบความละเอียดอื่น ๆ คุณจะเปลี่ยนขนาด


Smart @Craig - ฉันได้ทำสิ่งที่คล้ายกัน (ไม่ฉลาดเท่าที่ฉันคิด) ในโครงการล่าสุด แต่ใช้รูปภาพที่เก็บไว้ในแหล่งข้อมูล วิธีนี้เป็นไปได้ที่จะทำให้ภาพหน้าจออัตโนมัติด้วย fastlane เพื่อส่งบน iTunesConnect
Moose

1

ไม่ (เว้นแต่พวกเขาจะเพิ่มวิธีการทำใน 3.2 ยังไม่ได้ตรวจสอบ)


0

เหตุผลทั่วไปสำหรับความจำเป็นในการเข้าถึงกล้องคือการสร้างภาพหน้าจอสำหรับ AppStore

เนื่องจากกล้องไม่สามารถใช้งานได้ในเครื่องจำลองเคล็ดลับที่ดี (สิ่งเดียวที่ฉันรู้) คือการปรับขนาดมุมมองของคุณตามขนาดที่คุณต้องการเพียงแค่เวลาในการถ่ายภาพหน้าจอ คุณจะครอบตัดในภายหลัง

แน่นอนว่าคุณต้องมีอุปกรณ์ที่มีหน้าจอใหญ่กว่านี้

iPad เหมาะอย่างยิ่งในการทดสอบเลย์เอาต์และสร้างสแนปชอตสำหรับอุปกรณ์ทั้งหมด ภาพหน้าจอสำหรับ iPhone6 ​​+ จะต้องยืดออกเล็กน้อย (ปรับขนาดได้ 1,078125 - ไม่ใช่เรื่องใหญ่…)

ลิงค์ที่ดีไปยังอุปกรณ์ iOS ความละเอียดอ้างอิงอย่างรวดเร็ว: http://www.iosres.com/


แก้ไข: ในโปรเจ็กต์ล่าสุดที่ใช้ตัวควบคุมมุมมองกล้องที่กำหนดเองฉันได้แทนที่ AVPreview ด้วย UIImageView ในเป้าหมายที่ฉันใช้เพื่อเรียกใช้ในโปรแกรมจำลองเท่านั้น ด้วยวิธีนี้ฉันสามารถสร้างภาพหน้าจออัตโนมัติสำหรับการอัปโหลด iTunesConnect โปรดทราบว่าปุ่มควบคุมกล้องไม่ได้อยู่ในภาพซ้อนทับ แต่อยู่ในมุมมองเหนือภาพตัวอย่างกล้อง

คำตอบของ @Craig ด้านล่างอธิบายถึงวิธีการอื่นที่ฉันพบว่าค่อนข้างฉลาด - มันยังใช้งานได้กับการซ้อนทับของกล้องซึ่งขัดแย้งกับของฉัน


3
นั่นคือประเด็นของคำถาม ... ไม่มีกล้องในเครื่องจำลอง
Moose

1
ทำไมคุณต้องมีกล้องเพื่อถ่ายภาพหน้าจอ?
Raphael

3
ทำไมคุณต้องถ่ายภาพหน้าจอของกล้องที่คุณหมายถึง? ในการอัปโหลดภาพหน้าจอของแอปพลิเคชันกล้องของคุณที่ใช้งานจริงบน Store ในขนาดหน้าจอที่ต่างกัน
Moose

0

เพิ่งพบ repo บนคอมไพล์ที่ช่วยจำลองการทำงานของกล้องบน iOS Simulator ด้วยรูปภาพวิดีโอหรือกล้อง MacBook ของคุณ

repo



-1

ฉันเขียนมุมมองทดแทนเพื่อใช้ในโหมดดีบัก ใช้ API เดียวกันและทำการโทรกลับของผู้รับมอบสิทธิ์เดียวกัน ในกรณีของฉันฉันส่งคืนภาพสุ่มจากชุดทดสอบของฉัน เป็นเรื่องเล็กน้อยที่จะเขียน


3
และคุณสามารถทำให้ภาพกลับมาจากกล้อง iSight ได้ :)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.