Xcode에서 iOS 시뮬레이터를 시작하고 검은 색 화면이 나타난 후 Xcode가 중단되고 작업을 중지 할 수 없음


85

iOS 시뮬레이터에서 기본 iPhone 응용 프로그램 (Stanford iTunes CS193p 강의를 진행하는 동안)을 실행하는 데 문제가 있습니다.

나는 잠시 (구글과 SO 모두) 검색했지만 지금까지 해결책을 찾을 수 없습니다. 유사한 버그가 많이 있지만 솔루션으로 해결되지 않는 것 같습니다.

Xcode에서 "실행"을 클릭합니다. 성공적으로 컴파일 및 빌드되고 iOS 시뮬레이터를 시작하지만 앱을로드하지 못합니다. 상단의 상태 표시 줄 만. 검은 화면으로.

나는 매우 기본적인 코드 (강의와 함께) 만 작성했고이 문제를 극복 할 수 없다.

문제를 더 혼동하기 위해 저는 (UIWebView)이 강의 전에 웹 래퍼 를 작성 했으며 이것은 잘 작동합니다. 그러나 코드에는 거의 차이가 없습니다. 처음부터 새로 만든 모든 앱이 모두 동일한 검은 색 화면 문제로 실패합니다.

시뮬레이터의 홈 버튼을 누르고 앱을 실행하면 표시됩니다. 그러나 Xcode는 무슨 일이 일어나고 있는지 알지 못하는 것 같습니다.

마치 Xcode가 iOS Simulator와 통신 할 수있는 기능을 잃어 버리고 실행 중이라고 가정합니다 (iOS 시뮬레이터를 종료하더라도). Xcode를 종료하려고하면 작업을 중지하라는 메시지가 표시됩니다. 그러면 그냥 멈 춥니 다. 그래서 Xcode에서 나오려면 강제로 재시작해야합니다.

나는 사용하고있다 : 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

1
나는 때때로 이것을 얻는다. 프로젝트 코드와는 전혀 관련이 없으며 XCode의 일부 버그 또는 문제입니다. 이전 버전 (XCode 4.x)에서도 발생했습니다. 해결책은 없지만 강제 종료합니다.

1
네, 강제 종료하고 컴퓨터를 다시 시작한 다음 Xcode를 시작합니다. 또한 Xcode 구성 도우미 (프로젝트 섹션)에서 "파생 데이터"를 삭제할 수도 있습니다.
MCKapur

2
시뮬레이터가 화면에 맞지 않는 경우 기본 튜토리얼 앱의 하단에 흰색 배경이 표시 될 수 있습니다. 창을 스크롤, 회전 또는 크기 조정 (command + 3)하면 알 수 있습니다. 이것은 초보자에게는 명확하지 않을 수 있으므로 누군가에게 도움이 될 수 있습니다.
DiegoG

답변:


94

놀랍게도 저에게 효과가 있었던 것은 iOS 시뮬레이터 메뉴로 가서 "콘텐츠 및 설정 재설정"을 누르는 것입니다. (iOS 13에서는 하드웨어 아래)


11
Jep, 그게 나를 위해 트릭을 했어! 해당 옵션을 찾을 수없는 경우 : 시뮬레이터를 시작한 다음 메뉴 표시 줄 (화면 상단)에서 선택하십시오 iOS-Simulator -> Reset Content and Settings.
Timo

9
전혀 도와주지 않았어요 : ((
mimic

1
@daylight 귀하의 의견에 감사드립니다. 이 문제는 하나의 특정 프로젝트에만 존재하며이 프로젝트는 테스트 목적으로 만 만들어 졌기 때문에 크게 신경 쓰지 않습니다.
모방

1
@mimic try runningxcrun simctl shutdown all
Rish

1
이 설정은 이제 "장치"메뉴 표시 줄에 있습니다
izhang05

43

에뮬레이터를 재설정하기 전에 먼저 프로젝트 " project navigator "화면으로 이동하여 일반 -> depoyment 정보 화면에서 기본 인터페이스 속성이 올바르게 설정되었는지 확인하십시오!

여기에 이미지 설명 입력


이것은 나를 위해 일했습니다! 내 문제는 장치에 있었지만. 시작 이미지 후에는 상태 표시 줄과 함께 검은 색으로 변합니다. appDelegate에서 applicationDidLaunchWithOptions에 도달하지도 않습니다.
SleepNot

솔직히 말해서 iOS를 처음 접했지만 앱이 시작시 예외를 던지는 것처럼 들립니다. 에뮬레이터에서 제대로 작동 했습니까? 에뮬레이터를 통해 실행 해보고 로그를 살펴볼 수 있습니다.이 경우 예외가 무엇인지 표시 할 수 있습니다
Chris

아니, 이제 괜찮아. 예외를 출력하지 않았고 로깅을 시도했습니다. 당신의 대답은 나를 위해 그것을 해결했습니다.
SleepNot

여기에 비슷한 문제가 있습니다. 다음 섹션 "앱 아이콘 및 실행 이미지"에서 "실행 화면 파일"이 설정되지 않았습니다. 일단 설정되면 UI가 다시 생겼습니다.
Wizard of Kneup 2015

메인 스토리 보드를 삭제하고 다시 추가했는데, 이로 인해 프로젝트 설정 "Main Interface"가 공백이되었습니다. 정말 감사합니다! 내 미스터리를 고쳤습니다.
Michelle

16

SwiftUI를 사용하는 경우

이전 버전의 Xcode 11에서 업데이트하는 경우 SceneDelegate willConnectTo session: options connectionOptions초기화에 몇 가지 변경 사항이 있습니다.

메인 window은 이제를 사용하여 초기화 UIWindow(windowScene: windowScene)됩니다.UIWindow(frame: UIScreen.main.bounds)

이전 버전 :

    let window = UIWindow(frame: UIScreen.main.bounds)
    window.rootViewController = UIHostingController(rootView: ContentView())
    self.window = window
    window.makeKeyAndVisible()

새 버전 :

    if let windowScene = scene as? UIWindowScene {
        let window = UIWindow(windowScene: windowScene)
        window.rootViewController = UIHostingController(rootView: ContentView())
        self.window = window
        window.makeKeyAndVisible()
    }

1
이것은 비교적 새로운 기술이기 때문에 대단히 감사합니다. 이 대답을 찾는 것은 약간 어려웠으며 내 솔루션에 대한 대답이었습니다!
Yuliani Noriega

정말 감사합니다. 모든 것을 시도했습니다. 공유 해주셔서 감사합니다.
Nalov

9

저는 iOS 앱 개발의 초보자입니다. 저는 처음부터 iOS 앱 개발을 연습하고 있었고 매우 기본적인 Hello World 앱을 실행하는 동안 iOS 시뮬레이터에서 앱을 빌드하고 실행 한 후 검은 색 빈 화면 만 나타나는 동일한 문제에 직면했습니다. 어떻게 든 문제에 대한 해결책을 찾기 위해 고군분투하는 동안 실수로 iOS 시뮬레이터에서 Window-> Scale-> 50 %를 클릭했는데 문제가 해결되었습니다. 그런 다음 내 앱이있는 홈 페이지를 볼 수 있었고 앱 아이콘을 클릭하여 앱을 성공적으로 실행할 수있었습니다. 앱 버전 : Xcode 5.1 iOS 시뮬레이터 : 7.1 OSX : 10.9.3


6

이는 올바른 배포 정보를 설정하지 않았기 때문일 수 있습니다. (즉, 스토리 보드가 기본 인터페이스로 설정되지 않은 경우)


나는 마침내 내가보고 깨달았다 LaunchScreen.storyboard 내가 함께 일하고해야 할 때 Main.storyboard. 그것을 알아 냈을 때 화면에 내용이 나타납니다. 여기에 포인터 주셔서 감사합니다
진 보

5

컴퓨터를 다시 시작하면됩니다.


1
때로는 간단한 물건 작품, 내 아이 패드 응용 프로그램 검은 화면 해결
Heestand XYZ

5

해결 방법 1 :Quit simulator 다시 시도 할 수 있습니다 .

해결 방법 2 (권장) : 이동 iOS Simulator->Reset Content and Settings...

1 단계

그러면 다음과 같은 경고가 나타납니다. 'Are you sure you want to reset the iOS Simulator content and settings?'

2 단계

원하는 Reset경우 선택 하거나 다른 Don't Reset버튼을 클릭합니다.

시뮬레이터 콘텐츠를 재설정하면 시뮬레이터에 설치된 모든 앱이 삭제되고 초기 설정으로 재설정됩니다.


5

또 다른 해결책은 Objective C 프로젝트에서 프로그래밍 방식으로 UI를 빌드하는 경우 뷰를 부풀리기 위해 코드를 추가해야 할 수 있으므로 창 인터페이스가 코드와 상호 작용하도록이 3 줄을 추가해야합니다 (외부 2 실제로 코드와 상호 작용하고 다른 하나는 화면을 흰색으로 변경하여 작동하는지 알 수 있습니다.)

- (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;
}


1

다른 프로젝트에서 스토리 보드를 복사 한 후 화면이 검게 나오면이 작업을 수행했는지 확인하십시오. 여기에 이미지 설명 입력


0

나는 이것에 대한 해결책을 찾았습니다. 이 블로그 게시물에 의해 발견되었습니다.

http://vandadnp.wordpress.com/2012/03/18/xcode-4-3-1-cannot-attach-to-ios-simulator/

해결책은 cmd + shift +, (명령, 시프트, 쉼표 ",") ..를 눌러 릴리스 또는 디버깅을위한 몇 가지 옵션을로드하는 것입니다.

디버거를 LLDB에서 GDB로 변경하십시오. 이렇게하면 문제가 해결됩니다.


1
GDB 디버거는 더 이상 사용되지 않으며 Xcode 4.6이이를 지원하는 마지막 버전입니다. developer.apple.com/library/mac/#releasenotes/DeveloperTools/…
Aaron Brager 2013

0

시뮬레이터 문제인지 확인하려면 코드를 변경하지 않고 새로운 프로젝트로 시뮬레이터에 연결할 수 있는지 확인하십시오. 탭 표시 줄 템플릿을 사용해보세요.

시뮬레이터 문제라고 생각되면 iOS 시뮬레이터 메뉴를 누르십시오. "콘텐츠 및 설정 재설정 ..."을 선택합니다. "재설정"을 누르십시오.

XIB와 Interface Builder에서 연결 한 @properties를 볼 수 없지만 창을로드하지 않거나 창에서 뷰 컨트롤러를로드하지 않을 수도 있습니다.


안녕 Aaron, 응답 해 주셔서 감사합니다. 빈 프로젝트 (탭 막대 및 빈 응용 프로그램)를로드하려고했습니다. 같은 문제가 있습니다. LLDB 디버거를 사용하면 매번 실패 합니다 . GDB로 전환하면 정상적으로 작동합니다. 4.6 이후에 더 이상 사용되지 않는 것에 대한 내 대답에 대한 귀하의 의견을 아래에서 보았습니다. 나는 그 때가 오면 무언가가 작동하기를 바랍니다. 그것이 주요 문제인 것 같기 때문입니다.
Matt

0

Xcode와 동일한 문제가 발생했습니다 ... 앱 실행시 검은 색 화면, 디버깅 및 클릭이 Xcode를 잠급니다.

마침내 문제를 발견했습니다 ... 시뮬레이터가 Xcode에 연결할 수 없다는 리드에 따라 etc / hosts 파일을 살펴보고 몇 달 전에 다른 문제를 해결하기 위해 호스트 파일을 편집하여 localhost를 내 기본값 대신 고정 IP ... 내 값 :

10.0.1.17 로컬 호스트

이것이 내 IP이기 때문에 작동하지만 기본 IP 고정 Xcode로 다시 변경합니다.

127.0.0.1 로컬 호스트

도움이 되었기를 바랍니다.


0

나는 doug가 제안한 것 ( "Reset Content and Settings")을하고 있었는데, 이것은 작동하지만 많은 시간이 걸리고 정말 짜증이납니다. 최근에 훨씬 더 빠르고 지금까지 작동하는 것처럼 보이는 완전히 우연한 또 다른 해결책을 발견하기 전까지! 시뮬레이터에서 cmd + L을 누르거나 화면을 잠그는 시뮬레이터 메뉴 "하드웨어-> 잠금"으로 이동합니다. 화면을 잠금 해제하면 앱이 아무 일도 일어나지 않은 것처럼 작동합니다. :)


0

나에게 일어난 일은 내 뷰 컨트롤러에 연결된 스크립트의 클래스 유형이 UIViewController가 아니었다는 것입니다. 그것은 UITabController ..... 용이었습니다. 실수로 잘못된 유형의 클래스를 만들었습니다 .... 그러니 올바른 유형인지 확인하십시오 .. 누군가에게 도움이되기를 바랍니다. 나는 서두르고이 실수를 저질렀다.


0

시뮬레이터-> 콘텐츠 및 설정 재설정을 클릭하여 시뮬레이터를 재설정하십시오.


0

하드웨어-> 재부팅, 하드웨어-> 홈으로 이동하여 앱을 클릭 할 수도 있습니다.



0

이전 iOS 버전에서 시뮬레이터를 제거한 후에 만이 문제를 해결했습니다.


0

iOS 11 시뮬레이션 전용 검은 색 시뮬레이터 화면이있었습니다. 내 컴퓨터에서 재설정, 재부팅, 재설치 및 새로운 사용자 계정 생성을 시도한 후이 솔루션을 찾았습니다.

defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3

이 답변에서 찾을 수 있습니다 : Xcode 10 베타 설치 후 Xcode 9 iOS 시뮬레이터가 검은 화면이 됨


0

모든 뷰에 대한 모든 제약 조건을 확인하고 전체 스토리 보드를 검토하십시오. 일반적으로 이것은 그 때문에 발생합니다.

감사합니다, Arora


0

최근에 Xcode 11 베타 3으로 업데이트하고 이전 SwiftUI 프로젝트를 실행하려는 경우 뷰가로드되는 SceneDelegate에서 일부 변경을 수행해야합니다. 그렇지 않으면 iOS 13 베타 3을 실행하는 장치에서 화면이 검은 색으로 유지됩니다. 모든 시뮬레이터를 포함합니다.

    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()
    }
}

행동은 엄격하게 시뮬레이터에만 국한되지 않지만 대부분의 사람들이 시뮬레이터에서만 베타 소프트웨어를 실행하기 때문에이 상황에서만 발생합니다. 그것은 나를 꽤 당황하게했기 때문에 그것이 도움이되기를 바랍니다.


0

Xcode 11.1에서 프로젝트를 수행했을 때 그 문제가 발생했습니다. 그 검은 화면 문제는 ViewController 간의 프레젠테이션에서 발생할 수 있습니다.

대답이 도움이되었습니다. 모달 프레젠테이션은 iOS 13에서 변경 되었기 때문에 iOS 13 이전에 문제가 발생하지 않으면 프레젠테이션 전에 ViewController에 아래 줄을 추가해보십시오.

viewController.modalPresentationStyle = .fullScreen

코드가 아래와 같이 보일 수 있습니다.

let vc = UIViewController()
vc.modalPresentationStyle = .fullScreen //or .overFullScreen for transparency
self.present(vc, animated: true, completion: nil)

0

나는 android studio를 사용하여 flutter를 개발하고 시뮬레이터를 실행하고 있었고 시뮬레이터가 어두웠고 수락 된 답변에 따라 내용을 재설정했습니다. 그러나 그것은 내 문제를 해결하지 못했습니다. 내 CPU가 어떻게 든 충분히 높게 실행 중이 어서 다시 시작했지만 문제가 해결되지 않았습니다. Xcode를 열고 기본 iOS 앱 중 하나를 실행하면 시뮬레이터가 평소와 같이 다시 열렸습니다. Xcode를 닫고 Android Studio를 연 다음 다시 flutter 앱 개발을 시작했습니다.


0

여기에 이미지 설명 입력

이것이이 문제가 발생한 이유였습니다.

어떤 이유로 "Is Initial View Controller"(내 주 View Controller의 경우)가 선택 취소되어로드시 검은 색 화면이 발생했습니다.

이것이 누군가를 도울 수 있기를 바랍니다!


0

iOS 13에서 이와 같은 창 배경색을 설정하여이 질문을 해결했습니다.

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
    }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.