Ich habe Probleme beim Ausführen meiner grundlegenden iPhone-Anwendung (während ich die Vorlesungen zu Stanford iTunes CS193p durchlaufe) im iOS-Simulator.
Ich habe eine Weile gesucht (sowohl Google als auch SO), konnte aber bisher keine Lösung finden. Es gibt viele ähnliche Fehler, aber die Lösungen scheinen dies nicht zu beheben.
In Xcode klicke ich auf "Ausführen". Es wird erfolgreich kompiliert und erstellt, startet den iOS-Simulator, kann die App jedoch nie laden. Nur die Statusleiste oben. Mit einem schwarzen Bildschirm.
Ich habe nur sehr einfachen Code geschrieben (zusammen mit den Vorlesungen) und kann dieses Problem nicht überwinden.
Um die Sache noch mehr zu verwirren, habe ich (UIWebView)
vor diesen Vorträgen einen Web-Wrapper geschrieben, der gut funktioniert. Aber es gibt kaum einen Unterschied im Code. Alle neuen Apps, die ich von Grund auf neu erstelle, schlagen mit demselben Problem mit dem schwarzen Bildschirm fehl.
Wenn ich die Home-Taste im Simulator drücke und die App starte, wird sie angezeigt. Aber Xcode scheint nicht zu wissen, was los ist.
Es ist, als ob Xcode die Fähigkeit verloren hat, mit iOS Simulator zu kommunizieren, und davon ausgeht, dass es ausgeführt wird (selbst wenn ich iOS Simulator beende). Ich versuche, Xcode zu beenden, und ich werde aufgefordert, die Aufgaben zu beenden. Dann hängt es einfach. Also muss ich einen Neustart erzwingen, um Xcode zu verlassen.
Ich verwende: OSX 10.8.2 Xcode 4.5.2 iOS Simulator 6.0
CalculatorAppDelegate.h
#import <UIKit/UIKit.h>
@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
CalculatorAppDelegate.m
#import "CalculatorAppDelegate.h"
@implementation CalculatorAppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions (NSDictionary *)launchOptions
{
// Override point for customization after application launch.
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
CalculatorViewController.h
#import <UIKit/UIKit.h>
@interface CalculatorViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *display;
@end
CalculatorViewController.m
#import "CalculatorViewController.h"
@implementation CalculatorViewController
@synthesize display = _display;
- (IBAction)digitPressed:(UIButton *)sender
{
NSString *digit = [sender currentTitle];
NSLog(@"digit pressed = %@", digit);
}
@end
quelle
Antworten:
Überraschenderweise funktionierte es für mich, zum iOS Simulator-Menü zu gehen und auf "Inhalt und Einstellungen zurücksetzen" zu klicken. (in iOS 13 unter Hardware)
quelle
iOS-Simulator -> Reset Content and Settings
.xcrun simctl shutdown all
Bevor Sie den Emulator zurücksetzen, rufen Sie zunächst den Bildschirm " Projektnavigator " Ihres Projekts auf und überprüfen Sie unter dem Bildschirm " Allgemein -> Bereitstellungsinformationen" , ob die Eigenschaft der Hauptschnittstelle ordnungsgemäß eingerichtet ist.
quelle
Wenn Sie SwiftUI verwenden
Wenn Sie von einer früheren Version von Xcode 11 aktualisieren, gibt es einige Änderungen an der
SceneDelegate
willConnectTo session: options connectionOptions
Initialisierung:Das Main
window
wird jetzt mit initialisiertUIWindow(windowScene: windowScene)
, wo es früher warUIWindow(frame: UIScreen.main.bounds)
In der vorherigen Version:
let window = UIWindow(frame: UIScreen.main.bounds) window.rootViewController = UIHostingController(rootView: ContentView()) self.window = window window.makeKeyAndVisible()
In neuer Version:
if let windowScene = scene as? UIWindowScene { let window = UIWindow(windowScene: windowScene) window.rootViewController = UIHostingController(rootView: ContentView()) self.window = window window.makeKeyAndVisible() }
quelle
Ich bin ein Neuling in der iOS-App-Entwicklung. Ich habe von Anfang an geübt, iOS-Apps zu entwickeln, und während ich eine sehr einfache Hello World-App ausführte, hatte ich auch das gleiche Problem, dass nach dem Erstellen und Ausführen der App im iOS-Simulator nur ein schwarzer leerer Bildschirm angezeigt wird. Während ich mich bemühte, eine Lösung für das Problem zu finden, klickte ich versehentlich im iOS-Simulator auf Fenster -> Skalieren -> 50% und es löste mein Problem. Ich konnte dann die Startseite mit meiner App sehen und durch Klicken auf das App-Symbol konnte ich meine App erfolgreich ausführen. App-Versionen: Xcode 5.1 iOS Simulator: 7.1 OSX: 10.9.3
quelle
Dies kann darauf zurückzuführen sein, dass nicht die richtigen Bereitstellungsinformationen festgelegt wurden. (dh wenn Ihr Storyboard nicht als Hauptschnittstelle festgelegt ist)
quelle
LaunchScreen.storyboard
wann ich hätte arbeiten sollenMain.storyboard
. Sobald ich das herausgefunden habe, erscheint der Bildschirm mit Inhalt. Vielen Dank für den Hinweis hierLösung 1: Sie können
Quit simulator
es erneut versuchen.Lösung 2 (empfohlen): Gehen Sie zu
iOS Simulator
->Reset Content and Settings...
Daraufhin wird eine Warnmeldung angezeigt
'Are you sure you want to reset the iOS Simulator content and settings?'
Wählen
Reset
Sie, ob Sie möchten oder sonst dieDon't Reset
Schaltfläche.Beachten Sie, dass nach dem Zurücksetzen des Simulatorinhalts alle auf dem Simulator installierten Apps gelöscht und auf die ursprünglichen Einstellungen zurückgesetzt werden.
quelle
Eine andere Lösung besteht darin, dass Sie beim programmgesteuerten Erstellen der Benutzeroberfläche in Objective C-Projekt möglicherweise Code hinzufügen müssen, um die Ansicht aufzublähen. Daher müssen Sie diese drei Zeilen hinzufügen, damit die Benutzeroberfläche des Fensters mit dem Code interagiert (die äußere 2) interagieren tatsächlich mit dem Code und der andere ändert den Bildschirm in Weiß, damit Sie wissen, dass er funktioniert).
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[UIWindow alloc] initWithFrame: [[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. ... self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible]; return YES; }
quelle
Ein Neustart Ihres Computers sollte alles sein, was Sie tun müssen.
quelle
Wenn Sie Ihren Einstiegspunkt in Ihrem Storyboard verlieren oder einfach den Einstiegspunkt ändern möchten, können Sie dies im Interface Builder angeben. Um einen neuen Einstiegspunkt festzulegen, müssen Sie zunächst entscheiden, welcher ViewController als neuer Einstiegspunkt fungieren soll, und im Attributinspektor das Kontrollkästchen Erste Szene aktivieren.
Sie können versuchen: http://www.scott-sherwood.com/ios-5-specifying-the-entry-point-of-your-storyboard/
quelle
Stellen Sie sicher, dass Sie dies getan haben, wenn nach dem Kopieren des Storyboards aus einem anderen Projekt ein schwarzer Bildschirm angezeigt wird
quelle
Ich habe es geschafft, die Lösung dafür zu finden. Es wurde mit freundlicher Genehmigung dieses Blog-Beitrags gefunden:
http://vandadnp.wordpress.com/2012/03/18/xcode-4-3-1-cannot-attach-to-ios-simulator/
Die Lösung besteht darin, cmd + shift + (Befehl, Umschalttaste und dann Komma ",") zu drücken, um einige Optionen zum Freigeben oder Debuggen zu laden.
Ändern Sie den Debugger von LLDB in GDB. Dies behebt das Problem.
quelle
Um sicherzustellen, dass es sich um ein Simulatorproblem handelt, prüfen Sie, ob Sie mit einem brandneuen Projekt eine Verbindung zum Simulator herstellen können, ohne Code zu ändern. Probieren Sie die Vorlage für die Registerkartenleiste aus.
Wenn Sie glauben, dass es sich um ein Simulatorproblem handelt, klicken Sie auf das Menü iOS-Simulator. Wählen Sie "Inhalt und Einstellungen zurücksetzen ...". Drücken Sie "Zurücksetzen".
Ich kann Ihr XIB und die @ Eigenschaften, die Sie in Interface Builder verbunden haben, nicht sehen, aber es kann auch sein, dass Sie Ihr Fenster nicht laden oder dass Ihr Fenster Ihren View Controller nicht lädt.
quelle
Ich hatte das gleiche Problem mit Xcode ... schwarzer Bildschirm beim Starten von Apps, kein Debuggen und Klicken würde Xcode blockieren.
Ich habe endlich das Problem gefunden ... Nachdem ich festgestellt hatte, dass der Simulator keine Verbindung zu Xcode herstellen konnte, habe ich mir meine etc / hosts-Datei angesehen und vor Monaten festgestellt, dass ich die Host-Datei bearbeitet habe, um localhost meinem zuzuordnen, um ein anderes Problem zu lösen feste IP anstelle der Standardeinstellung ... mein Wert:
10.0.1.17 localhost
Dies sollte funktionieren, da dies meine IP ist, aber sie wieder auf den Standard-IP-festen Xcode ändern ...
127.0.0.1 localhost
Hoffe das hilft.
quelle
Ich habe getan, was Doug vorschlägt ("Inhalt und Einstellungen zurücksetzen"), was funktioniert, aber viel Zeit in Anspruch nimmt und wirklich ärgerlich ist ... bis ich kürzlich völlig zufällig eine andere Lösung gefunden habe, die viel schneller ist und auch bisher zu funktionieren scheint! Drücken Sie einfach cmd + L auf Ihrem Simulator oder gehen Sie zum Simulator-Menü "Hardware -> Sperren", das den Bildschirm sperrt. Wenn Sie den Bildschirm entsperren, funktioniert die App so, als wäre nie etwas passiert :)
quelle
Was mit mir passiert ist, war, dass der Klassentyp nicht UIViewController für das an meinen View Controller angehängte Skript war. Es war für einen UITabController ..... Ich hatte fälschlicherweise schnell den falschen Klassentyp erstellt .... Stellen Sie also sicher, dass die Klasse den richtigen Typ hat .. Hoffe, das hilft jemandem. Ich war in Eile und habe diesen Fehler gemacht.
quelle
Setzen Sie einfach Ihren Simulator zurück, indem Sie auf Simulator-> Inhalt und Einstellungen zurücksetzen klicken.
quelle
Sie können auch zu Hardware -> Neustart, dann Hardware -> Start gehen und auf Ihre App klicken
quelle
Stellen Sie sicher, dass Initial View Controller eingestellt ist
quelle
Ich habe dies erst gelöst, nachdem ich Simulatoren mit früheren iOS-Versionen entfernt hatte.
quelle
Ich hatte schwarze Simulatorbildschirme nur für iOS 11-Sims. Nachdem ich versucht hatte, ein brandneues Benutzerkonto auf meinem Computer zurückzusetzen, neu zu starten, neu zu installieren und zu erstellen, fand ich folgende Lösung:
defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3
In dieser Antwort finden Sie hier: Xcode 9 iOS Simulator wird nach der Installation von Xcode 10 Beta schwarz
quelle
Bitte überprüfen Sie alle Einschränkungen für alle Ansichten und überprüfen Sie das vollständige Storyboard. Normalerweise passiert das deshalb.
Grüße, Arora
quelle
Falls Sie kürzlich auf Xcode 11 Beta 3 aktualisiert haben und versuchen, ein älteres SwiftUI-Projekt auszuführen, müssen Sie einige Änderungen im SceneDelegate vornehmen, in das die Ansichten geladen werden. Andernfalls bleiben die Bildschirme auf Geräten mit iOS 13 Beta 3 schwarz, was natürlich der Fall ist Beinhaltet alle Simulatoren.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). // Use a UIHostingController as window root view controller if let windowScene = scene as? UIWindowScene { let window = UIWindow(windowScene: windowScene) window.rootViewController = UIHostingController(rootView: ContentView()) self.window = window window.makeKeyAndVisible() } }
Das Verhalten ist nicht streng auf die Simulatoren beschränkt, aber da die meisten Benutzer Beta-Software ausschließlich auf Simulatoren ausführen, tritt es nur in diesem Zusammenhang auf. Es hat mich eine ganze Weile verwirrt, also hoffe es hilft.
quelle
Wenn ich mein Projekt auf Xcode 11.1 ausgeführt habe, habe ich dieses Problem. Dieses Problem mit dem schwarzen Bildschirm kann bei Präsentationen zwischen ViewControllern auftreten.
Diese Antwort hat mir geholfen. Da sich die modale Präsentation mit iOS 13 geändert hat. Wenn Sie dieses Problem nicht vor iOS 13 haben, versuchen Sie, Ihrem ViewController vor der Präsentation eine Zeile darunter hinzuzufügen.
viewController.modalPresentationStyle = .fullScreen
nachdem Ihr Code wie folgt aussehen mag;
let vc = UIViewController() vc.modalPresentationStyle = .fullScreen //or .overFullScreen for transparency self.present(vc, animated: true, completion: nil)
quelle
Ich habe mit Android Studio ein Flattern entwickelt und den Simulator ausgeführt. Der Simulator war dunkel und ich habe den Inhalt gemäß der akzeptierten Antwort zurückgesetzt. Aber das hat mein Problem nicht behoben. Meine CPU lief irgendwie hoch genug, also habe ich neu gestartet, aber das Problem nicht behoben. Ich habe Xcode geöffnet und eine meiner nativen iOS-Apps ausgeführt. Der Simulator wurde wie gewohnt neu geöffnet. Ich schloss den Xcode und öffnete Android Studio. Dann begann ich erneut mit der Entwicklung der Flatter-App.
quelle
Dies war mein Grund für dieses Problem.
Aus irgendeinem Grund wurde "Ist der anfängliche Ansichts-Controller" (für meinen Haupt-Ansichts-Controller) deaktiviert, was dazu führte, dass der schwarze Bildschirm beim Laden angezeigt wurde.
Hoffe das hilft jemandem da draußen!
quelle
Ich habe diese Frage mit der festgelegten Hintergrundfarbe des Fensters in iOS 13 gelöst:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let _ = (scene as? UIWindowScene) else { return } if let windowScene = scene as? UIWindowScene { window = UIWindow(windowScene: windowScene) window?.backgroundColor = .white let storyBoard = UIStoryboard(name: "Main", bundle: nil) // workaround for svprogresshud let appDelegate = UIApplication.shared.delegate as! AppDelegate appDelegate.window = window } }
quelle