【问题标题】:Xcode 9 Storyboard: an internal error occurred. editing functionality may be limitedXcode 9 Storyboard:发生内部错误。编辑功能可能会受到限制
【发布时间】:2018-03-17 00:55:32
【问题描述】:

当我在 Xcode 9 中打开我的项目时,Storyboard 和 Launchscreen 出现上述错误。

注意:清理派生数据对我没有帮助。

请看截图。

【问题讨论】:

  • 退出 Xcode 并重新开始。
  • 做了很多次但没用
  • 只要点击report a bug,你的查询就会到apple,之后就不会显示了。检查一次。
  • 向 Apple 发送错误有时会有所帮助,但在这种情况下不会(此处)。我经常遇到这个问题,经过一些清理,清理派生数据并重新启动,再次构建 - 它起作用了。但这不是人们喜欢的工作方式。
  • 报告错误系统失败。来自 Apple 的伟大开发人员的更多“它只是工作”。我建议退出 iOS 开发,转而使用 Android。

标签: ios storyboard xcode9


【解决方案1】:

您可以在问题报告中找到问题,只需点击报告错误并打开 log.txt 文件即可找到问题。在我的情况下,我设置了无效的表格行高。

【讨论】:

  • 这对我有用。 log.txt 文件说无法与模拟器通信。我不得不重新启动我的 Mac 才能让它再次正常工作。发生这种情况时,我正在 Xcode 10.1 和 10.2 之间来回切换。重启Xcode,删除派生数据,退出模拟器都没有效果。
  • 这也为我解决了这个问题。原来我的一个按钮有一个 IB 不喜欢的背景图像。
  • 我希望我在两天前就知道该怎么做!我刚刚在那里找到了一个问题的详细描述,我一直在尝试追查 fastlane 在哪里失败并出现错误 65
  • 好!在日志中,我看到错误“escale must be > 0”,经过大量搜索后,我发现了一个具有“错误”DPI 的 png 图像。很奇怪,因为在更新 Xcode 之前一切都在工作......
  • EduTgn75 - 我也在为缩放错误而苦苦挣扎,您是否只是删除了您案例中的违规 png?我没有在 Xcode 11 上使用同一个文件遇到这个问题,但在 Xcode 12 上它一直在崩溃
【解决方案2】:

通过命令或首选项两种方式丢弃派生数据。

rm -rf ~/Library/Developer/Xcode/DerivedData/

Xcode -> Preferences -> Location -> Derived Data

在 Xcode 菜单中转到产品清除项目。

断开连接的设备并重新启动 Xcode 和系统。

更多:https://www.e-learn.cn/content/wangluowenzhang/266937

【讨论】:

    【解决方案3】:

    我在 Xcode 10.2.1 中遇到了同样的问题

    我有开放的界面构建器(故事板)作为源代码,就像右键单击故事板文件所附的屏幕截图一样

    按照以下步骤进行

    1. 将 3.0 版更新为 3.5 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0"
    2. 再次以界面构建器的形式打开故事板

    它现在刷新了,我现在没有收到错误,视图也正确

    但是,当我修改故事板的云杉代码时,版本又恢复到 3.0。

    但这可以作为刷新并解决我的问题

    【讨论】:

    • 非常感谢!就我而言,这解决了问题。这是在蓝色上的地狱编辑。
    【解决方案4】:

    这通常发生在代码中存在编辑器无法识别或处理的编译器错误时。所以它崩溃了。不幸的是,解决这个问题的唯一方法是找出这段代码并修复它。

    当 Swift 无法确定我的一个变量的类型时,我遇到了这个问题。

    This answer 也值得一试。

    【讨论】:

    • 这里不一定是这样。自 Xcode 9 以来,我遇到了很多这样的问题。我还反复报告了这个错误 - 答案是它是一个已知的错误。
    • @brainray 您提交的问题的雷达编号是多少?正如我在回复中提到的,这个问题有很多可能的原因,我需要查看您的日志记录以帮助您指出正确的方向。
    • @JeremyHuddlestonSequoia 我目前最大的问题是 xib 文件。他们随机不构建。然后过了一段时间(我还没有找到模式),他们建立了。 Apple 说:23140937 的副本。任何想法表示赞赏,在此先感谢。
    • 23140937 记录在发行说明中。看起来您正试图同时运行 Xcode 8.x 和 Xcode 9.0+。请确保一次只使用一个版本。
    【解决方案5】:

    经过多次尝试,我能够在这里修复它。 Xcode-select 指向了一个错误的 Xcode 版本(这里指向 Xcode 8.3.3)。

    要检查,请使用

    xcode-select -p
    

    要更改,请使用

    sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
    

    当使用 Xcode 9 实例而 xcode-select 指向 Xcode 8 版本时,似乎会出现此问题。 如果您需要再次使用 Xcode 8.x,请不要忘记切换回来。

    【讨论】:

    • 很奇怪。它只是随机地将我的设置为空白(据我所知)。我使用sudo xcode-select --reset 修复它。我要花很长时间才能找到这个……谢谢。
    【解决方案6】:

    当时发生在我身上时,我的配置是这样的,

    操作系统:macOS Sierra 版本 10.12.6 Xcode:9.0

    我创建了新项目并打开了故事板,并且出现了这个错误。

    解决方案:我只是退出 xcode 并重新开始,错误不是那个。

    所以,只需要重启xcode!

    【讨论】:

    • 我强行关闭了 Xcode,真的很管用,谢谢各位。
    【解决方案7】:

    大多数情况下,当您打开 2 个不同版本的 Xcode 时会发生此错误。 解决方案:请关闭Xcode并清除驱动数据。现在再试一次,一次使用一个Xcode

    【讨论】:

      【解决方案8】:

      检查图像浓度。更改为 72dpi 或更高。

      【讨论】:

        【解决方案9】:

        我也遇到过这个问题。 解决方法很简单,删除xcode的派生数据,重启xcode即可。

        【讨论】:

          【解决方案10】:

          只需退出(如果需要,强制退出)Xcode 并重新开始。

          【讨论】:

            【解决方案11】:

            对我来说,只需退出 Xcode 并再次打开即可解决此问题

            Xcode 9.4.1
            MacOS High Seirra 10.13.4
            

            【讨论】:

              【解决方案12】:

              我今天遇到了同样的问题

              Xcode 10.1 ;退出 Xcode 并重新启动 Mac Book 今天解决了这个问题,

              【讨论】:

              • 谢谢,需要清理驱动数据并断开设备。
              【解决方案13】:

              我解决了这个问题-

              1. 将我的 Mac 更新到 MacOS High Siera
              2. 已删除 Xcode
              3. 从 AppStore 安装了新的 Xcode

              【讨论】:

              • 如果新的 Xcode 实例修复了它或 High Sierra 发生了变化,将会很有趣。
              • 奇怪的是,我在新的 macbook 上更新了 High Sierra,并从我以前的 macbook 复制了 xcode,但出现了这个错误。所以我从应用商店安装了它,现在它工作正常。
              • 我可以确认,这没有帮助。这可能会有所帮助 - 但恕我直言,这是巧合。
              • 对我来说,清理项目并重建后错误消失了
              【解决方案14】:

              我遇到了同样的问题。并通过更新命令行工具和/或删除未使用/较旧的 Xcode 版本来解决,

              转到 Xcode 首选项 > 位置

              1. 将命令行工具更新到 Xcode 9.0
              2. 删除派生数据
              3. 另外,删除旧的 Xcode 版本
              4. 重启 Mac

              【讨论】:

                【解决方案15】:

                此错误是 Interface Builder 出现问题时的一般错误。不幸的是,错误本身并没有指出具体的原因。有时是工具错误,有时是操作系统错误,有时是开发人员代码错误,有时是用户配置错误。

                常见原因包括:

                • 文件的权限/所有权设置不正确。
                • 手动删除 ~/Library/Developer 中的文件。
                • 安装有缺陷的第 3 方 kext(尤其是安全或防火墙软件)。

                【讨论】:

                  【解决方案16】:

                  Xcode 9.3

                  空故事板/新项目

                  macOS High Sierra 10.13.4

                  就我而言,当我从工作区打开故事板时会发生这种情况。

                  所以我摆脱了工作空间和 cocoapods。然后只需将 xcode 项目和 carthage 用于第三方库即可。故事板打开速度更快,并且没有此错误。

                  【讨论】:

                    【解决方案17】:

                    我刚刚通过以下步骤解决了我的 xcode 9.3.1 上出现的相同错误,

                    1. 清理项目
                    2. 退出 xocde
                    3. 从项目文件夹中删除了 BUILD 文件夹
                    4. 再次打开

                    【讨论】:

                      【解决方案18】:

                      我也遇到了这个问题,我尝试了这里提供的大多数解决方案。

                      最后,帮助我的是退出 Xcode(10.1 版)并重新启动我的 MacBook。

                      【讨论】:

                        【解决方案19】:

                        仅供参考,我得到了这个答案,并且在日志中它说...

                        异常名称:NSInternalInconsistencyException 异常原因:scale 必须 > 0

                        原来的原因是我一直在转换为暗模式并使用图像资源制作我的按钮等图标。事实证明,我有一个选项卡控制器,它指向的页面还没有将其图标设置为资产目录图像。

                        【讨论】:

                          【解决方案20】:

                          只需退出项目并再次打开 Story Board 即可使用所有设计控件。就我而言。

                          【讨论】:

                            【解决方案21】:

                            对于面临此问题并且无法删除派生数据的所有其他人,当您尝试在元素和超级视图之间添加纵横比时似乎存在错误。因此,当您添加纵横比约束,然后将检查器中的第二个元素更改为超级视图后,该约束仍在元素层次结构中,但应将其移动到视图层次结构,或者更好的是,添加纵横比约束,从元素拖动到superview 并选择相等的宽度。

                            【讨论】:

                              【解决方案22】:

                              同样的问题,Xcode 版本 12.0 (12A7209)。 Apple 从 Xcode 9 到 12 都没有解决 Storyboard 的任何问题。

                              解决方案:只需重新打开您的项目。

                              【讨论】:

                                【解决方案23】:

                                我今天在故事板中遇到了同样的问题和错误。我的一个控制器只显示黑色背景和蓝色轮廓。

                                我按如下方式解决了这个问题

                                1. 创建新控制器
                                2. 将视图从旧(功能失调)控制器复制到新控制器
                                3. 在 .swift 文件中将视图连接到它们各自的出口。 (当我将视图从旧控制器复制到新控制器时,约束并没有丢失)

                                【讨论】:

                                  【解决方案24】:

                                  我在使用 Xcode 12.2 时遇到了这个问题

                                  在我的情节提要中添加 UITabBarController 一段时间后,我开始收到此错误。检查Xcode提供的日志,我发现它与标签栏控制器有关,特别是因为它不支持作为拆分视图控制器的详细视图。奇怪,因为我没有使用拆分视图控制器。

                                  =================================
                                      ASSERTION:
                                  =================================
                                  
                                  Failed to update scene 'ihF-5r-7AU, uvd-WH-zGG, Tgo-fH-4sa, ExD-dD-O6v, BUC-1K-8XU, and SVS-tP-wFU' with IBLayoutConstraint (x120), IBUIViewAutolayoutGuide (x6), UIButton (x3), UIImageView (x2), UILabel (x14), UINavigationItem (x5), UITabBarItem (x2), UITableView (x3), UITableViewCell (x2), UITableViewCellContentView (x2), UIView (x15), and UIViewController (x6).
                                  
                                  Exception name: NSInvalidArgumentException
                                  Exception reason: UITabBarController is unsupported as viewController for -[UISplitViewController setViewController:forColumn:] in Primary column
                                  

                                  最后,正如有人指出的那样,我检查了故事板源代码,发现了一些splitViewMasterSizeMetrics 标签,每个标签一个标签来自我的标签栏控制器。我删除了这些标签并像魅力一样工作。我什至不知道拆分视图引用是如何添加的,因为我从未在我的项目中使用过它

                                  所以我的看法是:

                                  1. 检查您的日志
                                  2. 如果您仍然无法找出问题所在,请在情节提要源代码中搜索与错误相关的任何事件

                                  【讨论】:

                                    【解决方案25】:

                                    我有同样的问题。非常旧的项目和 UI 构建器仅显示框并给出比例必须 > 0 错误。 UI 中有一些低于 72 dpi 的旧图形。删除了这些/用 72 dpi 或更高的分辨率替换了它们,瞧。立即一切正常。是否通常删除派生数据并重新启动,但这是治愈方法。

                                    -> 检查小于 72 dpi 的图像并修复它们。

                                    【讨论】:

                                      【解决方案26】:

                                      退出 Xcode 并在不使用 Rosetta 的情况下重新打开它,一切都会好起来的。

                                      【讨论】:

                                        【解决方案27】:

                                        Step 1) 打开storyboard作为源代码,如下图:

                                        第 2 步) 您会在顶部看到这一行,将 version="3.0" 更改为 version="3.5"

                                        <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13122.16" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
                                        

                                        3) 步骤 3 重启 Xcode。

                                        希望这会对您有所帮助。

                                        【讨论】:

                                          猜你喜欢
                                          • 2021-05-31
                                          • 2018-06-03
                                          • 2018-05-23
                                          • 2016-02-01
                                          • 1970-01-01
                                          • 2021-05-06
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 1970-01-01
                                          相关资源
                                          最近更新 更多