Come abilitare la risoluzione nativa per le app su iPhone 6 e 6 Plus?


194

Xcode 6 GM ora include simulatori per iPhone 6 e 6 Plus e, per impostazione predefinita, eseguono app in modalità scalata.

Per abilitare le nuove dimensioni dello schermo ho provato ad aggiungere Default-667h@2x.pngche sembra fare una parte del trucco poiché l'app ora non riesce affatto a funzionare, con l'errore "Impossibile eseguire l'app nel simulatore - Si è verificato un errore durante l'esecuzione (Dominio = LaunchServicesError, Codice = 0) ".

Qualcuno ha capito come far funzionare un'app nella risoluzione 6 / 6+?


16
Come altri hanno già detto, il trucco è aggiungere un'immagine di lancio delle giuste dimensioni al tuo progetto. Ho scritto una guida rapida su come aggiungere un'immagine di lancio in modo da poter visualizzare la risoluzione di iPhone 6 qui.
matthewpalmer,

1
questo ha funzionato per me stackoverflow.com/questions/25755443/...
johndpope

2
La denominazione delle immagini è diversa per iPhone 6/6 +. Per me l'aggiunta dell'immagine di lancio per 6 e 6+ ha funzionato perfettamente. Guardate questa risposta per la convenzione di denominazione corretta: stackoverflow.com/a/27473877/1568532
fellowworldcitizen

Esiste un'alternativa invece di utilizzare LaunchScreen?
Vaibhav Jhaveri,

Risposte:


220

È possibile aggiungere un file della schermata di avvio che sembra funzionare per più dimensioni dello schermo. Ho appena aggiunto MainStoryboard come file della schermata di avvio e questo ha impedito il ridimensionamento dell'app. Penso che dovrò aggiungere una schermata di avvio permanente in seguito, ma ciò ha reso la risoluzione nativa attiva e funzionante rapidamente. In Xcode, vai al tuo target, generale e aggiungi lì il file della schermata di avvio.

Avvia file dello schermo


2
Questa è probabilmente la soluzione migliore se si utilizza un singolo storyboard che gestisce tutti i dispositivi. La mia risposta è appropriata se non stai usando un singolo storyboard o hai bisogno di immagini di avvio esplicite separate.
rmaddy,

Devo impostare immagini di avvio esplicite per iPhone 6 e 6 Plus, esiste una convenzione di denominazione se non desidero utilizzare il catalogo delle risorse?
Radif Sharafullin,

@Radif Sharafullin Ci sono alcune istruzioni qui su come nominare le immagini di lancio: developer.apple.com/library/prerelease/ios/documentation/iPhone/… . Scorri fino in fondo per avviare il modello di denominazione delle immagini.
David L

6
Tieni presente che, una volta migrato LaunchImage, iOS non estenderà più la tua app iPhone-5 a iPhone-6 (e 6+). Il che può interrompere l'interfaccia utente della tua app se stai realizzando le tue visualizzazioni con dimensioni assolute come 320px di larghezza e non usando le dimensioni relative usando i ritocchi automatici.
Atulkhatri,

1
@ bobo2000 design in modo reattivo.
mattsven,

116

Se stai utilizzando i cataloghi delle risorse, vai al catalogo delle risorse LaunchImages e aggiungi le nuove immagini di avvio per i due nuovi iPhone. Potrebbe essere necessario fare clic con il pulsante destro del mouse e selezionare "Aggiungi nuova immagine di avvio" per vedere un luogo in cui aggiungere le nuove immagini.

L'iPhone 6 (Retina HD 4.7) richiede un'immagine di lancio verticale di 750 x 1334.

L'iPhone 6 Plus (Retina HD 5.5) richiede immagini sia verticali che orizzontali con dimensioni rispettivamente di 1242 x 2208 e 2208 x 1242.


2
Vorrei poter scegliere due risposte giuste poiché tutto sembra molto corretto. Non ho ancora iniziato a utilizzare i cataloghi delle risorse (beh, ho appena provato a adottarne una senza successo - in qualche modo l'app non ha trovato lì le immagini di avvio) ma assegnare il file della schermata di avvio è stata una soluzione semplice qui.
villapossu,

Dovrebbe essere possibile aggiungere le immagini di avvio corrette senza utilizzare i cataloghi delle risorse. Ma non so con disinvoltura come fare riferimento in Info.plist.
rmaddy,

Devo aggiungere effettivamente un'immagine? Li ho attivati ​​ed è ancora in scala.
Epic Byte,

Sì, devi effettivamente aggiungere le immagini (o utilizzare il nuovo "Launch Screen File" (ma è solo per iOS 8).
rmaddy

1
@trumpetlicks Il plus esegue il rendering su un target più grande, quindi ridimensiona il rendering in base alle dimensioni effettive dello schermo, stessa tecnica del MacBook Pro della retina. Inoltre, Plus può effettivamente lanciare app in orizzontale, nessun altro iPhone può
farlo

104

Ho creato schermate di lancio nere di base che ridurranno correttamente l'app su iPhone 6 e iPhone 6+:

Ritratto di iPhone 6

Ritratto di iPhone 6 Plus

Se hai già un LaunchImage nel tuo .xcassett, aprilo, passa alla terza scheda nel menu a destra in Xcode e spunta le immagini iPhone iOS 8.0 per aggiungerle al set esistente. Quindi trascina le immagini sopra:

inserisci qui la descrizione dell'immagine


52

Non volevo introdurre un catalogo di risorse.

Per la risposta di seahorseseaeo qui , aggiungendo quanto segue a info.plist ha funzionato per me. (L'ho modificato come "codice sorgente".) Ho quindi chiamato le immagini Default-667h@2x.png e Default-736h@3x.png

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
</array>

Questa risposta è fantastica Consente di utilizzare facilmente le immagini per passare dalla schermata iniziale all'app. Nessun'altra soluzione (catalogo delle risorse o storyboard) consente di farlo con la stessa facilità.
jjxtra,

7
Ha funzionato per me (grazie!) Ma ha smesso di riconoscere l'immagine di lancio di 568h @ 2x, disattivando il supporto per le dimensioni di iPhone 5. Ho dovuto solo aggiungere un altro oggetto simile ai due sopra ma specificando 568h. (campi specifici: Default-568h, {320, 568})
Steph Thirion

Lo stesso vale per l'iPhone 4S.
Josh Bernfeld,

1
appena fatto l'esperienza (sul simulatore) che i file di immagine specificati non devono nemmeno esistere.
glasz,

Ho un problema con questa tecnica su iPhone 6: mostra prima la schermata di avvio Default-667h@2x.png e poi mostra brevemente Default-Portrait@2x~iphone.png. Qualche idea?
Samuel,

21

Tieni presente che iPhone 6 utilizzerà la risoluzione 320pt (640px) se hai abilitato lo "Zoom schermo" in iPhone> Impostazioni> Display e luminosità> Visualizza.


Vorrei che questo fosse meglio documentato!
bobo2000,

Mi hai appena salvato la giornata. Ho provato tutte le altre soluzioni ma il mio problema era solo che il dispositivo era in modalità Zoom.
MessuKilkain,

8

Procedi come segue (vedi in foto)

  1. Vai al catalogo delle risorse
  2. tasto destro del mouse e selezionare "Aggiungi nuova immagine di lancio"

    • iPhone 6 -> 750 x 1334
    • iPhone 6 Plus -> 1242 x 2208 e 2208 x 1242

inserisci qui la descrizione dell'immagine


3

Si è verificato un errore durante l'esecuzione (Domain = LaunchServicesError, Code = 0)

Di solito questo indica che installd ha restituito un errore durante il processo di installazione (risorse errate o simili).

Sfortunatamente, Xcode non mostra l'effettivo errore sottostante (sentiti libero di duplicare i file di questo bug noto).

Dovresti controllare ~ / Library / Logs / CoreSimulator / CoreSimulator.log che registrerà l'errore sottostante per te.


Grazie! Non ero a conoscenza di questa visione aggiuntiva della causa principale dell'errore. Il registro dettagliato non mi dice molto ma almeno ho qualcosa da allegare al mio deposito radar.
villapossu,

0

Se stai usando il catalogo delle risorse e hai più destinazioni entrambe usando lo stesso file del catalogo delle risorse, assicurati che questo file abbia controllato entrambe le destinazioni nel pannello di destra in xcode.

Questo era il mio problema.

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.