İPhone simülatöründe bir kamerayı nasıl test ederim?


123

İPhone kamerasını simülatörde bir cihaza yerleştirmek zorunda kalmadan test etmenin bir yolu var mı? Bu çok sıkıcı görünüyor.

Yanıtlar:


138

Cihazda test etmeniz gereken bir dizi cihaza özgü özellik vardır, ancak bu simülatörü kullanmaktan daha zor değildir. Cihaz için bir hata ayıklama hedefi oluşturun ve onu bilgisayara bağlı bırakın.

Gerçek bir cihaz gerektiren eylemlerin listesi:

  • gerçek telefon
  • kamera
  • ivmeölçer
  • gerçek GPS verileri
  • pusula
  • titreşim
  • Push bildirimleri...

54
Bu biraz berbat, ya dağıtım hedefinizdeki işletim sisteminin daha önceki bir sürümünü test etmeniz gerekirse, sanırım o zaman mahvolursunuz.
marchinram

2
Cihazınızı nasıl eski sürüme geçireceğinizle
knagode

5
Anlık bildirimler de yalnızca cihaza özgü bir özellik değil miydi?
mgarciaisaia

13
İos cihazım yok. Gerçek bir cihazda test etmek istiyorsam birine sormam gerekiyor .. Bu berbat ..
Luca

10
wtf, herkesin sırf iOS için geliştirdiği için bir iOS cihazı yok
pete

7

Fotoğraflar için bazı özel kaplamaları test etmem gerekiyordu. Bindirmelerin görüntünün boyutuna / çözünürlüğüne göre ayarlanması gerekiyordu.

Buna Stefan'ın önerisine benzer bir şekilde yaklaştım, "kukla" bir kamera yanıtı kodlamaya karar verdim.

Simülatör çalışırken, standart "captureStillImageAsynchronouslyFromConnection" yerine bu kukla kodu çalıştırıyorum.

Bu sahte kodda, gerekli çözünürlüğe sahip "siyah bir fotoğraf" oluşturuyorum ve ardından normal bir fotoğraf gibi işlem görmesi için bunu boru hattından gönderiyorum. Esasen çok hızlı bir kamera hissi veriyor.

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

Yukarıdaki görüntü, günümüz cihazlarının çoğunun gönderdiği 8 MP'lik bir fotoğrafa eşdeğerdir. Açıkçası, diğer çözünürlükleri test etmek için boyutu değiştirirsiniz.


Smart @Craig - Yakın tarihli bir projede benzer bir şey yaptım (sanırım o kadar akıllı değil), ancak kaynaklarda depolanan bir resim kullandım. Bu şekilde, ekran görüntülerini fastlane ile otomatikleştirmek ve iTunesConnect'e göndermek mümkündür
Moose

1

Hayır (3.2'de bunu yapmanın bir yolunu eklememişlerse, henüz kontrol etmediler)


0

Kameraya erişim ihtiyacının yaygın bir nedeni, AppStore için ekran görüntüleri almaktır.

Kamera simülatörde bulunmadığından, iyi bir numara (bildiğim tek şey), görünümünüzü ihtiyacınız olan boyutta yeniden boyutlandırmak, sadece ekran görüntülerini almak için tam zamanında. Onları daha sonra kırpacaksınız.

Elbette, daha büyük ekrana sahip bir cihaza sahip olmanız gerekir.

İPad, düzenleri test etmek ve tüm cihazlar için anlık görüntüler oluşturmak için mükemmeldir. İPhone6 ​​+ için ekran görüntülerinin biraz uzatılması gerekecek (1.078125 ile ölçeklendirilmiş - Bu önemli değil ...)

Bir iOS Cihaz çözünürlüklerine iyi bağlantı hızlı başvuru: http://www.iosres.com/


Düzenleme: Özel bir kamera görüntüleme denetleyicisinin kullanıldığı yeni bir projede, AVPreview'i yalnızca simülatörde çalıştırmak için kullandığım bir hedefte bir UIImageView ile değiştirdim. Bu şekilde, iTunesConnect yüklemesi için ekran görüntülerini otomatik hale getirebilirim. Kamera kontrol düğmelerinin bir kaplamada değil, kamera önizlemesinin üzerinde bir görünümde olduğunu unutmayın.

Aşağıdaki @Craig yanıtı, oldukça akıllı bulduğum başka bir yöntemi açıklıyor - Benimkinin aksine, kamera kaplamasıyla da çalışıyor.


3
Sorunun amacı da bu ... Simülatörde kamera yok.
Moose

1
Ekran görüntüsü almak için neden bir kameraya ihtiyacınız var?
Raphael

3
Neden kastettiğiniz kameranın ekran görüntülerini almanız gerekiyor? Mağaza'da farklı ekran boyutlarında kamera uygulamanızın ekran görüntülerini yüklemek için.
Moose

0

Git'te, iOS Simulator'da kamera işlevlerini görüntüler, videolar veya MacBook Kameranızla simüle etmenize yardımcı olan bir depo buldum.

repo



-1

Hata ayıklama modunda kullanmak için bir değiştirme görünümü yazdım. Aynı API'yi uygular ve aynı temsilci geri aramalarını yapar. Benim durumumda, test setimden rastgele bir görüntü döndürmesini sağladım. Yazmak oldukça önemsiz.


3
Ve iSight Kameradan bir görüntü döndürmesini sağlayabilirsiniz :)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.