Czy istnieje sposób na przetestowanie aparatu iPhone'a w symulatorze bez konieczności wdrażania go na urządzeniu? To wydaje się strasznie nudne.
Czy istnieje sposób na przetestowanie aparatu iPhone'a w symulatorze bez konieczności wdrażania go na urządzeniu? To wydaje się strasznie nudne.
Odpowiedzi:
Istnieje wiele funkcji specyficznych dla urządzenia, które musisz przetestować na urządzeniu, ale nie jest to trudniejsze niż użycie symulatora. Wystarczy utworzyć cel debugowania dla urządzenia i pozostawić go podłączonego do komputera.
Lista czynności, które wymagają rzeczywistego urządzenia:
Musiałem przetestować niestandardowe nakładki do zdjęć. Nakładki musiały być dostosowane na podstawie rozmiaru / rozdzielczości obrazu.
Podszedłem do tego w sposób podobny do sugestii Stefana, postanowiłem zakodować „atrapę” odpowiedzi kamery.
Gdy symulator jest uruchomiony, wykonuję ten fałszywy kod zamiast standardowego „captureStillImageAsynchronouslyFromConnection”.
W tym fikcyjnym kodzie buduję „czarne zdjęcie” o wymaganej rozdzielczości, a następnie przesyłam je przez potok, aby traktować je jak zwykłe zdjęcie. Zasadniczo zapewnia wrażenie bardzo szybkiego aparatu.
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);
Powyższy obraz jest odpowiednikiem zdjęć 8 MP, które wysyła większość współczesnych urządzeń. Oczywiście, aby przetestować inne rozdzielczości, zmieniłbyś rozmiar.
Częstym powodem konieczności uzyskania dostępu do kamery jest robienie zrzutów ekranu do AppStore.
Ponieważ kamera nie jest dostępna w symulatorze, dobrą sztuczką (jedyną jaką znam) jest zmiana rozmiaru widoku do potrzebnego rozmiaru, tylko czas na zrobienie zrzutów ekranu. Przytniesz je później.
Jasne, musisz mieć urządzenie z dostępnym większym ekranem.
IPad jest idealny do testowania układów i robienia migawek dla wszystkich urządzeń. Zrzuty ekranu dla iPhone6 + będą musiały zostać trochę rozciągnięte (przeskalowane do 1078125 - nic wielkiego…)
Dobre łącze do szybkiej wersji rozdzielczości urządzeń iOS: http://www.iosres.com/
Edycja: W ostatnim projekcie, w którym używany jest niestandardowy kontroler widoku z kamery, zastąpiłem AVPreview przez UIImageView w celu, którego używam tylko do uruchamiania w symulatorze. W ten sposób mogę zautomatyzować zrzuty ekranu do przesyłania przez iTunesConnect. Zwróć uwagę, że przyciski sterowania kamerą nie znajdują się w nakładce, ale w widoku nad podglądem kamery.
Odpowiedź @Craig poniżej opisuje inną metodę, którą uznałem za całkiem sprytną - działa ona również z nakładką aparatu, w przeciwieństwie do mojej.
Właśnie znalazłem repozytorium na git, które pomaga symulować funkcje aparatu w symulatorze iOS z obrazami, filmami lub kamerą MacBooka.
Nigdy tego nie próbowałem, ale możesz spróbować! iCimulator
Napisałem widok zastępczy do użycia w trybie debugowania. Implementuje ten sam interfejs API i wykonuje te same wywołania zwrotne delegata. W moim przypadku sprawiłem, że zwrócił losowy obraz z mojego zestawu testowego. Pisanie dość trywialne.