102

我收到一个奇怪的错误:'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
4

26 回答 26

111

打开项目的 info.plist 并删除屏幕截图中显示的选定行在此处输入图像描述

如果出现黑屏,请确保选择新的初始故事板作为主界面 在此处输入图像描述

对于 2021...

您还必须编辑UIApplicationSceneManifest. 请参阅下面的最新答案。

于 2013-10-08T06:14:40.480 回答
96

对于在 Xcode 11 上遇到此问题的任何人,如果您在进行无情节提要项目设置时遇到此问题,请按照以下方法解决

(添加一些ricardopereira遗漏的部分)

1)首先,删除Main.storyboard文件

2) 接下来,转到PROJECT_NAME -> GENERAL

在主界面下拉菜单中,删除文本Main

从常规设置中删除对 main 的引用

3) 现在转到 info.plist 并删除Storyboard Name

从 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

于 2019-10-26T22:58:35.883 回答
61

您可以检查情节提要的目标成员资格。可能问题出在哪里:

它应该看起来像这样:

目标会员

于 2013-10-08T06:49:15.433 回答
55

为 iOS 13.0 及更高版本创建的应用程序的更新。(Xcode 11)

如果您收到错误“即使在更改 info.plist 中的“主故事板文件基础名称”和 Target 中的部署下的“主界面”后,也无法在捆绑包中找到名为“主”的故事板。

然后您必须更改 info.plist 文件中的另一个条目。

  1. 打开 info.plist 文件。
  2. 展开“应用场景清单”。
  3. 展开“场景配置”。
  4. 展开“应用程序会话角色”下的项目 0,然后在此处更改情节提要名称。

在此处输入图像描述

您的应用程序将开始工作。

于 2019-11-16T07:15:48.133 回答
24

在 iOS 13 和 Xcode 11 中使用的项目中UIScene,您需要UISceneStoryboardFile.plist.

Xcode 11:

xcode11-uiscene

直接从文件更改:

uiscene-plist

于 2019-10-18T14:15:41.347 回答
15

我从手机中删除了该应用程序,执行 Product--> Clean,然后再次加载。这就是我所需要的。

于 2015-05-18T21:00:34.860 回答
12

我得到了这个错误,但是,我打算完全删除故事板。

从我的 plist 中删除 'Main Storyboard file base name' 键可以解决该错误。

于 2013-12-17T06:16:00.280 回答
10

在捆绑包中找不到名为“Main”的情节提要

我能想到的原因:

据我的 iOS 知识得出的结论,这只是因为 XCode 无法在我的项目目录中找到对 Main.storyboard 文件的引用以将其复制到应用程序中。

解析度:

  1. 选中Main.storyboard文件并尝试删除,从弹出的对话框中如下: 在此处输入图像描述

  2. 单击“删除引用”按钮。

  3. 然后,从我可以在项目目录中找到 Main.storyboard 文件的实际位置,将其拖放到 XCode 中,然后再次从弹出的对话框中如下所示: 在此处输入图像描述

  4. 我选择了“创建文件夹引用”(因为这是我打算做的一件事,因为我已经更改了项目的文件和文件夹结构)。但大多数时候选择“创建组”也可能有效。并点击“完成”按钮。如屏幕截图所示,我的 Storyboard 文件已经在一个Base.lproj目录中,如下所示:

    在此处输入图像描述

    注意:在此步骤中要提醒的一件重要事情是,不要忘记在您的应用程序的“添加到目标”复选框上打勾。

  5. 清理产品,重新构建,如果成功,大多数时候尝试运行它会成功。

希望这可能对其他人有帮助!我在 XCode 7.3.1 和 iOS Sim 9.3 和 iPhone 6S 上试过这个!

于 2016-05-09T06:24:30.040 回答
9

按照步骤:

1)首先点击你的故事板

2)然后单击文件检查器

3)然后选择“目标会员”

截屏

于 2016-05-28T19:11:56.663 回答
7

模拟器不区分大小写,但设备是。如果您的故事板被称为 MainStoryboard,而不是 MainStoryBoard,这将导致您的问题。并且 aslo * 不要使用扩展只写故事板名称

main.storyboard -> 只有main是故事板名称

于 2014-05-08T07:40:39.120 回答
7

斯威夫特 5.1 和 xCode 11.2

就我而言,我忘了Storyboard NameInfo.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>
于 2019-11-15T22:23:44.330 回答
5

另外,尝试删除情节提要名称

在此处输入图像描述

于 2021-02-16T16:37:48.130 回答
4

当您在删除文件后从垃圾箱中恢复 main.storyboard 文件时,会出现此错误。我昨天也遇到了同样的问题。

您必须在 main.storyboard 的文件检查器中将 main.storyboard 的位置路径设置为相对于组。之后在相同的属性中,您必须确保您的应用目标上的复选标记(如您在附图中所见)。

在此处输入图像描述

于 2020-04-21T05:07:07.063 回答
4
  1. 打开你的故事板文件
  2. 然后单击文件检查器
  3. 然后选择“目标会员”并检查您的项目
  4. 对 ViewController 文件执行相同的操作 !!!如果您在情节提要中使用 ViewController.swift 或 ViewController.m,则很重要!!!
于 2019-01-30T04:46:50.553 回答
2

升级到 Xcode 10.1 后对我有用的两种不同解决方案:

  • File->Workspace (or Project) Settings中。切换到旧版构建系统

  • 在您的目标Build Phases中,从Copy Bundle Resources (如果列出)中删除Base.lproj文件夹,并确保列出并单独复制每个情节提要。

应用上述任一修复后,请确保您从产品菜单中清理过构建文件夹一次,否则修复可能无法正常工作。

于 2019-02-13T20:35:02.630 回答
1

删除 plist 中的行也导致我的应用程序出现黑屏。我通过启用情节提要的目标成员资格来修复它

于 2014-09-18T07:16:34.320 回答
1

如果您仍然有黑屏,请尝试在您的场景委托中添加以下代码

将连接到

    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()
于 2020-08-23T09:58:18.197 回答
1

正如 Kalpit Gajera 所说,“打开项目的 info.plist 并删除屏幕截图中显示的选定行”。您只需从 Info.plist 中删除“主故事板文件基本名称”。删除它,清理并运行后,程序将不再失败,但会显示黑屏。再次打开 Info.plist 并手动重新添加该行。问题已解决。

于 2016-07-13T03:26:09.490 回答
0

选择 main.storyboard,将视图更改为 iOS 6.1 及更早版本,然后 xcode 会告诉你需要做什么。

在此处输入图像描述

于 2013-11-11T06:42:26.043 回答
0

我的解决方案是:

当我在两个视图之间添加序列连接并且在 Projekt 配置中部署目标小于 8.0 时,我收到此错误。

好的,很容易理解,当你为 IOS 6.0 开发时(例如)你不能使用 Seque,因为 Seque 需要 IOS 8.0 或更高版本...... ;-)

所以,我将部署目标设置为 8.0 并且错误消失了!!!!另外,我取消了所有的 Segue 连接并使用 IBAction 处理它,老派 ;-)

于 2015-01-03T16:17:31.980 回答
0

我的问题已通过.xmlMain.storyboard.xml file.

显然,后缀从我导入项目的版本发生了变化。

因此,重命名文件(删除.xml后缀)并重新启动,然后Project-> clean....解决了问题。

于 2019-05-08T16:03:15.580 回答
0

我正在将 Main.Storyboard 文件移动到导致问题的“蓝色”子文件夹,我必须按照这些说明添加子文件夹 Xcode 6.3 New File Issue

然后将 Main.Storyboard 文件移动到黄色子文件夹对我有用

于 2016-05-19T13:38:15.260 回答
0

如果您的故事板已添加到项目中(您将从 xcode 实用程序区域的项目文件检查器部分确定)复选框被标记在目标会员区域

您只需Main.Storyboard从“复制捆绑资源”中删除(在 中Build Phase)并在“复制捆绑资源”中再次添加它。这对我有用。在此处输入图像描述

于 2020-09-29T15:09:57.490 回答
-1

好的,这是一个过程。尝试了很多不同的东西。在 OS 10.11 上运行 xcode 6.4。有找不到“主要”问题。我最终所做的就是将 main.storyboard 从 Finder 移到我的桌面上。清理并构建并退出 xcode。重新启动 xcode 现在它有一个红色的 main.storyboard。我运行它实际上做同样的事情。然后我右键单击项目文件夹并选择选项将文件添加到... 浏览到它所在的位置并打开它。那么当它在右边时应该是身份检查员。单击位置下的小文件夹。再次浏览到该文件夹​​并选择选择。然后我跑了,它奏效了。阿门!!!

于 2015-10-07T04:06:31.503 回答
-1

选择要首先显示在情节提要左侧列表中的视图控制器,然后在属性检查器中确保其标题为“Main”并选中“Is Initial View Controller”复选框。

于 2020-03-21T01:12:13.687 回答
-2

就我而言,这是由于 Pod 库已过时

删除 /Pods 文件夹并pod install为我修复它

于 2021-06-08T13:11:35.743 回答