Ich entwickle eine iPhone-App für iOS 6.1 und 7 (mit Xcode 5). Ich habe ein Problem mit iPad-Startbildern.
Auf dem iPad 7.0 und 7.0.2 wird das Startbild nicht angezeigt (in 6.1 funktioniert!): Ich bekomme einen schwarzen Bildschirm, während die App geladen wird.
Dieses Problem tritt mit iPhone 6.1 und 7.0.2 nicht auf, obwohl ich alle für iPad und iPad Retina (Querformat und Hochformat) erforderlichen Startbilder festgelegt habe und den Asset-Katalog verwende.
Was vermisse ich?
Ich habe Apple-Support angefragt und es stellte sich heraus, dass es sich um einen Fehler handelt. Sie baten mich, es zu melden, und ich tat es. Hier ist die Report-ID: 15340531. Jetzt liegt es an ihnen.
Vor kurzem hatte ich dasselbe Problem mit meiner App, die nur für das iPhone entwickelt wurde. Ich hatte das Problem, dass die Startbilder nicht auf dem iPad angezeigt wurden. (Auf dem iPad ios> = 7.0.x wird das Startbild nicht angezeigt (In iPad ios <7.0.x funktioniert es gut)).
Ich bin nicht mit dieser Ausgabe des Startbildes konfrontiert. Das iPhone funktionierte in allen iOS-Versionen einwandfrei.
Lösung : Zum Aktualisieren des Asset-Katalogs, um die Bilder Ihrer App zu verwalten und nur iOS 6 und Prior als Ziel festzulegen.
Schritte :
Schritt 1:
Schritt 2:
Schritt 3: Klicken Sie in der rechten oberen Ecke auf das Symbol 'Attribute Inspector'. Hier können Sie das Ziel-Betriebssystem für die Startbilder festlegen.
Deaktivieren Sie die Kontrollkästchen für iOS 7 für iPhone. Jetzt sollten Sie die Startbilder für iPad unter iOS> = 7.0.x sehen können.
Wenn Sie die gleiche Situation wie meine haben, ist das die Lösung:
Meine App ist nur im Querformat, nur iOs7, ipad\iphone (XCode 5).
Problem: Schwarzer Start auf dem iPhone (und Simulator), normaler Start im iPad.
Lösung : gehe zu Images.xcassets - Bilder starten - wähle es aus. Deaktivieren Sie rechts alle "iOs7 und späteren" - Felder. Aktivieren Sie die Kontrollkästchen "iOs6 und vor" und füllen Sie leere Felder mit Bildern.
Seltsam, aber funktioniert.
Laut Apples Dokumentation ( link ); Ein leeres iPad-spezifisches Storyboard könnte die Antwort sein. Ich habe auch Probleme gesehen, bei denen der anfängliche View-Controller nicht in einem Storyboard festgelegt ist und einen schwarzen Bildschirm verursacht. Eine Variante dieses Problems könnte eine falsche Einstellung in der App-Liste sein.
Technische Fragen und Antworten QA1780 Warum startet meine App auf einem schwarzen Bildschirm auf dem iPad?
F: Warum startet meine App auf einem schwarzen Bildschirm auf dem iPad?
A: Apps, die nur für das iPhone entwickelt wurden, werden möglicherweise auf einem iPad als leerer Bildschirm angezeigt. Dies ist auf ein leeres iPad-spezifisches Storyboard im App-Bundle sowie einen iPad-spezifischen UIMainStoryboardFile-Schlüssel in der Information Property List (Info.plist) -Datei der App zurückzuführen. Beide werden automatisch von den verschiedenen Xcode-Vorlagenprojekten erstellt, wenn die Option Universal ausgewählt ist.
...
In Xcode
Suchen Sie im Datei-Navigator nach einer Datei mit dem Namen MainStoryboard_iPad.storyboard. Wenn diese Datei vorhanden ist, entfernen Sie sie aus Ihrem Projekt.
In der Liste der Eigenschaften Ihrer App
Suchen Sie nach einem Schlüssel mit dem Namen Basis Storyboard-Dateiname (iPad) oder UIMainStoryboardFile ~ ipad. Wenn dieser Schlüssel vorhanden ist, entfernen Sie ihn. Sie sollten auch alle anderen Schlüssel entfernen, die mit (iPad) oder ~ ipad versehen sind.
Zum Schluss testen Sie Ihre App auf einem iPad oder im iPad-Simulator und stellen Sie sicher, dass sie sich wie erwartet verhält.
Ich hatte ein ähnliches Problem, bis ich in den General Project Settings die folgenden Einstellungen gefunden habe.
Main.storyboard
.LaunchScreen.storyboard
. (Dies hatte ich ursprünglich verboten.)Danach wurde zuerst der Startbildschirm geladen, und dann wurde das Haupt-Storyboard kurz darauf geladen.
Stellen Sie das Bild erneut ein. Stellen Sie sicher, dass die Auflösung des Begrüßungsbildschirms den Richtlinien von iOS 7 entspricht
Nachdem ich mehrere Lösungen ausprobiert hatte, vermutete ich, dass das iPhone im Querformat starten wollte und somit kein entsprechendes Startbild fand. Tatsächlich startete der Simulator aus einem Grund, den ich nicht verstand, in Landscape.
Nach der Lektüre der Apple-Dokumentation fand ich schließlich heraus, dass die Reihenfolge der Schlüssel in "Unterstützte Schnittstellenorientierungen" der Datei "info.plist" wahrscheinlich nicht ausreicht. Das Portrait war der letzte Punkt. Wenn es sich um das erste Element handelt, wird die App im Portrait-Modus gestartet und das Bild gesucht.
Ich weiß, das klingt dumm. Ich hatte solche Fehler, als ich eine Datei im psd-Format mit einer jpg-Erweiterung gespeichert habe. Nur ein falscher Klick beim Speichern Ihres Startbildes.
Entfernen Sie die zuvor installierte App vom Gerät oder Simulator. Starten Sie anschließend die App nach dem Reinigen neu.
Ich hatte das Problem, dass die Startbilder in iOS 7 nicht auf dem iPhone (3,5 oder 4 Zoll) angezeigt würden, das iPad hatte jedoch keine Probleme mit iOS 7.
Um es kurz zu machen: Ich habe den Asset-Katalog nur für die Startbilder deaktiviert. Also füge ich die Startbilder auf altmodische Weise hinzu. Das scheint das Problem gelöst zu haben.
Ich werde morgen weitere Tests durchführen müssen, aber es scheint, dass das Problem gelöst ist (zumindest in meinem Fall).
Dies ist ein Update für iOS 8.
Ich hatte das gleiche Problem, als ich versuchte, meiner iOS 8-App ein LaunchImage
hinzuzufügen.
Apple ermöglicht Entwicklern die Verwendung einer Xib, deren Standardname LaunchScreen.xib
ist, um die Startansicht ab iOS 8 darzustellen. Ich glaube, Entwickler können entweder LaunchImage
oder LaunchScreen.xib
verwenden. Leider konnte ich kein Dokument finden, das beschreibt, wie mit LaunchImage
umgegangen wird, nachdem LaunchScreen.xib
eingeführt wurde. Ich habe immer einen schwarzen Bildschirm erhalten, als ich LaunchImage
als Startansicht verwenden wollte.
Meine Lösung ist:
Denken Sie nicht an LaunchImage
. Verwenden Sie LaunchScreen.xib
. (Sie müssen jedoch ein LaunchImage
in Ihrem Asset-Katalog leer lassen. Ich glaube, es ist ein Fehler.)
Ziehen Sie ein UIImageView
auf das Xib und machen Sie das UIImageView
-Vollbild. Denken Sie daran, die Größenklassen und Einschränkungen zu berücksichtigen.
Stellen Sie ein Bild, dessen Auflösung für iPhone 6 plus ausreicht, auf UIImageView
.
Ich habe diese Antwort gefunden, die für unsere App (nur für iPhone, aber für iPad) funktionierte: https://stackoverflow.com/a/19448782/1258419
Um diese Antwort zusammenzufassen:
Wie es geht. Gehen Sie zum Asset-Katalog. Klicken Sie oben rechts auf das Symbol 'Attribute Inspector'. Hier können Sie das Ziel-Betriebssystem für die Startbilder festlegen. Deaktivieren Sie die Kontrollkästchen für iOS 7 für iPhone. Jetzt sollten Sie die Startbilder für diese Geräte sehen können.
in Xcode 5 , make sure thay you add all needed images mentioned in your app target.
In der Landschaft ist ein ähnliches Problem aufgetreten. Mein iOS 7-Startbild wurde während iOS 6 nicht angezeigt. Mein war das iPhone Retina 3.5 "Startbild.
Da ich eine andere App im Portrait habe, die dieses Problem nicht mitteilte, habe ich zwei Dinge getan:
In info.plist unter "Unterstützte Schnittstellenorientierungen" habe ich auch die Hochformat-Modi 2 hinzugefügt und sie vor die Landschaft gestellt, wie zB
Item 0: Portrait (top home button)
Item 1: Portrait (bottom home button)
Item 2: Landscape (right home button)
Item 3: Landscape (left home button)
Diese Methode wurde im View Controller implementiert:
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
Dies funktioniert mit oder ohne den Asset-Katalog.
Ich gehe davon aus, dass Sie bei der Verwendung von Asset Catalog sichergestellt haben, dass Sie die Zielmitgliedschaft Images.xcassets korrekt hinzugefügt haben. Ich erwähne dies, denn wenn Sie mehrere Ziele haben, müssen Sie diese manuell hinzufügen (und Sie haben keine Screenshots erstellt, damit Sie sicher sein können).
Nachdem Sie in Ihrem Projekt nicht wirklich einen Screenshot der "LaunchImage" -Übersicht des Images.xcassets-Ordners bereitgestellt haben, kann ich nur den möglichen Grund vermuten. Wenn man sich die Tatsache anschaut, dass die Launch-Bilder für iPhone (6.1 & 7.0.2 und iPad (6.1) und nicht nur für iPad (7.0 und höher) funktionieren, denke ich, könnte man vielleicht schauen, ob die Dimension der Bilder für iPad Portrait und iPad Landscape eignen sich für iOS 7. Insbesondere sollten Sie Ihre Startbilder und keine leeren Rechtecke sehen, wie auf dem beigefügten Bild -__ dargestellt.
Dies kann darauf zurückzuführen sein, dass die iPad-Startbilder für iOS7 immer noch erstellt wurden, mit Ausnahme des Statusleistenbereichs. Vor iOS7 wurden die Startbilder des iPad erstellt, um den Statusleistenbereich auszuschließen. Unter iOS7 ist es jedoch ein Muss, dass alle Startbilder den Statusleistenbereich enthalten müssen. Lesen Sie den Abschnitt "Was jede App tun muss" in der Benutzeranleitung zum Übergang von Apple iOS7 UI ( https://developer.Apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/TransitionGuide.pdf ) durch.
Der folgende Screenshot sollte erklären, worüber ich spreche -
z.B. Sie können sehen, dass die Bildgröße des iPad Landscape Retina für iOS6.1 und älter 2048x1496 ist (außer 40 px für die Statusleiste). Die Größe für das gleiche Bild für iOS7.0 und höher wird jedoch mit 2048x1536 (einschließlich der 40px für die Statusleiste) erwartet ). Wenn Sie also Ihre Bilder nicht entsprechend geändert haben, wird auf dem iPad 7.0 und höher ein schwarzer Bildschirm für Bilder angezeigt. Auf iPhones wird dieses Problem nicht auftreten, da iPhone-Startbilder immer die Statusleiste (iOS6.0 und iOS7.0) abdecken. Daher ist die neue Benutzeroberflächenanforderung für iPhone-Startbilder bereits erfüllt.
Ich hatte das gleiche Problem ... Ich musste eine Problemumgehung machen: Verwendete das Standard-Image für alle iOS-Versionen und löschte den UILaunchImageFile-Schlüssel aus info.plist.
Ich kann nicht verschiedene Startbilder für iOS 7 und frühere Versionen verwenden, daher musste ich dasselbe "künstlerische" Bild für alle verwenden, stattdessen ein Bild, das die erste Ansicht der App nachahmt (was Apple empfiehlt und ich bevorzuge), jedoch bei Zumindest bekomme ich den schwarzen Bildschirm nicht mehr.
Es sieht so aus, als ob der Schlüssel UILaunchImageFile, der die Verwendung unterschiedlicher Startbilder für iOS 7 und frühere Versionen ermöglicht, für Retina iPad unter iOS 7 nicht ordnungsgemäß funktioniert.
WARNUNG: Ich teste immer noch die App, daher weiß ich nicht, ob es Nebenwirkungen geben kann.
Ich hatte auch ein ähnliches Problem, aber die Lösung war einfach (in meinem Fall).
Alles was ich tat war folgen -
1.Fügen Sie eine neue Datei hinzu (wenn Sie sie nicht hinzugefügt haben) Launchscreen.storyboard
2.Erhalten Sie eine UIViewController
, markieren Sie sie als Is Initial View Controller
, fügen Sie eine UIImageView
hinzu und legen Sie ein Bild fest, das Sie beim Start Ihrer App anzeigen möchten. Stellen Sie sicher, dass Sie diese UIImageView
-erforderliche Einschränkung angeben.
3. Gehen Sie zu Projekt-> Allgemein-> Anwendungssymbole und starten Sie Bilder, und wählen Sie Launchscreen.storyboard als Launch Screen-Datei aus (es wird ein Dropdown-Menü angezeigt).
Überprüfen Sie alle Bilder und prüfen Sie, ob sie ordnungsgemäß im Asset platziert sind und deren Namen und Größe richtig sind.
Prüfen Sie auch, welche Ausrichtungen Sie zulassen, und fügen Sie dem Asset entsprechend Bilder hinzu.