Làm cách nào để kiểm tra camera trong trình mô phỏng iPhone?


122

Có cách nào để kiểm tra camera iPhone trong giả lập mà không cần phải triển khai trên thiết bị không? Điều này có vẻ vô cùng tẻ nhạt.

Câu trả lời:


137

Có một số tính năng cụ thể của thiết bị mà bạn phải kiểm tra trên thiết bị, nhưng không khó hơn việc sử dụng trình mô phỏng. Chỉ cần xây dựng một mục tiêu gỡ lỗi cho thiết bị và để nó gắn vào máy tính.

Danh sách các hành động yêu cầu thiết bị thực tế:

  • điện thoại thực tế
  • máy ảnh
  • gia tốc kế
  • dữ liệu GPS thực
  • la bàn
  • rung động
  • thông báo đẩy ...

54
Điều đó thật tệ, điều gì xảy ra nếu bạn cần thử nghiệm trên một phiên bản hệ điều hành cũ hơn được đặt trong mục tiêu triển khai của bạn, hãy đoán rằng lúc đó bạn sẽ gặp khó khăn.
marchinram

2
Dưới đây là hướng dẫn cách hạ cấp thiết bị của bạn: iclarified.com/31004/how-to-downgrade-from-ios-7-beta-to-ios-6
knagode.

5
Thông báo đẩy không phải là một tính năng chỉ dành cho thiết bị?
mgarciaisaia

12
Tôi không sở hữu thiết bị ios. Nếu tôi muốn kiểm tra trên một thiết bị thực, tôi cần phải hỏi ai đó .. Điều đó thật tệ ..
Luca

10
wtf, không phải ai cũng có một thiết bị iOS chỉ vì họ đang phát triển dành cho iOS
pete

7

Tôi cần kiểm tra một số lớp phủ tùy chỉnh cho ảnh. Các lớp phủ cần được điều chỉnh dựa trên kích thước / độ phân giải của hình ảnh.

Tôi tiếp cận vấn đề này theo cách tương tự như gợi ý từ Stefan, tôi quyết định viết mã phản hồi camera "giả".

Khi trình mô phỏng đang chạy, tôi thực thi mã giả này thay vì "captureStillImageAsynchronouslyFromConnection" tiêu chuẩn.

Trong mã giả này, tôi xây dựng một "ảnh đen" có độ phân giải cần thiết và sau đó gửi nó qua pipelined để được xử lý như một bức ảnh bình thường. Về cơ bản cung cấp cảm giác của một máy ảnh rất nhanh.

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);

Hình ảnh trên tương đương với một bức ảnh 8MP mà hầu hết các thiết bị ngày nay gửi đi. Rõ ràng để kiểm tra các độ phân giải khác, bạn sẽ thay đổi kích thước.


@Craig thông minh - Tôi đã làm điều gì đó tương tự (tôi đoán là không thông minh lắm) trong một dự án gần đây, nhưng sử dụng hình ảnh được lưu trữ trong tài nguyên. Bằng cách này, bạn có thể tự động hóa ảnh chụp màn hình bằng fastlane để gửi trên iTunesConnect
Moose

1

Không (trừ khi họ đã thêm một cách để làm điều đó trong 3.2, vẫn chưa được kiểm tra).


0

Một lý do phổ biến cho nhu cầu truy cập máy ảnh là tạo ảnh chụp màn hình cho AppStore.

Vì máy ảnh không có sẵn trong trình mô phỏng, một mẹo hay (mẹo duy nhất mà tôi biết) là thay đổi kích thước chế độ xem của bạn ở kích thước bạn cần, chỉ là thời gian để chụp ảnh màn hình. Bạn sẽ cắt chúng sau.

Chắc chắn, bạn cần có thiết bị có màn hình lớn hơn.

IPad hoàn hảo để kiểm tra bố cục và tạo ảnh chụp nhanh cho tất cả các thiết bị. Ảnh chụp màn hình cho iPhone6 ​​+ sẽ phải kéo dài một chút (tỷ lệ 1,078125 - Không phải là vấn đề lớn…)

Liên kết tốt đến độ phân giải thiết bị iOS nhanh chóng tham khảo: http://www.iosres.com/


Chỉnh sửa: Trong một dự án gần đây, nơi bộ điều khiển chế độ xem camera tùy chỉnh được sử dụng, tôi đã thay thế AVPreview bằng một UIImageView trong một mục tiêu mà tôi chỉ sử dụng để chạy trong trình mô phỏng. Bằng cách này, tôi có thể tự động hóa ảnh chụp màn hình để tải lên iTunesConnect. Lưu ý rằng các nút điều khiển máy ảnh không nằm trong lớp phủ mà nằm trong chế độ xem trên bản xem trước máy ảnh.

Câu trả lời @Craig bên dưới mô tả một phương pháp khác mà tôi thấy khá thông minh - Nó cũng hoạt động với lớp phủ máy ảnh, ngược lại với tôi.


3
Đó là điểm của câu hỏi ... Không có camera trong trình mô phỏng.
Moose

1
Tại sao bạn cần một máy ảnh để chụp ảnh màn hình?
Raphael

3
Ý bạn là tại sao bạn cần chụp ảnh màn hình của máy ảnh? Để tải lên ảnh chụp màn hình của ứng dụng máy ảnh của bạn đang hoạt động trên Cửa hàng, ở các kích thước màn hình khác nhau.
Moose

0

Vừa tìm thấy một repo trên git giúp Mô phỏng các chức năng của máy ảnh trên iOS Simulator với hình ảnh, video hoặc Máy ảnh MacBook của bạn.

Repo



-1

Tôi đã viết một dạng xem thay thế để sử dụng trong chế độ gỡ lỗi. Nó triển khai cùng một API và thực hiện các lệnh gọi lại ủy quyền giống nhau. Trong trường hợp của tôi, tôi đã thực hiện nó trả về một hình ảnh ngẫu nhiên từ bộ thử nghiệm của tôi. Khá tầm thường để viết.


3
Và, bạn có thể thực hiện nó để trả lại hình ảnh từ Máy ảnh iSight :)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.