Avvertenze Xcode 7 Beta: Orientamenti dell'interfaccia e Avvia Storyboard


131

Ho aperto il mio progetto in Xcode 7 beta e ricevo i seguenti avvisi che non sono presenti in 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.

L'app utilizza l'orientamento verticale solo per i dispositivi e l'ho impostato in questo modo. Ho anche storyboard per interfacce iPhone e iPad. Non riesco a determinare perché ricevo questi avvisi. È un bug beta di Xcode 7?


sembra un bug. Controlla i forum degli sviluppatori Apple. Gioie di essere un beta tester: p
Sam B

Risposte:


274

Questo avviso è nuovo per iOS 9 poiché supporta app ridimensionabili con supporto multi-finestra. In precedenza, le app venivano ridimensionate automaticamente su nuovi dispositivi con risoluzioni di visualizzazione hardware diverse da quelle dell'immagine di avvio (che è fondamentalmente il modo in cui iOS rileva le risoluzioni dell'interfaccia supportate). Ora, le app che supportano più finestre devono definire le risoluzioni che supportano includendo un'immagine di avvio o uno storyboard per tutti i tipi di schermo del dispositivo.

A meno che tu non stia riscrivendo la tua app per supportare più finestre, avrai bisogno di "Schermo intero". Questo è un suggerimento per iOS che non supporti multi-finestra e sostanzialmente fa funzionare iOS 9 come le versioni precedenti in questo senso.

Quindi, se stai inviando un aggiornamento dell'app per iOS 9 e non supporti la multi-finestra, tutto ciò che devi fare è andare alle impostazioni del Target di progetto, selezionare Generale e in "Informazioni sulla distribuzione" cercare la casella di spunta chiamato "Richiede schermo intero". Spuntare questo e gli avvisi scompariranno.

Non è certamente un bug. Se è presente questo avviso, l'app potrebbe presentare problemi durante l'invio. Non ne sono sicuro, perché non ho ancora presentato un'app con iOS 9 GM Seed, ma sicuramente spunta la casella :-)


4
Questa risposta è molto migliore di quella attualmente in testa. Grazie per aver spiegato il "perché" di questa modifica e il "cosa" in realtà è l'impostazione a schermo intero. (Ho immaginato che fosse la stessa impostazione utilizzata dai giochi per sbarazzarsi della barra del titolo, ma sembra che non sia così.)
Natevw,

@natevw ma non è così conciso come quello che ti dice di "selezionare tutte le dannate caselle". Questa risposta mi ha portato a credere di aver bisogno di un sacco di nuove immagini della schermata di avvio per rimuovere l'avvertimento ...
dcow

1
@dcow - Bene, allora hai letto male. Ho affermato chiaramente che devi solo aggiungere immagini di avvio O selezionare la casella Richiede schermo intero. Raramente c'è una risposta semplice a queste cose ... Dipende da cosa vuoi ottenere.
Simon Tillson,

1
@SimonTillson hai letto male il mio commento e chiaramente non hai visto la risposta qui sotto. Non sto parlando della casella richiede schermo intero . La soluzione effettiva è supportare tutti gli orientamenti. Ciò non richiede l'aggiunta di immagini di avvio. Significa semplicemente assicurarsi che tutte le caselle siano selezionate sotto l' orientamento del dispositivo nelle impostazioni generali del progetto. Forse stai insinuando che suggerendo che la correzione sta "includendo un'immagine di avvio o uno storyboard per tutti i tipi di schermo del dispositivo" , ma come ho detto, non è così conciso come la risposta che ti dice esplicitamente tanto.
dc

@dcow L'OP riguardava la risoluzione dei soli avvertimenti, non chiedeva come supportare la multi-finestra. Poiché la multi-finestra funziona correttamente solo con risoluzioni native, hai ragione a caricare le immagini di avvio per tutti i tipi di schermi dei dispositivi e tutti gli orientamenti in uso devono essere spuntati. Tuttavia, non riesco ancora a capire quale fosse il tuo problema originale con la mia risposta, poiché la maggior parte degli utenti voleva solo conoscere il significato di Richiede schermo intero e / o come eliminare l'avviso.
Simon Tillson,

62

Vai al tuo target, fai clic sulla scheda "Generale", trova la sezione "Informazioni sulla distribuzione", controlla "Richiede schermo intero". :)

È così facile, vero?

A proposito, questa non è la soluzione migliore. Ci saranno sempre più soluzioni migliori. Ma quando rispondo a questa domanda, ho solo pensato a come eliminare gli avvisi. Non ho spiegato perché farlo ma come risolverlo. La versione beta di Xcode potrebbe cambiare le sue funzionalità, quindi fornisco solo una "soluzione alternativa" in quel momento. Quindi, se ritieni che la mia soluzione sia una soluzione alternativa, vota per altre risposte migliori. Ma questo non è il motivo per cui si vota verso il basso. Grazie :)


15
Questa non è sicuramente una soluzione, semplicemente una soluzione alternativa a metà cottura. Rispettosamente, non sono d'accordo con la tua risposta.
kbpontius,

Un'altra soluzione è controllare tutti gli "Orientamenti del dispositivo" nello stesso posto e fornire un file xib o storyboard anziché un file immagine. A volte dobbiamo fare una scelta: selezionare "Richiede schermo intero" o tutto in "Orientamento del dispositivo". Perché ci viene chiesto di farlo tramite Xcode. :)
YangXiaoyu

6
@kpont Cosa ti aspetti esattamente come soluzione? Magico scatto del dito per rimuovere l'avvertimento? Xcode 7 ha metadati aggiuntivi di cui ha bisogno e devi fornirli. Se ritieni che si tratti di un errore, hai aperto una segnalazione di bug con Apple?
Leo Natan,

6
La soluzione alternativa è valida nel contesto di "la mia app è stata eseguita e funzionava bene ieri, ma oggi Xcode genera un avviso". Ovviamente, Apple vorrebbe che tutti gli sviluppatori aggiornassero ogni app per funzionare con tutte le funzionalità abilitate. Tuttavia, "qui nel mondo reale", a volte abbiamo solo bisogno di spingere una correzione di bug o la prossima build di qualche tipo, e affrontare il panorama Apple in continua evoluzione in un secondo momento. La soluzione è valida. Allo stesso modo, il concetto di aggiungere xibs / storyboard per supportare gli orientamenti è valido. Sìì!
Olie,

4
Una "soluzione alternativa a metà" per la quale Apple ha aggiunto una casella di controllo in Impostazioni generali ...
Rivera


11

Ho appena visto questo errore e dopo aver letto i commenti, voglio sicuramente supportare iPad e l'uso di più finestre. Questo è semplice come controllare l' orientamento del dispositivo opzioni di "Orizzontale a sinistra" e "Orizzontale a destra" e assicurarsi che la mia interfaccia utente supporti queste.

Il modo migliore che ho trovato per testare un buon supporto multi-finestra è usare i simulatori ridimensionabili, o meglio a mio avviso, usare l'iPad Pro in XCode 7.1 e effettivamente attivare la funzione multi-finestra trascinando da destra. Dopo aver seguito questi passaggi, la mia app supporta queste funzionalità e sono in grado di vedere rapidamente cosa devo aggiornare o ottimizzare per supportarle completamente.


"Il modo migliore che ho trovato per testare un buon supporto multi-finestra è usare i simulatori ridimensionabili, o meglio IMO, usare iPad Pro in XCode 7.1 e effettivamente attivare la funzione multi-finestra trascinando da destra." Questa è letteralmente una risposta, in tono colloquiale. Avresti potuto chiarire nel tuo commento prima di votare a fondo.
d2burke,

Buon punto, mi mancava lo stile della conversazione. Mi scuso. Ma potresti voler riscriverlo: l'ho perso la prima volta e sono un madrelingua.
Abizern

Capisco :) Grazie per essere reattivo. Lo aggiornerò ora.
d2burke,

2
QUESTA è la risposta effettiva a questa domanda. Grazie!
Aviel Gross,

sottosopra era deselezionato per me. abilitandolo si rimuove l'avvertimento. Penso anche che questa sia la risposta giusta
neelabh,

8

Per impostazione predefinita, l'orientamento del dispositivo abilita solo Verticale, Orizzontale a sinistra e Orizzontale a destra. È necessario abilitare anche Upside Down.

inserisci qui la descrizione dell'immagine


3

"Clean Build Folder" e ricostruire nuovamente

Ho ricevuto il All interface orientations must be supported unless the app requires full screen.messaggio oggi in Xcode 7.3.1, apparentemente senza motivo, senza modifiche correlate da me apportate.

  • Ho fare avere unLaunchScreen.storyboard
  • Ho non controllato Requires full screen.

Ho provato la solita manovra quando Xcode mi lascia perplesso su qualche nuovo errore per nessuna buona ragione:

  1. Tenere premuto il tasto Opzione mentre si fa clic sul Productmenu.
  2. Scegli Clean Build Folder( non Clean ).
  3. Scegli Product> Build.

Nessun altro problema. Dopo alcune altre sessioni build-and-run, il messaggio di errore deve ancora riapparire.


0

Hai fornito un "Launch Storyboard" per la tua app? O hai appena fornito immagini statiche per le varie dimensioni.

Controlla qui: https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/MobileHIG/LaunchImages.html


Uso un'immagine di lancio, non uno storyboard di lancio. Ho pensato che lo storyboard di lancio fosse facoltativo. Immagino sia fortemente raccomandato l'uso di uno storyboard di lancio invece di un'immagine di lancio in Xcode 7, ecco perché l'avvertimento? La presente versione dell'app è già stata approvata da Apple, immagino che includerò uno storyboard di lancio nella prossima versione in cui Xcode 7 sarà già stato rilasciato al pubblico. Grazie
bachma0507,

Sto riscontrando lo stesso problema, quindi solo per confermare @cbiggin: è necessario disporre di uno storyboard di avvio per eliminare questo errore?
amitsbajaj,

Non posso confermarlo, proprio quello che teorico potrebbe causare il problema. Prova ad aggiungere uno Storyboard di lancio e vedi se scompare. In tal caso, vota per favore la mia risposta :)
cbiggin,

1
tieni presente che puoi utilizzare uno storyboard di lancio solo per iOS> = 8
troppoli,

0

Impostare UIRequiresFullScreen su YES in Info.plist. E spunta Richiede schermo intero .inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.