programing

Xcode에서 iOS 시뮬레이터를 실행하고 검은색 화면을 받은 후 Xcode가 매달려 작업을 중지할 수 없습니다.

telecom 2023. 5. 25. 21:31
반응형

Xcode에서 iOS 시뮬레이터를 실행하고 검은색 화면을 받은 후 Xcode가 매달려 작업을 중지할 수 없습니다.

(Stanford iTunes CS193p 강의를 듣는 동안) iOS 시뮬레이터에서 기본적인 아이폰 애플리케이션을 실행하는 데 어려움을 겪고 있습니다.

(Google과 SO 모두) 한동안 검색했지만, 아직까지 해결책을 찾을 수 없습니다.비슷한 버그가 많지만 해결책으로는 해결되지 않는 것 같습니다.

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

저는 아주 기본적인 코드만 작성했고 (강의를 따라) 이 문제를 극복할 수 없습니다.

좀 더 혼란스럽게 하기 위해, 저는 웹 포장지를 썼습니다.(UIWebView)이 강의들과 이것이 잘 작동하기 전에.하지만 코드에 거의 차이가 없습니다.처음부터 새로 만든 모든 앱은 동일한 검은 화면 문제로 모두 실패합니다.

시뮬레이터에서 홈 버튼을 누르고 앱을 실행하면 표시됩니다.하지만 Xcode는 무슨 일이 일어나고 있는지 모르는 것 같습니다.

마치 Xcode가 iOS Simulator와 대화할 수 있는 기능을 상실하고 실행 중이라고 가정하는 것과 같습니다(iOS Simulator를 종료하더라도).Xcode를 종료하려고 하면 작업을 중지하라는 메시지가 나타납니다.그러면 그냥 걸려요.그래서 Xcode에서 벗어나려면 강제로 재시작해야 합니다.

사용 중: OSX 10.8.2 Xcode 4.5.2 iOS 시뮬레이터 6.0

CalculatorApp대리인.

#import <UIKit/UIKit.h>

@interface CalculatorAppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

@end

CalculatorAppDellegate

#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

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

에뮬레이터를 재설정하기 전에 먼저 프로젝트 "프로젝트 탐색기" 화면으로 이동하여 일반 -> 배포 정보 화면에서 메인 인터페이스 속성이 제대로 설정되었는지 확인합니다!

여기에 이미지 설명 입력

Swift를 사용하는 경우UI

11의 이전에는 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()
    }

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

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

저는 몇 시간 동안 이것과 씨름했습니다.결국 제가 해결한 것은 다음과 같습니다.

sudo xcrun simctl erase all

xcrun simctl shutdown all

올바른 배포 정보를 설정하지 않은 경우(예: 스토리보드가 기본 인터페이스로 설정되지 않은 경우) 이 문제가 발생할 수 있습니다.

솔루션 1: 가능Quit simulator다시 시도합니다.

솔루션 2(권장): 이동iOS Simulator->Reset Content and Settings...

1단계

" 면러다음같경팝다니됩업가고은그과다▁stating니▁alert됩▁this팝-업"라는 경고 메시지가 .'Are you sure you want to reset the iOS Simulator content and settings?'

2단계

를 선택합니다.Reset Don't Reset단추를 채우다

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

또 다른 해결책은 목표 C 프로젝트에서 프로그래밍 방식으로 UI를 구축하는 경우 뷰를 부풀리기 위해 코드를 추가해야 할 수도 있습니다.따라서 창의 인터페이스가 코드와 상호 작용하도록 하려면 이 세 줄을 추가해야 합니다(외부 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;
}

스토리보드에서 진입점을 놓거나 진입점을 변경하려는 경우 인터페이스 작성기에서 이를 지정할 수 있습니다.새 진입점을 설정하려면 먼저 새 진입점으로 작동할 ViewController를 결정하고 Attribute Inspector(속성 검사기)에서 Initial Scene(초기 장면) 확인란을 선택해야 합니다.

http://www.scott-sherwood.com/ios-5-specifying-the-entry-point-of-your-storyboard/ 에서 시도할 수 있습니다.

다른 프로젝트에서 스토리보드를 복사한 후 검은색 화면이 나타나면 이 작업을 수행했는지 확인하십시오.

는 이 을 눌 프 정 이 해 습 했 니 결 다 문 를 제 여 리 러 로 젝 트 를 을 ▁the ▁pressing▁by ▁project ▁i 니 ▁this ▁cleaning 습 ▁fixed 다 ▁by
cmd + shift + k
시뮬레이터를 종료하고 다시 만들었습니다.

이었습니다.Device > Shake. 저를 이상하지만 저를 위해 일했습니다.이 작동하지 않는다면을(를)Device > Erase All Content and Settings 흔듭니다을 클릭한 다음 장치를 다시 흔듭니다.

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

저는 이것에 대한 해결책을 찾았습니다.다음 블로그 게시물을 통해 확인할 수 있습니다.

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

솔루션은 cmd+shift+, (명령, shift, 쉼표 ",")를 누르는 것입니다.릴리스 또는 디버깅을 위한 일부 옵션을 로드합니다.

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

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

시뮬레이터 문제라고 생각되면 iOS Simulator 메뉴를 누릅니다.내용 및 설정 재설정을 선택합니다."재설정"을 누릅니다.

XIB와 인터페이스 작성기에서 연결한 @ 속성을 볼 수 없지만 창을 로드하지 않거나 창에서 보기 컨트롤러를 로드하지 않을 수도 있습니다.

저도 Xcode와 같은 문제가 있었습니다.앱 실행 시 검은 화면, 디버깅 및 클릭이 없으면 Xcode가 잠깁니다.

마침내 문제를 발견했습니다...시뮬레이터가 Xcode에 연결할 수 없다는 사실을 알게 된 후, 저는 제 etc/hosts 파일을 살펴보았고 다른 문제를 해결하기 위해 몇 달 전에 호스트 파일을 편집하여 기본값이 아닌 고정 IP에 localhost를 매핑했습니다.내 가치:

10.0.1.17 로컬 호스트

이것은 내 IP이기 때문에 작동해야 하지만, 기본 IP 고정 Xcode로 다시 변경하는 것은...

127.0.0.1 로컬 호스트

이게 도움이 되길 바랍니다.

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

제가 겪은 일은 클래스 유형이 제 뷰 컨트롤러에 연결된 스크립트에 대한 UIViewController가 아니라는 것입니다.UITab 컨트롤러를 위한 것이었습니다...제가 실수로 잘못된 유형의 수업을 빨리 만들었습니다.그래서 올바른 유형이 수업인지 확인합니다.이것이 누군가에게 도움이 되기를 바랍니다.제가 너무 급해서 이런 실수를 했어요.

시뮬레이터-> 콘텐츠 및 설정 재설정을 클릭하여 시뮬레이터를 재설정하기만 하면 됩니다.

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

초기 보기 컨트롤러가 설정되어 있는지 확인합니다.

저는 이전 iOS 버전의 시뮬레이터를 제거한 후에야 이 문제를 해결했습니다.

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

defaults write com.apple.CoreSimulator.IndigoFramebufferServices FramebufferRendererHint 3

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

모든 뷰에 대한 모든 제약 조건을 확인하고 전체 스토리보드를 검토하십시오.보통은 그것 때문에 이런 일이 일어납니다.

안녕, 아로라

최근에 Xcode 11 베타 3으로 업데이트하여 이전 Swift를 실행하려고 하는 경우UI 프로젝트, 보기가 로드되는 장면 대표자에서 몇 가지 변경을 해야 합니다. 그렇지 않으면 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()
    }
}

동작은 시뮬레이터에 엄격하게 제한되지 않지만 대부분의 사람들이 시뮬레이터에서 베타 소프트웨어를 독점적으로 실행하기 때문에 이러한 맥락에서만 발생합니다.한동안 당황스러웠으니 도움이 되길 바랍니다.

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

대답이 저에게 도움이 되었습니다.iOS 13과 함께 모달 프레젠테이션이 바뀌었기 때문입니다.iOS 13 이전에 해당 문제가 발생하지 않으면 프레젠테이션 전에 아래의 행을 View 컨트롤러에 추가해 보십시오.

viewController.modalPresentationStyle = .fullScreen

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

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

저는 안드로이드 스튜디오를 이용해 플래터를 개발하고 시뮬레이터를 실행하고 있었는데, 시뮬레이터가 어두워서 승인된 답변대로 내용을 재설정했습니다.하지만 그것은 제 문제를 해결하지 못했습니다.CPU가 충분히 높게 실행되고 있었기 때문에 다시 시작했지만 문제를 해결하지는 못했습니다.나는 Xcode를 열고 나의 네이티브 iOS 앱 중 하나를 실행했고, 시뮬레이터는 평소와 같이 다시 열렸습니다.저는 Xcode를 닫고 안드로이드 스튜디오를 오픈한 후 다시 Floating 앱을 개발하기 시작했습니다.

여기에 이미지 설명 입력

이것이 제가 이 문제를 갖게 된 이유였습니다.

어떤 이유에서인지 로드 시 검은색 화면이 표시되는 "Is Initial View Controller(기본 View Controller)"(기본 View Controller용)가 선택 해제되었습니다.

이것이 누군가에게 도움이 되기를 바랍니다!

실수로 삭제한 것을 발견했습니다.var window:UIWindow?AppDelegate(앱 대리인)입니다.그것을 다시 소개하면서 저는 문제를 해결했습니다!

언급URL : https://stackoverflow.com/questions/14668445/launch-ios-simulator-from-xcode-and-getting-a-black-screen-followed-by-xcode-ha

반응형