界面生成器-无法从路径加载可设计项(空)


69

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

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)

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

提前致谢...


1
@ N1ghtshade3我遇到了相同的问题,而我遇到的控件不是来自CocoaPods依赖项。
乔什·布朗

我也没有使用CocoaPods,但是我看到了CocoaPods相关的帖子。我认为CocoaPods已经找到了解决此问题的方法,但是很遗憾,我在任何地方都找不到它!
杰克

您要使用imageNamed(:)加载任何图像吗?
Daniel Galasko 2015年


另一个解决方案:stackoverflow.com/a/38368740/2245240
Yaro

Answers:


74

我遇到过同样的问题。我使用cocoapods,有一个使用designables的豆荚。因此,诀窍是添加“ use_frameworks!” 到Podfile。进行“ pod更新”,重新打开xcode项目,错误消息不应显示。


这与ios 7+无关,因为它破坏了Realm之类的许多库。
德沃

我正在使用iOS 8和iOS 9进行测试,它对我有用。
2015年

9
这可以解决问题,但是添加了“ use_frameworks!” 破坏了我下载的Pod的一些导入声明。
sosale151

2
!use_frameworks将大大增加你的建筑面积FYI
泰勒托马斯

最近用Xcode 13.0测试过,它也对我有用。它已删除IBDesignables。
Kehlin Swain

13

编辑**

打开Xcode(但不要打开您的项目),然后单击Window(从右数第二个)

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


2
我已经尝试了所有这些,但是当我将IB_Designable和IBInspectable添加回类时,仍然遇到相同的错误
Jake

2
不起作用 已经尝试了多种变体。这不是派生数据问题。
drekka

7

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

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

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


1
工作完美!感谢您提供的非常清晰,详细的说明(其他人提到了use_frameworks!,但没有人提到过以后将其删除,并留给我其他豆荚造成问题)。
法塔赫·哈尔萨

5

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

样品

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

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


1
为我工作+1
Tripti Kumar,

3

我不确定这是否可以解决您的问题,因为我无法重现。但是我认为您还是可以尝试一下。

首先,就像其他人提到的那样,CocoaPods似乎也有同样的问题。我经历了构成他们的更正的提交,但是没有与您的设置有关的结果。

但是,我在此StackOverflow问题中发现了另一条相关的错误消息,该错误消息还与IB在路径上未找到的内容有关。我想知道他们的解决方案是否可以帮助您:

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


否决了该问题所有答案的人能否提供理由?
丹尼斯

1
他们可能会降低自己的评级。非常感谢您提供这个答案!即使在2020
有所

打桩。这对我(的Xcode 12)和最高额定工作use_frameworks!答案将是一个痛苦的世界,我的项目中豆荚
克里斯·普安顿

3

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

  1. 退出Xcode。
  2. 杀死Interface Builder Cocoa Touch Tool计算机上命名的所有进程。
  3. 再次启动Xcode。

3

我不使用CocoaPods,但是我使用的内部框架包含IBDesignable项,并且也遇到了此问题。我从主项目中清理,删除了“派生数据”,然后重新启动了Xcode,但这似乎无法解决。要解决此问题,我必须转到“窗口”>“项目”,选择框架项目(不是使用框架的项目,而是框架项目本身),然后删除“派生数据”。因此,完整步骤:

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

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



2

问题是当界面构建器渲染视图时,cocoapods的IB_DESIGNABLE没有正确链接。

use_frameworks!招应该做的,但对我来说这只是一个有点太多精力迁移的代码。

我的技巧是将我在故事板中使用的每个IB_DESIGNABLE视图直接子类化。解决了错误。


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

做完了!

感谢MortenBøgh



0

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

如果这行得通,那就骂Xcode并像我一样继续前进:)


-1

当我打开xcode和我的项目时更新Pod时,会出现此错误。

我关闭了xcode。再次运行广告连播更新。重新启动了xcode。

错误不再出现。


-1

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

我将项目设置从“新建版本系统(预览)”更改为“标准版本”系统,然后清理项目,错误消失了。

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


-1

所有Pods相关的修复程序对我均不起作用,但删除该Derived Data文件夹即可。Xcode 11


-1

清洁+重新启动XCode对我而言。如果问题是由您创建IBDesignable视图然后删除可检查或可设计标签引起的,那么我绝对会尝试这种方法

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.