从 Xcode 启动 iOS 模拟器并得到黑屏,然后 Xcode 挂起并且无法停止任务
Posted
技术标签:
【中文标题】从 Xcode 启动 iOS 模拟器并得到黑屏,然后 Xcode 挂起并且无法停止任务【英文标题】:Launch iOS simulator from Xcode and getting a black screen, followed by Xcode hanging and unable to stop tasks 【发布时间】:2013-01-18 01:44:37 【问题描述】:我在 ios 模拟器中运行我的基本 iPhone 应用程序时遇到了问题(在完成斯坦福 iTunes CS193p 讲座时)。
我已经搜索了一段时间(Google 和 SO),但到目前为止找不到解决方案。有很多类似的错误,但解决方案似乎无法解决此问题。
在 Xcode 中,我单击“运行”。它编译和构建成功,启动 iOS 模拟器,但它永远不会加载应用程序。只有顶部的状态栏。黑屏。
我只编写了非常基本的代码(在讲座之后),无法解决这个问题。
为了让事情更加混乱,我在这些讲座之前写了一个网络包装器(UIWebView)
,这很好用。但是代码几乎没有任何区别。我从头开始创建的所有新应用程序都因相同的黑屏问题而失败。
如果我点击模拟器上的主页按钮并启动应用程序,它将显示。但 Xcode 似乎并不知道发生了什么。
就好像 Xcode 失去了与 iOS 模拟器对话的能力并假设它正在运行(即使我退出了 iOS 模拟器)。我尝试退出 Xcode,它要求我停止任务。然后它就挂了。所以我必须强制重启才能退出Xcode。
我正在使用: OSX 10.8.2 Xcode 4.5.2 iOS 模拟器 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
【问题讨论】:
我有时会这样。它与项目代码完全无关,是 XCode 的一些错误或问题。它也发生在早期版本(XCode 4.x)中。没有办法,只能强行退出。 是的,我强制退出,重新启动计算机,然后启动 Xcode。此外,您可能想删除 Xcode 管理器(项目部分)中的“派生数据” 如果您的模拟器不适合您的屏幕,您可能会看到带有白色背景的基本教程应用程序的底部。通过滚动、旋转或缩放窗口(command+3)你可以找到。这对于初学者来说可能并不明显,因此它可以帮助某人。 【参考方案1】:Macbook Air 进入睡眠状态后,在 2021 年 12 月使用 iOS 13.7 模拟器遇到了这个问题。模拟器屏幕是黑色的,没有生命迹象。重置模拟器没有帮助。关闭所有窗口并重新启动笔记本电脑并没有帮助。最终,syspolicyd
占用了 350% 的 CPU。杀死这个进程解决了这个问题。
【讨论】:
以上是关于从 Xcode 启动 iOS 模拟器并得到黑屏,然后 Xcode 挂起并且无法停止任务的主要内容,如果未能解决你的问题,请参考以下文章