2013-11-05 6 views
8

Inizio a scrivere questa app su iOS 6 Sono riuscito a correggere tutto ciò che riguarda l'immagine e le API deprecate senza problemi.Icone dell'app iOS 7 che appaiono in nero non appena aggiungo nuove immagini

Sto creando una nuova icona per supportare lo stile di iOS 7 ma a prescindere dal fatto che io usi il catalogo delle risorse e/o percorsi dritti per le immagini non appena aggiungo un nuovo riferimento ogni volta che avvio le applicazioni ottengo un'icona nera in fase di rendering.

Sto chiaramente facendo qualcosa di sbagliato.

Ecco il mio catalogo delle risorse che mostra tutte le immagini mappate. Non sono effettivamente visualizzati nell'applicazione e ho icone nere su tutte le applicazioni iOS.

enter image description here

Ogni volta che lancio ottengo un'icona nera. Ha a che fare con alcune impostazioni nel file Info.plist?

Eccolo.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>CFBundleDevelopmentRegion</key> 
    <string>en</string> 
    <key>CFBundleDisplayName</key> 
    <string>${PRODUCT_NAME}</string> 
    <key>CFBundleExecutable</key> 
    <string>${EXECUTABLE_NAME}</string> 
    <key>CFBundleIcons</key> 
    <dict/> 
    <key>CFBundleIcons~ipad</key> 
    <dict/> 
    <key>CFBundleIdentifier</key> 
    <string>com.neckbeardrepublic.${PRODUCT_NAME:rfc1034identifier}</string> 
    <key>CFBundleInfoDictionaryVersion</key> 
    <string>7.0</string> 
    <key>CFBundleName</key> 
    <string>${PRODUCT_NAME}</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleVersion</key> 
    <string>1.0</string> 
    <key>LSRequiresIPhoneOS</key> 
    <true/> 
    <key>UIAppFonts</key> 
    <array> 
     <string>Lato-Black.ttf</string> 
     <string>FontAwesome.ttf</string> 
    </array> 
    <key>UIPrerenderedIcon</key> 
    <true/> 
    <key>UIRequiredDeviceCapabilities</key> 
    <array> 
     <string>armv7</string> 
    </array> 
    <key>UIStatusBarHidden</key> 
    <false/> 
    <key>UIStatusBarHidden~ipad</key> 
    <true/> 
    <key>UIStatusBarTintParameters</key> 
    <dict> 
     <key>UINavigationBar</key> 
     <dict> 
      <key>Style</key> 
      <string>UIBarStyleDefault</string> 
      <key>Translucent</key> 
      <false/> 
     </dict> 
    </dict> 
    <key>UISupportedInterfaceOrientations</key> 
    <array> 
     <string>UIInterfaceOrientationPortrait</string> 
     <string>UIInterfaceOrientationLandscapeLeft</string> 
     <string>UIInterfaceOrientationLandscapeRight</string> 
    </array> 
    <key>UISupportedInterfaceOrientations~ipad</key> 
    <array> 
     <string>UIInterfaceOrientationLandscapeLeft</string> 
     <string>UIInterfaceOrientationLandscapeRight</string> 
    </array> 
    <key>UIViewControllerBasedStatusBarAppearance</key> 
    <false/> 
</dict> 
</plist> 

Estremamente frustrante. Ho anche appena provato a fornire i file specifici senza molto successo.

Qualcuno può individuare il problema?

+0

Come mai non vengono visualizzati nel file Plist?dovrebbero essere proprio sotto 'CFBundleIcons' li hai trascinati e rilasciati. – meda

+0

@meda Ho eseguito sia il drag and drop sia il posizionamento di ciascuno su singolarmente. – myusuf3

+0

Stai trascinando i file PNG? – Abizern

risposta

17

Innanzitutto, verificare che i file di immagine che si stanno utilizzando per le icone delle app siano appropriati. Vedere Apple's Human Interface Guidelines on App Icons per tutti i dettagli, ma particolarmente rilevante per questa domanda:

Evitare la trasparenza. L'icona di un'app dovrebbe essere opaca. Se i contorni dell'icona sono inferiori alle dimensioni consigliate oppure se si utilizza la trasparenza per creare aree "trasparenti", l'icona risultante può apparire su uno sfondo nero, che tende ad apparire in particolare non attraente sugli splendidi sfondi. che gli utenti scelgono.

Se si utilizza la trasparenza, ad esempio un'immagine nera su uno sfondo trasparente, l'icona potrebbe apparire completamente nera in iOS.

Successivamente, ci sono alcuni modi per dire a iOS delle icone per la tua app. Il nuovo meccanismo consiste nell'utilizzare il catalogo delle risorse; Apple ha una guida su Migrating an App Icon or Launch Image Set.

Il vecchio metodo semplice consiste nell'aggiungere i nomi di file di icona nel file Info.plist CFBundleIcons. Secondo la documentazione di Apple su App-Related Resources:

Indipendentemente dal numero di icone differenti vostra applicazione ha, si specifica li utilizzando la chiave CFBundleIcons nel file Info.plist. Il valore di tale chiave è una matrice di stringhe, ognuna delle quali contiene il nome file di una delle icone. I nomi dei file possono essere qualsiasi cosa tu voglia, ma tutti i file di immagine devono essere nel formato PNG e devono risiedere nel livello superiore di il pacchetto di app. (Evitare l'uso di PNG interlacciati.) Quando il sistema richiede l'icona , sceglie il file immagine la cui dimensione corrisponde maggiormente all'utilizzo previsto di .

+1

metti la vera ragione, prendi dei punti. :) – myusuf3

+2

@ myusuf3 Ho aggiornato la risposta per includere un avvertimento contro l'uso di PNG trasparenti;) – pix0r

Problemi correlati