Bildressourcen (xcassets) werden in einer Anwendung, die auf El Capitan unter Verwendung von xcode6.4 erstellt wurde, nicht korrekt auf Yosemite angezeigt

8

Wenn ich meine Anwendung auf El Capitan unter Verwendung von Xcode6.4 (Xcode7 ist derzeit keine Option) erstellt habe, werden alle Bilder / Symbole (außer der AppIcon) nicht angezeigt oder verstümmelt.

Wenn ich mir die Ausgabe des Asset Compilers anschaue, sieht es gut aus, aber es gibt zwei Ausgaben, von denen ich vermute, dass sie verwandt sein könnten, aber ich bin weit davon entfernt, sicher zu sein:

  

2015-10-02 12: 26: 53.569 ibtoold [28899: 273288] NSFileCoordinator tut nichts.

     

2015-10-02 12: 26: 54.906 ibtoold [28899: 276436] CoreUI (DEBUG): CSIGenerator mit 'LZFSE' Compression Coreui Version (362.000000)

Könnte es sein, dass die LZFSE-Komprimierung versagt, sodass Yosemite nicht korrekt dekomprimieren kann, und wenn ja, gibt es eine Möglichkeit, dies zu überschreiben?

Es gibt kein Problem, wenn die Anwendung auf El Capitan ausgeführt wird.

Irgendwelche Vorschläge sind sehr willkommen.

UPDATE: Diese Nachrichten werden an die Konsole ausgegeben, wenn die App auf Yosemite ausgeführt wird:

  

02.10.15 22.31.59.914 AppName [452]: - [CUIThemeRendition newImageFromCSIDataSlice: ofBitmap: usingColorspace:] Nicht unterstütztes Pixelformat in CSI wurde 36864

     

02.10.15 22.31.59.914 AppName [452]: Nicht erstelltes Bild kann nicht aus CSI-Bitmap-Daten erstellt werden.

Es scheint, sie hatten dieses Problem für iOS7 in Xcode Beta 3 hier

Aber es scheint merkwürdig, dass es plötzlich wieder auftaucht, und mein Ziel ist OS X.

UPDATE: Also habe ich auf Xcode7 aufgerüstet, und das ganze Problem ist verschwunden. Alle Bilder und Icons werden nun korrekt in El Capitan und Yosemite angezeigt.

    
Trond 02.10.2015, 16:25
quelle

4 Antworten

7

Hintergrundinfo:

Jede Version von Xcode enthält einen eingebauten Simulator. Xcode 6.4 hat iOS Simulator 8.4. Xcode 7.1 hat iOS Simulator 9.1 usw. Diese Simulatoren haben Profile gespeichert in Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/CoreSimulator/Profiles/Runtimes

Wenn Sie zusätzliche Simulatoren installieren, werden diese über Xcode-Versionen verteilt und ihre Profile werden in /Library/Developer/CoreSimulator/Profiles/Runtimes

gespeichert

Wenn Sie also den iOS Simulator 9.0 von Xcode 7.1 installieren, wird das 9.0 Simulatorprofil in den freigegebenen Speicherort eingefügt. Wenn Sie den iOS Simulator 8.4 von Xcode 7.1 installieren, wird er auch hier eingefügt, da Xcode 7.1 nicht weiß, dass eine Kopie des iOS Simulator 8.4 in Xcode 6.4 versteckt ist.

Was also zu geschehen scheint, ist (für Xcode 6.4):

  • Wenn Sie actool aufrufen, um einen Asset-Katalog zu erstellen, wird ibtoold
  • gestartet
  • ibtoold ruft über einen XPC-Dienst (com.apple.coresimulator) auf und führt eine Instanz von IBCcoaTouchImageCatalogTool über dem Simulator-Dienst
  • aus
  • IBCocoaTouchImageCatalogTool durchläuft alle Simulatorlaufzeiten bei /Library/Developer/CoreSimulator/Profiles/Runtimes und verwendet anscheinend das neueste, das es finden kann. Warum ist das nicht wirklich klar für mich, aber keine Menge Knobeln verursacht etwas anderes.

Wenn Sie also Xcode 7.1.1 installiert haben und den 9.0-Simulator herunterladen, werden Sie Ihre Xcode 6.4-Installation unterbrechen, weil der 9.0-Simulator seine Laufzeitumgebung im Laufzeitbereich des freigegebenen Simulators installiert und Xcode 6.4 diese in einigen Anwendungen verwendet Fälle. Dies führt dazu, dass actool anscheinend alle PNGs, die es importiert, nicht ändert. In meinen Experimenten ist es in Ordnung, JPGs zu importieren. Andere lustige Nebeneffekte sind die Tatsache, dass der Versuch, Storyboards in Xcode 6.4 zu bearbeiten, zum Absturz von Xcode 6.4 führt.

Wenn Sie also sowohl Xcode 7.x als auch Xcode 6.4 benötigen, installieren Sie keine iOS 9.x-Simulatoren von den Xcode 7-Installationen.

    
dmaclach 03.12.2015 18:45
quelle
4

Nach (teilweise) dem Rat von @drmaclach habe ich diese Schritte befolgt und die lästigen -[CUIThemeRendition ...] -Fehler beseitigt (ich benutze Xcode 6.4 und Mac OS X 10.11.1)

  • In Xcode gehen Sie zu Fenster - & gt; Projekte, finden Sie Ihr Projekt und klicken Sie auf die Schaltfläche "Löschen" für "Abgeleitete Daten"
  • Beenden Sie Xcode und iOS Simulator
  • lösche iOS 9.0.simruntime von /Library/Developer/CoreSimulator/Profiles/Runtimes
  • Öffnen Sie das Projekt in Xcode erneut und führen Sie unter Projekt einen Clean-Build-Ordner aus, wenn Sie die Optionstaste
  • gedrückt halten
race_carr 07.12.2015 00:47
quelle
0

Versuchen Sie, .png zu .jpg umzuwandeln, mein .png zeigt nicht auch, aber .jpg ist sichtbar. Oder leg sie nicht in Images.xcassets.

    
Mandroid 07.10.2015 14:56
quelle
0

Ich hatte das gleiche Problem nach der Installation von XCode6.4. Ich habe es gewandelt, indem ich alle Bilder in .jpg für .xcassets katalogisiert habe.

    
Karen Lusinyan 02.11.2015 11:13
quelle