Adakah cara untuk menguji kamera iPhone di simulator tanpa harus menggunakan perangkat? Sepertinya ini sangat membosankan.
Adakah cara untuk menguji kamera iPhone di simulator tanpa harus menggunakan perangkat? Sepertinya ini sangat membosankan.
Jawaban:
Ada sejumlah fitur khusus perangkat yang harus Anda uji pada perangkat, tetapi itu tidak lebih sulit daripada menggunakan simulator. Buat saja target debug untuk perangkat dan biarkan terpasang ke komputer.
Daftar tindakan yang membutuhkan perangkat sebenarnya:
Saya perlu menguji beberapa overlay kustom untuk foto. Overlay perlu disesuaikan berdasarkan ukuran / resolusi gambar.
Saya melakukan pendekatan ini dengan cara yang mirip dengan saran dari Stefan, saya memutuskan untuk membuat kode respons kamera "dummy".
Ketika simulator sedang berjalan saya mengeksekusi kode dummy ini daripada standar "captureStillImageAsynchronouslyFromConnection".
Dalam kode dummy ini, saya membuat "foto hitam" dengan resolusi yang diperlukan dan kemudian mengirimkannya melalui pipeline untuk diperlakukan seperti foto biasa. Intinya memberikan nuansa kamera yang sangat cepat.
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);
Gambar di atas setara dengan foto 8MP yang dikirim sebagian besar perangkat saat ini. Jelas untuk menguji resolusi lain Anda akan mengubah ukurannya.
Alasan umum perlunya mengakses kamera adalah membuat tangkapan layar untuk AppStore.
Karena kamera tidak tersedia di simulator, trik yang bagus (satu-satunya yang saya tahu) adalah mengubah ukuran tampilan Anda sesuai ukuran yang Anda butuhkan, hanya waktu untuk mengambil tangkapan layar. Anda akan memangkasnya nanti.
Tentu, Anda perlu memiliki perangkat dengan layar yang lebih besar.
IPad sempurna untuk menguji tata letak dan membuat foto untuk semua perangkat. Tangkapan layar untuk iPhone6 + harus sedikit direntangkan (diskalakan oleh 1.078125 - Bukan masalah besar…)
Tautan bagus ke referensi cepat resolusi Perangkat iOS: http://www.iosres.com/
Sunting: Dalam proyek baru-baru ini, di mana pengontrol tampilan kamera khusus digunakan, saya telah mengganti AVPreview dengan UIImageView dalam target yang hanya saya gunakan untuk dijalankan di simulator. Dengan cara ini saya dapat mengotomatiskan tangkapan layar untuk unggahan iTunesConnect. Perhatikan bahwa tombol kontrol kamera tidak dalam overlay, tetapi dalam tampilan pratinjau kamera.
Jawaban @Craig di bawah ini menjelaskan metode lain yang menurut saya cukup pintar - Ini juga berfungsi dengan overlay kamera, berbeda dengan metode saya.
Saya tidak pernah mencobanya, tetapi Anda dapat mencobanya! iCimulator
Saya menulis tampilan pengganti untuk digunakan dalam mode debug. Ini mengimplementasikan API yang sama dan membuat callback delegasi yang sama. Dalam kasus saya, saya membuatnya mengembalikan gambar acak dari set pengujian saya. Cukup sepele untuk ditulis.