ChatGPT解决这个技术问题 Extra ChatGPT

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

尝试在真正的 iOS 设备上运行我的应用程序时遇到一个奇怪的错误:'Could not find a storyboard named 'Main' in bundle NSBundle'

我的目录中有该文件,它在模拟器中运行良好。但是,在 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
此问题主要是由于应用程序安装损坏而发生的。解决方案是清理和构建项目。还要从设备/模拟器中删除现有的应用程序并再次运行。
Xcode 11 用户,向下滚动到 stackoverflow.com/a/58452686 ,可能正是您的情况。

F
Fattie

https://i.stack.imgur.com/M90iH.png

https://i.stack.imgur.com/65P0S.png

对于 2021...

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


谢谢,但这只是让我的应用程序以黑屏启动。虽然没有崩溃。
确保在您的 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions...: (1) self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] 中有这两行界限]]; (2) self.window.backgroundColor = [UIColor whiteColor];
@Carpetfizz 添加'[self.window makeKeyAndVisible];'到您的 AppDelegate。
“应用程序启动时黑屏”,没有人对此有任何想法吗?
@Umitk 将背景设置为白色(view.backgroundColor = .white)或您喜欢的任何其他颜色
P
Parth Tamane

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

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

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

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

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

https://i.stack.imgur.com/PJwOw.png

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

https://i.stack.imgur.com/Xe2LY.png

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


您的答案几乎是正确的,只是场景功能略有变化: 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() }
为了强调一点,info.plist 条目不仅是通常的主故事板条目,而且也是应用程序场景清单中的一个,它是 iOS 13 的新条目。我必须通读两遍才意识到。
这是现在做事的正确方式! ^^ 苹果一直在改变。
如果您是 Xamarin 开发人员,我发现这非常有帮助:talkwithangel.com/…
J
JAL

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

它应该看起来像这样:

https://i.stack.imgur.com/3i4TU.png


我遇到了同样的问题,起初我以为我没有将正确的资源复制到目标,但修复目标成员身份解决了这个问题。
谢谢,辛苦了!我没有高兴地做了清理、重命名文件、更新 Plist。它总是最明显的,让你。
嗨,我有同样的问题,但没有显示目标会员窗口,Xcode 7。请帮助
出于某种原因,我的目标没有被选中.. 感谢您的回答.. 解决了!!
S
Shubham

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

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

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

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

https://i.stack.imgur.com/vNe7D.png

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


这绝对是正确的答案。从 General > Main Interface 下拉菜单中设置主故事板显然已经不够了。
谢谢你。删除“应用程序场景清单”键(连同它的所有子键)为我解决了这个问题。
我从字面上不知道发生了什么,但这是有效的
你救了我的命 :)
谢谢这对我有用。如果视图是以编程方式设置的,您只需将值设置为“LaunchScreen”。
r
ricardopereira

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

Xcode 11:

https://i.stack.imgur.com/WtAmm.png

直接从文件更改:

https://i.stack.imgur.com/AHmQB.png


u
user1021430

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


对于每次执行,如果删除,那么只有它执行我......请在 xcode 10.1 中帮助我
k
kraftydevil

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

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


R
Randika Vishman

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

我能想到的原因:

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

解析度:

选中 Main.storyboard 文件并尝试删除,从弹出的对话框中如下: 点击“Remove Reference”按钮。然后,从我可以在项目目录中找到 Main.storyboard 文件的实际位置拖放到 XCode,然后再次从弹出的对话框中选择,“创建文件夹引用”(因为那是我打算做的一件事是因为我更改了项目的文件和文件夹结构)。但大多数时候选择“创建组”也可能有效。并点击“完成”按钮。我的 Storyboard 文件已经在 Base.lproj 目录中,如屏幕截图所示,如下所示: 注意:在此步骤中要提醒的一件重要事情是,不要忘记在“添加到目标”复选框上打勾你的应用程序。清理产品,重新构建,如果成功,大多数时候尝试运行它会成功。

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


请帮助这个在安装 os10.14.1 和 xc0de 10.1 后我也面临这个问题 ..我试图从 3 天开始解决但仍然..我的项目在 xcode9.1 中运行良好..
@ArunaM您是否尝试过我在答案中给出的上述步骤?这样做之后的状态是什么?
当我从项目中删除一个导致相同错误的 ViewController 时,这就是解决方案!
V
Vicky

按照步骤:

1)首先点击你的故事板

2)然后单击文件检查器

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

https://i.stack.imgur.com/3qxHW.png


佚名

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

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


n
nomnom

斯威夫特 5.1 和 xCode 11.2

就我而言,我忘记在 Info.plist 中更改 Storyboard Name

https://i.stack.imgur.com/Z48UN.png

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>

N
Neha Vipin

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

https://i.stack.imgur.com/PGLlb.png


u
user1195202

打开你的故事板文件然后点击文件检查器然后选择“Target Membership”并检查你的项目对ViewController文件做同样的事情!!!如果你在你的故事板中使用ViewController.swift或ViewController.m,重要的部分!!!


s
saumya ranjan Gangwar

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

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

https://i.stack.imgur.com/RTCQk.png


L
LentoMan

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

在文件-> 工作区(或项目)设置中。切换到旧版构建系统。

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

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


s
seashore liu

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


M
Mavin Martin

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


S
Sagar Thukral

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

将连接到

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

C
Chris

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

https://i.stack.imgur.com/PfLjW.png


S
Sven Vietense

我的解决方案是:

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

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

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


C
Community

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

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


F
Francesco Boi

通过从 Main.storyboard.xml file 中删除 .xml 后缀解决了我的问题。

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

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


S
Sk Borhan Uddin

https://i.stack.imgur.com/k9lzk.png

https://i.stack.imgur.com/v5yrx.png


J
JESTIN SAJI

注意:如果缺少某些 ViewControllers “在捆绑包中找不到名为 'ReceiverViewController' 的情节提要”,您可以在情节提要 ID 中添加 ViewController 的名称并使用下面的代码进行导航

let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyBoard.instantiateViewController(withIdentifier: "ReceiverViewController") as! ReceiverViewController
    self.navigationController?.pushViewController(vc, animated: true)

i
iSpeedyG

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


A
Akashascosset

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


K
Kerak

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

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


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅