[ios8] L'immagine di lancio non viene visualizzata nella mia app iOS



Answers

Il LaunchScreen.xib e il valore di info Launch screen interface file base name sono dalla mia esperienza entrambi i segnaposti creati quando viene creato il progetto. Se si desidera utilizzare esclusivamente Images.xcassets per le schermate di avvio, eliminare sia LaunchScreen.xib che info.plist .

Se fornisci l'impostazione info.plist , l'app utilizzerà lo xib e non i tuoi Images.xcassets

Question

Voglio ottenere una semplice schermata di avvio da mostrare nella mia app, creata usando Xcode 6.0.1.

Ho aggiunto una schermata di avvio in due modi: Come XIB (con il nome predefinito, LaunchScreen.xib) e come set di avvio in xcassets.

Mi sono assicurato che il mio "file di schermata di avvio" sia impostato su LaunchScreen.xib.

Ho simulato tutti i dispositivi disponibili (ad es. "IPhone5 iOS8" / "iPhone5s iOS8" / "iPhone6 ​​iOS8". Si noti che solo iOS 8 è disponibile all'interno del simulatore).




La mia soluzione era creare tutte le immagini di lancio.

Quindi imposto la Sorgente delle immagini di avvio sulla risorsa LaunchImage e lascia vuoto il file della schermata di avvio.

Infine se il progetto non ha una schermata di avvio.xib, quindi aggiungi quel file e lascialo così com'è.




C'è un bug in cui Xcode 6 avvia le immagini memorizzate nei file di asset e fa sì che le app iphone landscape solo su iOS7 / iOS8 visualizzino un'immagine di avvio nera. iPad funziona bene.

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=10868

Soluzione: utilizzare la nuova Launchscreen.xib per ios8 + in poi. (è molto meglio)

Affinché i dispositivi iOS7 funzionino, è sufficiente disattivare l'origine delle immagini di avvio e utilizzare i nomi dei file delle immagini di avvio della vecchia scuola nel plist

iphone5 - Default-568h@2x.png 
iphone4s - Default@2x.png
ipad2 - Default-Landscape~ipad.png
ipad retina - Default-Landscape@2x~ipad.png

Doloroso ma funziona. B




Semplicemente rimuovendo e reinstallando l'app ha funzionato per me:

  • Test nel simulatore

    1. Elimina l'app nel simulatore.
    2. Chiudi e riavvia il simulatore.
    3. Esegui nuovamente il progetto in Xcode.
  • Test sul dispositivo

    1. Elimina l'app dal dispositivo.
    2. Esegui nuovamente il progetto in Xcode.



Ho avuto un bug molto strano. Apparentemente la mia sorgente di immagini di lancio è stata impostata solo per la configurazione di debug e non per il rilascio. Ciò ha comportato la visualizzazione della schermata di avvio durante l'esecuzione della configurazione di debug, ma quando ho cambiato la versione ho appena ottenuto una schermata nera.

Ho risolto questo problema quando ho modificato la configurazione della build per rilasciare il pulsante Launch Image Source e ho dovuto scegliere di nuovo Use Asset Catalog.

Per coloro che sono curiosi, questo è ciò che sembrava il mio project.pbxproj.

...
...
...
XXXXXXXXXXXXXXXXXXXXXXXX /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; <---THIS LINE WAS MISSING
...
...
...



Un modo è anche aggiungere "Schermata avvio" ( LaunchScreen.xib ), incollare l'immagine in UIImageView e quindi impostarla su " Centro orizzontale nel contenitore " e " Centro verticale nel contenitore " in "Allinea" se si utilizza il layout automatico.

Schermo: http://i.stack.imgur.com/CfnHT.png

Non dimenticare di inserire LaunchScreen.xib in "Avvia file di schermo".




Dopo diverse ore frustrate su questo, ho deciso di usare in questo modo. Funziona sia per iPhone che per iPad (su Xcode 6.1)

  1. File >> Nuovo file >> Interfaccia utente >> Schermata di avvio
  2. Crea una nuova chiave / valore: "Avvia il nome del file di interfaccia dello schermo" / "Nome della schermata di avvio" in YourApp-Info.plist

1 immagine vale più di mille parole. Si prega di guardare qui sotto:




L'ho appena capito. La mia immagine di avvio non veniva visualizzata, ricevo uno schermo bianco quando si avvia su un dispositivo (iPhone 6, 7+) o testFlight. Correzione: rinominato "Landing_screen.png" in "Landing_screen" rimuovendo la parte .png. L'icona dell'immagine in Xcode è cambiata in icona bianca e nello storyboard della schermata di avvio l'immagine appare ora come un punto interrogativo. L'immagine di lancio ora appare e non lo schermo bianco. My Setup: Sto usando Swift 3.1 con Xcode 8.3.1. In LaunchScreen.storyboard ho aggiunto una semplice visualizzazione dell'immagine e allungato l'immagine per adattarla al controller della vista. Ho impostato i vincoli di layout automatico Top / Bottom / Leading / Trailing space a superview a 0.




Incontro questo bug anche con la mia app solo per paesaggio, segui la soluzione di carlodurso:

  1. spunta la casella "Lanscape"
  2. trascina e rilascia l'immagine nel luogo.



Ho letto di un bug in xCode 6 che impedisce alle app di solo paesaggio di visualizzare un'immagine di lancio.

Prova a impostare le immagini e l'orientamento all'interno di Images.xcassets:




* (Xcode 7.2 / Destinazione di distribuzione 7.0 / Solo orientamento orizzontale) *

So che è una vecchia domanda, ma con Xcode 7.2 sto ancora ricevendo il messaggio e ho risolto questo problema:

1) Selezionare RITRATTO e entrambi i paesaggi. Aggiungi "Avvia sorgente immagini" e "Avvia file schermo"

2) Nella tua immagine di lancio seleziona iPhone "8.0 e successive" e "7.0 e successive".

3) Aggiungi questo codice nella tua appDelegate:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}
#else
- (UIInterfaceOrientationMask)application:(UIApplication *)application     supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return (UIInterfaceOrientationMaskLandscape);
}
#endif

4) Aggiungi questo sul ViewController

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000
- (NSUInteger)supportedInterfaceOrientations
#else
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
#endif
{
     return UIInterfaceOrientationMaskLandscape;
}

Spero di aiutare qualcuno.




  • Assicurati che le tue immagini abbiano dimensioni precise in base alle linee guida Apple.
  • Assicurati di selezionare solo un'opzione, il file della schermata di avvio o Avvia origine immagine. Puoi trovare queste due opzioni in Impostazioni di sviluppo progetto -> Generale

Il mio suggerimento è di selezionare Avvia origine immagine come Immagine.Asset. Crea risorse immagine splash qui nella cartella Image.assests.

Immagine di riferimento per una corretta configurazione:




Per me, ha funzionato quando ho disinstallato l'app e poi riavviato il simulatore. Una volta installato nuovamente, l'immagine di avvio è apparso come previsto. Questo ha funzionato anche su un dispositivo reale.




Links