111 votes

Lancement du simulateur iOS à partir de Xcode et obtention d'un écran noir, suivi d'une suspension de Xcode et de l'impossibilité d'arrêter les tâches.

J'ai du mal à exécuter mon application iPhone de base (en suivant les cours de Stanford iTunes CS193p) dans le simulateur iOS.

J'ai cherché pendant un certain temps (à la fois sur Google et sur SO), mais je n'ai pas trouvé de solution jusqu'à présent. Il y a beaucoup de bugs similaires, mais les solutions ne semblent pas résoudre ce problème.

Dans Xcode, je clique sur "run". Il compile et construit avec succès, lance le simulateur iOS mais ne parvient jamais à charger l'application. Seulement la barre d'état en haut. Avec un écran noir.

Je n'ai écrit que du code très basique (en suivant les cours) et je ne parviens pas à résoudre ce problème.

Pour rendre les choses encore plus confuses, j'ai écrit un wrapper web (UIWebView) avant ces conférences et cela fonctionne bien. Mais il n'y a pratiquement aucune différence dans le code. Toutes les nouvelles applications que je crée à partir de zéro échouent toutes avec le même problème d'écran noir.

Si j'appuie sur le bouton Home du simulateur et que je lance l'application, celle-ci s'affiche. Mais Xcode ne semble pas savoir ce qui se passe.

C'est comme si Xcode avait perdu la capacité de communiquer avec iOS Simulator et supposait qu'il est en cours d'exécution (même si je quitte iOS Simulator). J'essaie de quitter Xcode, et il me demande d'arrêter les tâches. Puis il se bloque. Je dois donc forcer le redémarrage pour sortir de Xcode.

Je l'utilise : 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

0voto

Ankur Lahiry Points 139

Je développais Flutter à l'aide d'Android Studio et j'exécutais le simulateur. Le simulateur était sombre et j'ai réinitialisé le contenu comme indiqué dans la réponse acceptée. Mais cela n'a pas résolu mon problème. Mon processeur fonctionnait de manière assez élevée, j'ai donc redémarré, mais cela n'a pas résolu le problème. J'ai ouvert Xcode et lancé une de mes applications iOS natives, le simulateur s'est rouvert comme d'habitude. J'ai fermé Xcode et ouvert Android Studio, puis j'ai recommencé à développer l'application Flutter.

0voto

RVACode Points 88

enter image description here

C'était la raison pour laquelle j'avais ce problème.

Pour une raison quelconque, l'option "Is Initial View Controller" (pour mon View Controller principal) n'était pas cochée, ce qui provoquait l'écran noir au chargement.

J'espère que cela aidera quelqu'un d'autre !

0voto

Mohit Singh Points 104

J'ai remarqué que j'avais accidentellement supprimé var window:UIWindow? ligne de AppDelegate. L'introduire à nouveau a réglé le problème pour moi !

0voto

kbrmys Points 31

J'ai rencontré ce problème en décembre 2021 avec le simulateur iOS 13.7 après que le Macbook Air se soit mis en veille. L'écran du simulateur était noir, sans aucun signe de vie. La réinitialisation du simulateur n'a pas aidé. Fermer toutes les fenêtres et redémarrer l'ordinateur portable n'a pas aidé. Finalement, il s'est avéré que syspolicyd accaparait 350% du CPU. La suppression de ce processus a résolu le problème.

0voto

shashank.b Points 66

Pour moi, le simulateur qui plantait était un iPhone 13 avec iOS 15.2. Aucune des solutions n'a fonctionné.

L'utilisation du processeur du processus "syspolicyd" a augmenté à chaque fois que ce problème s'est produit, mais tuer le processus n'a pas aidé non plus.

En remplaçant l'appareil par un autre (Fichier > Ouvrir le simulateur > iOS 15.2 > iPhone 13 Pro Max), le problème a été résolu. Après cela, j'ai redémarré l'appareil précédent (iPhone 13), et cela a également fonctionné.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X