Interface Builder 无法打开文档“.storyboard”,因为它不存在
Posted
技术标签:
【中文标题】Interface Builder 无法打开文档“.storyboard”,因为它不存在【英文标题】:Interface Builder could not open the document ".storyboard" because it does not exist 【发布时间】:2013-09-17 21:52:12 【问题描述】:这个问题让我非常抓狂。 Xcode 正在我的项目中寻找与我的项目不同位置的故事板。我尝试删除文件,再次添加,清理项目等,但没有运气。
这是错误。
cd /Users/fmartin91/Projects/loovin/loovin-ios
setenv IBSC_MINIMUM_COMPATIBILITY_VERSION 7.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
setenv XCODE_DEVELOPER_USR_PATH /Applications/Xcode.app/Contents/Developer/usr/bin/..
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/ibtool --errors --warnings --notices --minimum-deployment-target 7.0 --output-format human-readable-text --compile /Users/fmartin91/Projects/loovin/loovin-ios/Build/Products/Debug-iphonesimulator/loovin.app/Base.lproj/LOOVProductIndex.storyboardc /Users/fmartin91/Projects/Base.lproj/LOOVProductIndex.storyboard
/* com.apple.ibtool.errors */
/Users/fmartin91/Projects/Base.lproj/LOOVProductIndex.storyboard:
error: Interface Builder could not open the document
"LOOVProductIndex.storyboard" because it does not exist.
【问题讨论】:
Interface Builder could not open the document ".xib" because it does not exist 的可能重复项 【参考方案1】:我可以通过杀死ibtoold
来修复这个错误:
$ sudo killall -9 ibtoold
为什么 ibtool 还需要一个守护进程?
【讨论】:
结帐my answer 以及有用的相关链接(脚本和文章)。【参考方案2】:您的故事板不在 NSBundle 主包中。 此问题可能是由于“构建阶段”中的“复制捆绑资源”问题所致。
为了更正它,请验证您的情节提要文件是否在所有目标的“复制捆绑资源”中。在项目导航器上选择项目文件选择构建阶段选项卡并检查它。
【讨论】:
故事板在两个目标的“复制捆绑资源”中,我忘了说我以前试过这个,抱歉。 如何加载你的storyboard或者uiviewcontroller? 我不认为这是一个运行时问题,无论如何,这就是我加载故事板的方式。 UIStoryboard* s = [UIStoryboard storyboardWithName:@"LOOVProductIndex" bundle:nil]; 我记得以前我在项目导航器和查找器中的文件名之间的字母大小写有问题,也许检查一下【参考方案3】:当您将文件上传到没有 zip 的谷歌驱动器时,它会自动将 .storyboard
的扩展名附加到 .xml
,因此当您下载它时,该文件显然不存在。
要解决此问题,请转到:
[项目文件夹] > [项目文件夹] > [Base.lproj]
会有一个 .storyboard.xml 扩展类型的文件,您必须将其重命名为 .storyboard
扩展。这样你的工作就完成了。
故事板错误解决视觉指南:
【讨论】:
我遇到了同样的问题,我这样解决了,现在的问题是我无法打开故事板文件 Interface Builder。当我单击文件时,它显示 xml 内容而不是视图和场景。你遇到过类似的问题吗?【参考方案4】:我遇到了一个非常相似的问题,花了几个小时才解决。显然,xcode 将自己锁定在某种奇怪的状态,即项目资源管理器可以看到 xib 文件,而编译却看不到。最后,当我将文件检查器中的位置从“相对”更改为“相对于项目”时,这个问题得到了解决。我通过在常规文本编辑器中比较 project.pbxproj 文件以搜索任何线索来得到这个。
【讨论】:
拜托,这对我来说很不清楚。我看到了 Project 和 Target 的文件检查器的位置,它们都没有选项 Relative to Group。【参考方案5】:我遇到了同样的问题,我是这样解决的:
-
在项目外保存受影响文件的副本
从项目中删除文件,选择移至废纸篓以从项目中彻底删除文件和引用
编辑 ProjectName.xcodeproj/project.pbxproj 以删除所有引用受影响文件的行
重新添加文件,确保选中将项目复制到目标组的文件夹(如果需要)
清理和构建
【讨论】:
合并后我对同一个故事板有重复的引用,这修复了它。 我这样做了,它永远损坏了我的项目。我无法使用项目导航器【参考方案6】:我刚刚在运行 Xcode 9.2 时遇到了这个问题。我已将我的文件从学校计算机复制到谷歌驱动器,然后在家里下载。
当我在家里打开文件时,它一直告诉我 main.storyboard 并且启动故事板不存在。这两个情节提要文件将显示为 xml,因此它们显然存在,但即使右键单击“打开方式”也不会产生任何结果。经过多次故障排除后,我找到了一个适合我的修复程序。
解决方案:
打开您的项目文件夹,然后打开与您的项目名称相同的下一个文件夹。打开 Base.lproj,您将看到两个 xml 格式的故事板。复制这两个文件,将它们粘贴到同一个文件夹中,删除 .xml 并确认对 .storyboard 的更改。对这两个文件都这样做,你就设置好了!
【讨论】:
【参考方案7】:这是在 git 合并后发生在我身上的。我将一些故事板本地化文件从一个项目更改为另一个项目,Xcode 似乎继续在旧项目中搜索文件。
我的解决方案是:
-
编辑旧ProjectName.xcodeproj/project.pbxproj
搜索故事板名称
删除对 Storyboard 名称的引用,该名称后跟本地化内容(例如“Base.lproj”、“es.lproj”等)
同时删除以下本地化条目(因为它们引用 Storyboard 文件)
清理和构建
如果其他文件不断抛出编译错误,请重复
【讨论】:
【参考方案8】:对我来说,我使用 xcode 10, 单击您的项目名称(左侧的蓝色图标)> Build Phases > 在 Copy Bundle Resources 下
找到文件,如果有,请删除重复项。清理项目并再次运行
【讨论】:
【参考方案9】:将项目移动到另一台计算机时,我遇到了同样的问题。我按照以下步骤解决了这个问题:
打开之前的 Main.storyboard 文件作为源代码,全部复制 新建 Main.storyboard 文件,作为源代码打开,粘贴 删除之前的 Main.storyboard 清理并构建项目。【讨论】:
【参考方案10】:在我的例子中,我发现故事板被放置在一个引用“身份和类型”面板中不存在的文件夹的组中。
删除该组和情节提要,并引用现有文件夹将其添加回来为我解决了问题。
【讨论】:
【参考方案11】:对我来说,重置 Main.storyboard 文件的容器文件夹有效
【讨论】:
【参考方案12】:我通过这样做解决了这个问题:
在finder中打开你的Xcode项目文件夹,然后找到你打不开的文件。
像这样将该文件拖到 Xcode 项目(在 Xcode 应用程序内部)中的文件路径中。
勾选“如果需要复制项目”并选择“创建文件夹引用”,然后单击完成。
重启 Xcode
【讨论】:
【参考方案13】:我可以解决我的问题,我真的不知道我是怎么做到的,但是我尝试了十亿次清理和构建项目,我希望这对任何人都有帮助。
【讨论】:
幸运的是,我只花了几百万! 很奇怪,但是下面的帖子表明它会在一段时间后再次工作。也许这就是为您解决的问题。就我而言,我试图离开我的项目几分钟,然后它又开始工作了。在此之前,我进行了清理和构建,但没有成功。 groups.google.com/forum/#!topic/rubymotion/qPMNifK6UfE【参考方案14】:我刚刚经历了这个,并通过重新启动该死的计算机来修复它。不过,我发现了更多关于它的信息。就我而言,我的 ibtool 脚本无法正常工作,就像您的一样,会出现 file-not-found 错误。但是,当我以 sudo 运行它们时,我注意到行为发生了变化:
2013-09-20 20:49:40.339 界面生成器可可触摸工具[58454:303] CFPreferences:用户主目录位于 file:///var/root/Library/Application%20Support/iPhone%20Simulator/User/ 不可用。用户域将不稳定。
后续命令将失败或返回而不执行任何操作。所以! ibtool/Interface Builder/以某种方式使用其他启动服务来运行自己,使用其他用户名或权限。
可能是我为 Xcode 5.0 安装了一些工具更新,但它搞砸了正在运行的任何服务进程?是的,它可以:)
【讨论】:
这很有道理,不久前我在权限和钥匙串方面遇到了一些不便!【参考方案15】:我在使用 Xcode 7 beta 5 时遇到了同样的情况。重新启动我的 Mac 就成功了。
【讨论】:
【参考方案16】:转到构建阶段>复制捆绑资源>检查您遇到错误的情节提要>它应该显示为模糊>如果是,则删除其引用并再次添加>再次编译。
【讨论】:
【参考方案17】:在我的例子中,项目导航器和查找器中的文件夹形成的并不完全相同。 Main.storyboard 位于项目导航器的 \Views 文件夹中,但不在 finder 中。 Xcode 不允许我退出应用程序,因为 Main.storyboard 无法保存。 这是我所做的,解决了这个问题:
-
同时确定项目导航器和查找器中哪些文件丢失或未对齐。
将 Main.storyboard 和其他不在正确位置的文件复制到安全位置。
从活动监视器强制退出 Xcode。重新打开 Xcode。
在查找器中粘贴以前复制的文件。确保文件夹顺序与 Xcode 项目导航器相同。
在 Xcode 中,从项目导航器中右键单击需要添加文件的位置,然后单击添加新文件。
从查找器添加文件。
清理和构建。
【讨论】:
以上是关于Interface Builder 无法打开文档“.storyboard”,因为它不存在的主要内容,如果未能解决你的问题,请参考以下文章
swift : 无法与 Interface Builder 通信
如何在 Interface Builder 中获取 iPhone,而不是 iPad 视图
如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束
不使用 Interface Builder 将 NIB 转换为 XIB