번들에서 'Main'이라는 스토리 보드를 찾을 수 없습니다.


86

'Could not find a storyboard named 'Main' in bundle NSBundle'실제 iOS 기기에서 내 앱을 실행하려고 할 때 이상한 오류가 발생 합니다.

내 디렉토리에 파일이 있으며 시뮬레이터에서 잘 작동합니다. 그러나 Copy Bundle Resources섹션에서 파일 Main.storyboard은 빨간색입니다.

나는 그것을 제거하고 다시 추가하고 Xcode를 다시 시작하고 빌드를 정리하려고 시도했습니다. 이것은 Xcode에서 얻는 경고입니다.

/Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard: Internationalization of /Users/ajay/Documents/avx/avx/Base.lproj/Main.storyboard is not available when compiling for targets before iOS 6.0

이 게시물에서 문제를 해결하는 방법을 설명했습니다. stackoverflow.com/a/21098195/1141395
Alex Cio 2014 년

이 문제는 주로 손상된 앱 설치로 인해 발생합니다. 해결책은 프로젝트를 정리하고 빌드하는 것입니다. 또한 장치 / 시뮬레이터에서 기존 앱을 제거하고 다시 실행하십시오.
Krishnabhadra 2015

Xcode 11 사용자는 stackoverflow.com/a/58452686 아래로 스크롤 하십시오. 아마도 귀하의 경우 일 수 있습니다.
Cemen 20.01.05

답변:


93

프로젝트의 info.plist를 열고 스크린 샷에 표시된 선택한 행을 제거합니다.여기에 이미지 설명 입력

검은 색 화면이 나타나면 새 초기 스토리 보드가 기본 인터페이스로 선택되었는지 확인하십시오. 여기에 이미지 설명 입력


24
감사합니다.하지만 이로 인해 내 앱이 검은 색 화면으로 시작되었습니다. 그래도 충돌이 없습니다.
Carpetfizz 2013 년

다음 두 줄이 있는지 확인하십시오.-(BOOL) application : (UIApplication *) application didFinishLaunchingWithOptions : (NSDictionary *) launchOptions ... : (1) self.window = [[UIWindow alloc] initWithFrame : [[UIScreen mainScreen] 범위]]; (2) self.window.backgroundColor = [UIColor whiteColor];
Joel Hansen

@ Carpetfizz '[self.window makeKeyAndVisible];'추가 AppDelegate에.
Alserda 2015

4
"검은 화면으로 앱 실행", 아무도 이것에 대해 전혀 모르십니까?
Umit Kaya

@Umitk 흰색의 배경 (view.backgroundColor = .white) 또는 같은 다른 색상 당신 설정
스테판 PAQUET

65

Xcode 11에서이 문제에 직면 한 모든 사람을 위해 스토리 보드가 적은 프로젝트 설정을 수행 할 때이 문제가 발생 하는 경우 해결 방법은 다음과 같습니다.

( 리카르도 페레이라가 놓친 일부 부품 추가 )

1) 먼저 Main.storyboard 파일을 삭제합니다.

2) 다음으로 PROJECT_NAME- > GENERAL 로 이동합니다.

기본 인터페이스 드롭 다운에서 Main 텍스트를 삭제합니다.

일반 설정에서 main에 대한 참조 제거

3) 이제 info.plist로 이동하여 스토리 보드 이름을 삭제합니다.

info.plist에서 스토리 보드에 대한 참조 제거

4) 마지막으로 SceneDelegate.swift 파일에서 scene (_ : willConnectTo : options) 코드를 수정합니다 (예! 더 이상 App Delegate에 없습니다.)

var window: UIWindow?


    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).
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScene.coordinateSpace.bounds)
        window?.windowScene = windowScene
        window?.rootViewController = ViewController()
        window?.makeKeyAndVisible()
    }

대신이 비디오를 참조 할 수도 있습니다. https://www.youtube.com/watch?v=Htn4h51BQsk


3
: 당신의 대답은 현장 기능에 약간의 변화가 거의 정확 guard let _ = (scene as? UIWindowScene) else { return } let viewController = ViewController() if let windowScene = scene as? UIWindowScene { self.window = UIWindow(windowScene: windowScene) self.window?.rootViewController = viewController self.window?.makeKeyAndVisible() }
레자 Dehnavi

3
좀 더 강조하기 위해, info.plist 항목은 일반적인 메인 스토리 보드 항목 일뿐만 아니라 iOS 13에 새로 도입 된 애플리케이션 장면 매니페스트의 항목이기도합니다. 깨 달기 전에 두 번 읽어야했습니다.
jboulter11

이것은 지금 일을하는 올바른 방법입니다! ^^ 애플은 계속 변화를 했어요.
Yuchen Zhong

59

스토리 보드의 대상 멤버십을 확인할 수 있습니다. 문제가있는 곳이있을 수 있습니다.

다음과 같이 보일 것입니다.

대상 멤버십


나는 같은 문제가 있었고 처음에는 올바른 리소스를 대상에 복사하지 않는다고 생각했지만 대상 멤버십을 수정하면 문제가 해결되었습니다.
pyj 2014

2
감사합니다! 나는 기쁨없이 Clean, Rename File, Update Plist를 수행했습니다. 당신을 얻는 것은 항상 가장 분명합니다.
Jim Geldermann 2015 년

안녕, 엑스 코드 7, 제발 도움을 저도 같은 문제에 봉착하지만, 대상 회원 창이 표시되지
DrPatience

왠지 내 목표가 선택되지 않았는데 .. 답 해주셔서 감사합니다 .. 해결 !!
Ümañg ßürmån

40

iOS 13.0 이상용으로 생성 된 애플리케이션에 대한 업데이트입니다. (Xcode 11)

info.plist의 "Main storyboard File base name"및 Deployment in Target의 "Main Interface"를 변경 한 후에도 번들에서 'Main'이라는 스토리 보드를 찾을 수 없다는 오류가 발생하는 경우.

그런 다음 info.plist 파일에서 다른 항목을 변경해야합니다.

  1. info.plist 파일을 엽니 다.
  2. "Application Scene Manifest"를 확장합니다.
  3. "장면 구성"을 확장합니다.
  4. "응용 프로그램 세션 역할"에서 항목 0을 확장 한 다음 여기에서 스토리 보드 이름을 변경합니다.

여기에 이미지 설명 입력

그리고 응용 프로그램이 작동하기 시작합니다.


1
이것은 절대적으로 정답입니다. 일반> 기본 인터페이스 드롭 다운에서 기본 스토리 보드를 설정하는 것만으로는 더 이상 충분하지 않습니다.
NRitH

1
감사합니다. "Application Scene Manifest"키 (모든 하위 키와 함께)를 삭제하면 문제가 해결되었습니다.
Greg Brown

1
나는 문학적으로 무슨 일이 일어 났는지 모르겠지만 이것은 작동합니다
Bawantha

1
당신은 내 목숨을 구했습니다 :)
Yusuf Kamil AK

17

UISceneiOS 13 및 Xcode 11에서 사용하는 프로젝트 UISceneStoryboardFile에서 .plist.

Xcode 11 :

xcode11-uiscene

파일에서 직접 변경 :

uiscene-plist


15

휴대폰에서 앱을 삭제하고 Product-> Clean을 수행 한 다음 다시로드했습니다. 그게 전부입니다.


삭제하면 모든 실행에 대해 저만 실행합니다 ... xcode 10.1에서 저를 도와주세요
Aruna M

12

이 오류가 발생했지만 스토리 보드를 완전히 제거하려는 의도였습니다.

내 plist에서 'Main Storyboard file base name'키를 제거하면 오류가 해결되었습니다.


10

번들에서 'Main'이라는 스토리 보드를 찾을 수 없습니다.

내가 생각할 수있는 이유 :

내 iOS 지식이 결론을 내리는 한, 이것은 XCode가 내 프로젝트 디렉토리 내에서 Main.storyboard 파일에 대한 참조를 찾아 앱에 복사 할 수 없기 때문에 발생했습니다.

해결:

  1. Main.storyboard 파일을 선택하고 삭제를 시도했으며 다음과 같은 팝업 대화 상자에서 : 여기에 이미지 설명 입력

  2. "참조 제거"버튼을 클릭했습니다.

  3. 그런 다음 프로젝트 디렉터리 내에서 Main.storyboard 파일을 찾을 수있는 실제 위치에서 XCode로 끌어다 놓은 다음 다음과 같이 팝업되는 대화 상자에서 다시 가져옵니다. 여기에 이미지 설명 입력

  4. "폴더 참조 만들기"를 선택했습니다 (프로젝트의 파일 및 폴더 구조를 변경했기 때문에이 작업을 수행하려고했기 때문입니다). 그러나 대부분의 경우 "그룹 만들기"를 선택하는 것도 효과적 일 수 있습니다. 그리고 "마침"버튼을 클릭했습니다. 내 스토리 보드 파일은 이미 Base.lproj다음과 같이 디렉토리 내에있는 스크린 샷에 표시된대로 이미 있습니다.

    여기에 이미지 설명 입력

    참고 : 이 단계에서 기억해야 할 한 가지 중요한 사항은 앱의 "대상에 추가"확인란을 선택하는 것을 잊지 마십시오.

  5. 제품을 청소하고 재 구축하고 성공하면 대부분의 경우 성공적으로 실행 해보십시오.

이것이 다른 누군가에게 도움이 될 수 있기를 바랍니다! 나는 XCode 7.3.1과 iOS Sim 9.3 및 iPhone 6S에서 이것을 시도했습니다!


os10.14.1 및 xc0de 10.1..am을 설치 한 후에도이 문제가 발생하도록 도와주세요. 3 일부터 해결을 시도했지만 여전히 ..my 프로젝트는 xcode9.1에서 잘 작동합니다 ..
Aruna M

@ArunaM 답변에서 제시 한 위의 단계를 시도 했습니까? 이렇게 한 후 상태는 어땠습니까?
Randika Vishman 2018

1
이것은 동일한 오류를 일으킨 프로젝트에서 ViewController를 제거했을 때의 해결책이었습니다!
Slarty Bartfast

8

다음 단계를 따르십시오.

1) 먼저 스토리 보드를 클릭하세요

2) 그런 다음 File Inspector를 클릭하십시오.

3) 그런 다음 "Target Membership"을 선택합니다.

스크린 샷


6

시뮬레이터는 대소 문자를 구분하지 않지만 장치는 구분합니다. 스토리 보드가 MainStoryBoard가 아니라 MainStoryboard 인 경우 문제가 발생합니다. 그리고 * 확장 기능을 사용하지 말고 스토리 보드 이름 만 작성하십시오.

main.storyboard-> 메인 만 스토리 보드 이름입니다.


6

Swift 5.1 및 xCode 11.2

제 경우에는 변경 Storyboard Name하는 것을 잊었습니다 .Info.plist

여기에 이미지 설명 입력

Info.plist 소스 코드

    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <false/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                    <key>UISceneStoryboardFile</key>
                    <string>AccountViewController</string>
                </dict>
            </array>
        </dict>
    </dict>

4
  1. 스토리 보드 파일 열기
  2. 그런 다음 파일 검사기를 클릭하십시오.
  3. 그런 다음 "Target Membership"을 선택하고 프로젝트를 확인하십시오.
  4. ViewController 파일에 대해서도 똑같이하십시오 !!! 스토리 보드와 함께 ViewController.swift 또는 ViewController.m을 사용하는 경우 중요한 부분 !!!

4

이 오류는 파일을 삭제 한 후 휴지통에서 main.storyboard 파일을 복구하는 동안 발생합니다. 나도 어제 같은 문제에 직면했습니다.

main.storyboard의 파일 관리자에서 main.storyboard의 위치 경로를 Relative to Group으로 설정해야합니다. 그 후 동일한 속성에서 앱 대상에 체크 표시를해야합니다 (첨부 된 그림에서 볼 수 있듯이).

여기에 이미지 설명 입력


2

Xcode 10.1로 업그레이드 한 후 저에게 도움이 된 두 가지 솔루션 :

  • 에서 파일 -> 작업 영역 (또는 프로젝트) 설정 . 레거시 빌드 시스템으로 전환합니다 .

  • 대상 빌드 단계 에서 번들 리소스 복사 (나열된 경우) 에서 Base.lproj 폴더를 제거하고 각 스토리 보드가 나열되고 대신 개별적으로 복사되는지 확인합니다.

위의 수정 사항 중 하나를 적용한 후 제품 메뉴에서 빌드 폴더 정리를 한 번 확인하십시오. 그렇지 않으면 수정 사항이 제대로 작동하지 않을 수 있습니다.


1

plist에서 행을 삭제하면 내 앱에서도 검은 화면이 나타납니다. 그리고 스토리 보드의 대상 멤버십 을 활성화하여 수정했습니다.


1

Kalpit Gajera가 말했듯이 "프로젝트의 info.plist를 열고 스크린 샷에 표시된 선택된 행을 제거하십시오". Info.plist에서 'Main storyboard file base name'을 제거하기 만하면됩니다. 제거하고 정리하고 실행하면 프로그램이 더 이상 실패하지 않지만 검은 화면이 표시됩니다. Info.plist를 다시 열고 수동으로 행을 다시 추가합니다. 문제가 해결되었습니다.


0

main.storyboard를 선택하고보기를 iOS 6.1 및 이전 버전으로 변경하면 xcode가해야 할 일을 알려줍니다.

여기에 이미지 설명 입력


0

내 솔루션은 다음과 같습니다.

두 뷰 사이에 Seque Connection을 추가하고 Projekt 구성에서 배포 대상이 8.0 미만이면이 오류가 발생합니다.

좋아, IOS 6.0 용으로 개발할 때 이해하기 쉬움 (예를 들어) Seque에는 IOS 8.0 이상이 필요하기 때문에 Seque를 사용할 수 없습니다 ...... ;-)

그래서 배포 대상을 8.0으로 설정하고 오류가 사라졌습니다 !!!! 다른 한편, 나는 모든 Segue Connections를 취소하고 IBAction, old school로 처리합니다 ;-)


0

Main.Storyboard 파일을 문제를 일으키는 "파란색"하위 폴더로 옮겼습니다.이 지침에 따라 하위 폴더를 추가해야했습니다. Xcode 6.3 새 파일 문제

그런 다음 Main.Storyboard 파일을 노란색 하위 폴더로 이동하면 저에게 효과적이었습니다.


0

내 문제는에서 .xml접미사를 제거하여 해결되었습니다 Main.storyboard.xml file.

프로젝트를 가져온 버전에서 접미사가 변경된 것 같습니다.

따라서 파일 이름을 바꾸고 ( .xml접미사 제거 ) 다시 시작한 다음 Project-> clean....문제를 해결했습니다.


0

여전히 검은 화면이있는 경우 장면 델리게이트에 아래 코드를 추가해보십시오.

willConnectTo

    guard let windowScene = (scene as? UIWindowScene) else { return }
    window = UIWindow(frame: windowScene.coordinateSpace.bounds)
    window?.windowScene = windowScene
    let navController = UINavigationController()
    let mainstoryboard:UIStoryboard = UIStoryboard(name: "Your storyboard name", bundle: nil)
    let initialController = mainstoryboard.instantiateViewController(withIdentifier: "your initial controller Identifier") as! initialController
    navController.addChild(initialController)
    window?.rootViewController = navController
    window?.makeKeyAndVisible()

0

스토리 보드가 프로젝트에 추가 된 경우 (xcode 유틸리티 영역의 프로젝트 파일 검사기 섹션에서 결정)대상 멤버십 영역에 확인란이 표시되어 있습니다.

Main.Storyboard"번들 리소스 복사"(에서 Build Phase) 에서 제거 하고 "번들 리소스 복사"에 다시 추가하기 만하면 됩니다. 이것은 나를 위해 일했습니다.여기에 이미지 설명 입력


-1

좋아 이것은 과정이었다. 너무 많은 것을 시도합니다. OS 10.11에서 xcode 6.4 실행. '주요'문제를 찾을 수 없습니다. 내가 마침내 한 일은 Finder에서 내 데스크탑에서 main.storyboard를 옮기는 것이 었습니다. 청소하고 xcode를 빌드하고 종료했습니다. 이제 다시 시작된 xcode에는 빨간색 main.storyboard가 있습니다. 나는 그것을 가상으로 실행한다. 그런 다음 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하고 파일 추가 ... 옵션을 선택합니다. 위치를 찾아서 엽니 다. 오른쪽에있을 때 신원 검사관이 있어야합니다. 위치 아래의 작은 폴더를 클릭하십시오. 해당 폴더를 다시 찾아서 선택을 선택하십시오. 그런 다음 달리고 작동했습니다. 아멘 !!!


-1

스토리 보드의 왼쪽에있는 목록에 처음 표시 할 뷰 컨트롤러를 선택한 다음 속성 관리자에서 제목이 "Main"이고 "Is Initial View Controller"확인란이 선택되어 있는지 확인합니다.

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