72

我创建了一些自定义控件,并在新项目中使用它们。但是,我在界面生成器中不断收到错误:

Failed to update auto layout status: Failed to load designables from path (null)

或者

Failed to render instance of <control>: Failed to load designables from path (null)

我已经在另一个项目中测试了控件,它们似乎在界面生成器中正确呈现,但我无法让它们在当前项目中工作。是什么导致了这个错误,我该如何解决?

提前致谢...

4

16 回答 16

79

我遇到过同样的问题。我使用 cocoapods,并且有一个使用 designables 的豆荚。所以诀窍是添加“use_frameworks!” 到 Podfile。执行 'pod update' 重新打开 xcode 项目,并且不应该出现错误消息。

于 2015-07-30T09:02:47.573 回答
15

编辑**

打开 Xcode(但不要打开您的项目)并单击 Window(右起第二个)

单击管理器并确保您在项目中,然后删除所有派生数据。关闭 Xcode,然后重新打开你的项目,让 Xcode 重新索引你的文件,看看是否能解决问题

于 2015-03-10T01:40:51.187 回答
7

我正在运行 Xcode 7.3,并通过执行这些步骤使错误神奇地消失,最终使我的项目处于执行这些步骤之前的确切状态(即对任何内容的净零更改):

  1. 添加“use_frameworks!” (当然没有撇号)到你的 podfile
  2. 打开终端窗口
  3. cd 到你项目的根目录
  4. 从命令行运行“pod install”
  5. 删除“use_frameworks!” 从你的 podfile
  6. 再次运行“pod install”
  7. 再次尝试构建,看看是否修复了错误;它对我有用

看起来像是我们以前都见过的那些偶尔出现的 Xcode 障碍之一,尤其是当您急于完成其他事情时。

于 2016-04-11T22:04:55.777 回答
5

如果以前的解决方案不适合您,请尝试添加到您的目标pod inherit! :search_paths

样本

  target 'my-app-target' do
    use_frameworks!
    inherit! :search_paths
  end

之后按照之前的建议进行 pod 更新。

于 2019-12-04T10:59:09.370 回答
3

我不确定这是否能解决您的问题,因为我无法重现它。但我想你还是可以试一试。

首先,正如其他人提到的,CocoaPods 似乎也有同样的问题。我经历了弥补他们更正的提交,但没有与您的设置相关的结果。

但是,我在这个StackOverflow question中发现了一条不同的相关错误消息,这也与 IB 在路径上找不到的东西有关。我想知道他们的解决方案是否可以帮助您:

解决方案是$(CONFIGURATION_BUILD_DIR)在目标Build settings Runpath Search Paths字段中添加。

于 2015-03-16T16:23:55.533 回答
3

IBDesignable我在具有自定义视图的非 CocoaPods 项目上遇到了同样的问题。显然,这是一个 Xcode 错误。此答案中的步骤帮助我解决了问题。简而言之:

  1. 退出 Xcode。
  2. Interface Builder Cocoa Touch Tool杀死您机器上命名的所有进程。
  3. 再次启动 Xcode。
于 2016-04-01T13:03:47.520 回答
3

我不使用 CocoaPods,但我确实使用了一个包含 IBDesignable 项目的内部框架,并且也遇到了这个问题。我清理了,从我的主项目中删除了派生数据,然后重新启动了 Xcode,但这似乎并没有解决它。要解决它,我必须转到 Window > Projects,选择框架项目(不是使用框架的项目,而是框架项目本身),然后删除派生数据。所以,完整的步骤:

  1. 产品菜单 > 清洁
  2. 按住选项>产品菜单>清理构建文件夹...>清理
  3. 窗口菜单 > 项目 > 选择我的框架项目 > 删除派生数据
  4. 窗口菜单 > 项目 > 选择我的主项目 > 删除派生数据
  5. 退出 Xcode
  6. 重启 Xcode

对任何和所有具有 IBDesignables 并可能导致错误的框架项目重复步骤 3。

于 2016-09-01T23:47:25.557 回答
2

问题是当界面生成器呈现您的视图时,来自 cocoapods 的 IB_DESIGNABLE 没有正确链接。

诀窍应该做到这use_frameworks!一点,但对我来说,迁移代码有点费力。

我的诀窍是对我在故事板中使用的每个 IB_DESIGNABLE视图进行子类化,这些视图直接来自 pod。解决了错误。

于 2017-04-11T06:05:19.553 回答
2

此问题已在最新版本的 Cocoapods 中修复

要安装,只需运行:

[sudo] gem install cocoapods --pre

为了修复错误:“无法从路径(空)加载设计对象”:

use_frameworks!

   pod '****'



end

添加use_frameworks!到你的 Podfile

查找更多:使用来自 pod 依赖项的 IB_DESIGNABLE 实时渲染自定义组件

于 2015-09-09T07:28:51.087 回答
1

您可以使用一个非常方便的技巧来调试实时渲染。

1)将此扩展添加到您的项目中:

    extension UIView {
    public func liveDebugLog(message: String) {
        #if !(TARGET_OS_IPHONE)
            let logPath = "/tmp/XcodeLiveRendering.log"
            if !NSFileManager.defaultManager().fileExistsAtPath(logPath) {
                NSFileManager.defaultManager().createFileAtPath(logPath, contents: NSData(), attributes: nil)
            }

            var fileHandle = NSFileHandle(forWritingAtPath: logPath)
            fileHandle.seekToEndOfFile()

            let date = NSDate()
            let bundle = NSBundle(forClass: self.dynamicType)
            let application: AnyObject = bundle.objectForInfoDictionaryKey("CFBundleName")
            let data = "\(date) \(application) \(message)\n".dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)
            fileHandle.writeData(data)
        #endif
    }
  }

2)添加一个liveDebugLog(message:)并输入您想知道的任何内容。3)打开Terminal.app并运行命令open /tmp/XcodeLiveRendering.log

完毕!

Morten Bøgh的学分

于 2015-05-10T17:51:40.840 回答
0

如果您已经厌倦了试图找出解决方案,或者如果是周五下午,请放松并删除派生数据文件夹,清理构建 Xcode,关闭您的 Mac,休息 5 分钟(如果您没有开火- 在你的最后期限前战斗:P)。打开你的 mac 启动 Xcode 再次尝试构建。

如果这行得通,只需诅咒 Xcode 并像我一样继续前进 :)

于 2020-07-05T00:26:47.223 回答
0

我已经通过更新 pod “pod update”解决了这个问题,希望它对你有用

于 2017-03-01T10:06:06.310 回答
-1

当我在 xcode 和我的项目打开时更新 pod 时出现此错误。

我关闭了xcode。再次运行 pod 更新。重新启动xcode。

错误没有再次出现。

于 2017-05-19T00:58:41.017 回答
-1

如果对我来说,清理 + 重新启动 XCode。如果问题源于您创建 IBDesignable 视图然后删除可检查或可设计标签,我绝对会尝试这种方法

于 2020-04-30T15:55:07.537 回答
-1

所有Pods相关的修复都对我不起作用,但删除Derived Data文件夹有效。Xcode 11

于 2019-12-18T13:19:23.050 回答
-1

我没有使用可可豆荚,而是在扩展导入类的视图控制器上出现此错误。我只是在将 StoryBoard 更改为 IphoneX 视图时才收到此错误,它在 iPhone 8 视图上运行良好。

我将项目设置从 New Build System (Preview) 更改为 Standard Build system,然后清理项目,错误消失了。

不知道为什么,但这为我解决了问题。

于 2018-05-23T10:49:23.430 回答