Ostrzeżenia Xcode 7 Beta: Orientacje interfejsu i uruchom scenorys

131

Otworzyłem projekt w Xcode 7 beta i otrzymuję następujące ostrzeżenia, których nie dostaję w Xcode 6:

 All interface orientations must be supported unless the app requires
 full screen.


 A launch storyboard or xib must be provided unless the app requires
 full screen.

Aplikacja używa orientacji pionowej tylko dla urządzeń i ustawiłem ją w ten sposób. Mam też storyboardy dla interfejsów iPhone'a i iPada. Nie mogę określić, dlaczego otrzymuję te ostrzeżenia. Czy to błąd beta Xcode 7?

bachma0507
źródło
brzmi jak błąd. Sprawdź fora programistów Apple. Radość z bycia testerem wersji beta: p
Sam B

Odpowiedzi:

274

To ostrzeżenie jest nowe dla systemu iOS 9, ponieważ obsługuje aplikacje o zmiennym rozmiarze z obsługą wielu okien. Wcześniej aplikacje były automatycznie skalowane do nowych urządzeń, które miały różne rozdzielczości wyświetlania sprzętu niż te w obrazie uruchamiania (czyli w zasadzie sposób, w jaki iOS wykrywa obsługiwane rozdzielczości interfejsu). Teraz aplikacje obsługujące wiele okien muszą definiować obsługiwane rozdzielczości, dołączając obraz uruchamiania lub scenorys dla wszystkich typów ekranów urządzeń.

Jeśli nie piszesz ponownie aplikacji, aby obsługiwała wiele okien, będziesz wymagać „pełnego ekranu”. To wskazówka dla iOS, że nie obsługujesz wielu okien i zasadniczo sprawia, że ​​iOS 9 działa jak poprzednie wersje pod tym względem.

Tak więc, jeśli przesyłasz aktualizację aplikacji na iOS 9 i nie obsługujesz wielu okien, wszystko, co musisz zrobić, to przejść do ustawień celu projektu, wybrać Ogólne i pod `` Informacje o wdrożeniu '' poszukać pola wyboru o nazwie „Wymaga pełnego ekranu”. Zaznacz to, a ostrzeżenia znikną.

Z pewnością nie jest to błąd. Jeśli pojawi się to ostrzeżenie, Twoja aplikacja może mieć problemy podczas przesyłania. Nie jestem tego pewien, ponieważ nie przesłałem jeszcze aplikacji z iOS 9 GM Seed, ale z pewnością zaznaczę to pole :-)

Simon Tillson
źródło
4
Ta odpowiedź jest znacznie lepsza niż obecnie wiodąca. Dziękujemy za wyjaśnienie „dlaczego” tej zmiany i „czym” jest ustawienie pełnego ekranu. (Wyobraziłem sobie, że to to samo ustawienie, w którym gry pozbywały się paska tytułu, ale wygląda na to, że tak nie jest.)
natevw
@natevw, ale nie tak zwięzłe, jak ten, który mówi ci, żebyś „po prostu sprawdź wszystkie cholerne pola”. Ta odpowiedź doprowadziła mnie do
wniosku
1
@dcow - Cóż, źle to przeczytałeś. Wyraźnie stwierdziłem, że wystarczy dodać obrazy startowe LUB zaznaczyć pole Wymagany pełny ekran. Rzadko jest na to prosta odpowiedź… To zależy od tego, co chcesz osiągnąć.
Simon Tillson
1
@SimonTillson źle przeczytałeś mój komentarz i najwyraźniej nie spojrzałeś na odpowiedź poniżej. Nie mówię o wymaganym polu pełnoekranowym . Rzeczywista poprawka polega na obsłudze wszystkich orientacji. Nie wymaga to dodawania obrazów startowych. Oznacza to po prostu upewnienie się, że wszystkie pola są zaznaczone pod orientacją urządzenia w ogólnych ustawieniach projektu. Może sugerujesz, że sugerując poprawkę „zawiera obraz uruchamiania lub scenorys dla wszystkich typów ekranów urządzeń” , ale jak powiedziałem, nie jest to tak zwięzłe, jak odpowiedź, która wyraźnie mówi ci tyle.
dcow
@dcow W OP chodziło o samo rozwiązanie ostrzeżeń, nie pytano o obsługę wielu okien. Ponieważ wiele okien działa poprawnie tylko w natywnych rozdzielczościach, masz rację, że obrazy startowe powinny być przesyłane dla wszystkich typów ekranów urządzeń i wszystkie używane orientacje powinny być zaznaczone. Nadal nie rozumiem, jaki był Twój pierwotny problem z moją odpowiedzią, ponieważ większość użytkowników chciała po prostu poznać znaczenie Wymagany pełny ekran i / lub jak pozbyć się ostrzeżenia.
Simon Tillson
62

Po prostu przejdź do celu, kliknij kartę „Ogólne”, znajdź sekcję „Informacje o wdrożeniu”, zaznacz „Wymaga pełnego ekranu”. :)

To takie proste, prawda?

Przy okazji, to nie jest najlepsze rozwiązanie. Będzie coraz więcej lepszych rozwiązań. Ale kiedy odpowiadałem na to pytanie, myślałem tylko, jak zabić ostrzeżenia. Nie wyjaśniłem, dlaczego to robię, ale jak to rozwiązać. Wersja beta Xcode może zmienić jego funkcje, więc zapewniam tylko „obejście” na tak wczesnym etapie. Więc jeśli uważasz, że moje rozwiązanie jest obejściem, zagłosuj na inne lepsze odpowiedzi. Ale to nie jest powód do głosowania przeciw. Dzięki :)

YangXiaoyu
źródło
15
To zdecydowanie nie jest rozwiązanie, po prostu niedopracowane obejście. Z poważaniem, nie zgadzam się z twoją odpowiedzią.
kbpontius
Innym rozwiązaniem jest sprawdzenie wszystkich „Orientacji urządzenia” w tym samym miejscu i podanie pliku xib lub storyboardu zamiast pliku obrazu. Czasami musimy dokonać wyboru: zaznacz „Wymaga pełnego ekranu” lub wszystkie w „Orientacji urządzenia”. Ponieważ jesteśmy o to proszeni przez Xcode. :)
YangXiaoyu
6
@kpont Czego dokładnie oczekujesz jako rozwiązania? Magiczne pstryknięcie palcem, aby usunąć ostrzeżenie? Xcode 7 ma dodatkowe metadane, których potrzebuje, i musisz je podać. Jeśli uważasz, że to błąd, czy otworzyłeś raport o błędzie w Apple?
Leo Natan
6
To obejście jest poprawne w kontekście „wczoraj mojej aplikacji zbudowanej i działającej poprawnie, ale dziś Xcode generuje ostrzeżenie”. Oczywiście Apple chciałby, aby każdy programista aktualizował każdą aplikację, aby działała z każdą włączoną funkcją. Jednak „tutaj, w prawdziwym świecie”, czasami musimy po prostu wprowadzić poprawkę lub następną kompilację jakiegoś rodzaju i poradzić sobie z ciągle zmieniającym się krajobrazem Apple w późniejszym czasie. Obejście jest prawidłowe. Podobnie, koncepcja dodawania xibs / storyboardów do obsługi orientacji jest ważna. Yay!
Olie
4
„Niedopracowane obejście”, dla którego firma Apple dodała pole wyboru w obszarze Ustawienia ogólne ...
Rivera
11

Właśnie zobaczyłem ten błąd i po przeczytaniu komentarzy na pewno chcę obsługiwać iPada i korzystanie z wielu okien. Jest to tak proste, jak sprawdzenie opcji orientacji urządzenia „Poziomo po lewej” i „Poziomo po prawej” i upewnienie się, że mój interfejs użytkownika je obsługuje.

Najlepszym sposobem, w jaki znalazłem dobrą obsługę wielu okien, jest użycie symulatorów o zmiennym rozmiarze lub, moim zdaniem, lepiej, użycie iPada Pro w XCode 7.1 i aktywowanie funkcji wielu okien, przeciągając od prawej. Po wykonaniu tych czynności moja aplikacja obsługuje te funkcje i mogę szybko sprawdzić, co muszę zaktualizować lub zoptymalizować, aby w pełni je obsługiwać.

d2burke
źródło
„Najlepszym sposobem na przetestowanie obsługi wielu okien jest użycie symulatorów o zmiennym rozmiarze lub lepszej IMO, użycie iPada Pro w XCode 7.1 i aktywacja funkcji wielu okien poprzez przeciągnięcie z prawej strony”. To jest dość dosłowna odpowiedź, w tonie konwersacyjnym. Mogłeś to wyjaśnić w swoim komentarzu przed głosowaniem negatywnym.
d2burke
Słuszna uwaga, brakowało mi stylu konwersacyjnego. Przepraszam. Ale możesz chcieć to przepisać - przegapiłem to za pierwszym razem i jestem native speakerem.
Abizern
Rozumiem :) Dziękuję za odpowiedź. Zaktualizuję to teraz.
d2burke
2
TO jest prawdziwa odpowiedź na to pytanie. Dzięki!
Aviel Gross
do góry nogami nie było dla mnie zaznaczone. włączenie go usuwa ostrzeżenie. Myślę też, że to jest właściwa odpowiedź
neelabh
8

Domyślnie orientacja urządzenia włącza tylko pionową, poziomą lewą i poziomą prawą. Musisz także włączyć Upside Down.

wprowadź opis obrazu tutaj

CosmicMind
źródło
3

„Clean Build Folder” i buduj ponownie

Otrzymałem All interface orientations must be supported unless the app requires full screen.wiadomość dzisiaj w Xcode 7.3.1, pozornie bez powodu, bez żadnej powiązanej zmiany, którą wprowadziłem.

  • I zrobić miećLaunchScreen.storyboard
  • Ja nie sprawdził Requires full screen.

Wypróbowałem zwykły manewr, gdy Xcode pozostawia mnie zdziwionym jakimś-nowym-błędem-bez-powodu:

  1. Przytrzymaj klawisz Option podczas klikania Productmenu.
  2. Wybierz Clean Build Folder( nie Clean ).
  3. Wybierz Product> Build.

Żaden problem. Po kilku kolejnych sesjach kompilacji i uruchomienia komunikat o błędzie nie pojawił się jeszcze ponownie.

Basil Bourque
źródło
0

Czy podałeś opcję „Uruchom Storyboard” dla swojej aplikacji? A może właśnie dostarczyłeś statyczne obrazy dla różnych rozmiarów.

Sprawdź tutaj: https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html

cbiggin
źródło
Używam obrazu startowego, a nie storyboardu. Myślałem, że scenorys premiery był opcjonalny. Myślę, że zdecydowanie zaleca się użycie storyboardu uruchamiania zamiast obrazu startowego w Xcode 7, dlatego ostrzeżenie? Obecna wersja aplikacji została już zatwierdzona przez Apple, myślę, że w następnej wersji dołączę scenariusz uruchomienia, w którym Xcode 7 zostanie już udostępniony publicznie. Dzięki
bachma0507
Mam ten sam problem, więc żeby potwierdzić @cbiggin - czy musisz mieć scenorys uruchamiania, aby pozbyć się tego błędu?
amitsbajaj
Nie mogę tego potwierdzić, tylko to, co teoretyzuję, może być przyczyną problemu. Spróbuj dodać Uruchom scenorys i sprawdź, czy zniknie. Jeśli tak, to zagłosuj
pozytywnie na
1
pamiętaj, że możesz użyć scenorysu uruchamiania tylko dla ios> = 8
troppoli
0

Ustaw UIRequiresFullScreen na YES w Info.plist. I zaznacz Wymaga pełnego ekranu .wprowadź opis obrazu tutaj

Prasad Patil
źródło