我有一些我创建的自定义控件,我在新项目中使用它们。但是,我一直在界面构建器中遇到错误:
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)
我已经测试了另一个项目中的控件,它们似乎在界面构建器中正确呈现,但我无法让它们在当前项目中工作。导致此错误的原因以及如何解决?
提前致谢...
答案 0 :(得分:62)
我有同样的问题。我使用cocoapods,有一个使用可设计的pod。所以诀窍是添加&#39; use_frameworks!&#39;到Podfile。做一个“pod update”&#39;重新打开xcode项目,错误消息不应该显示。
答案 1 :(得分:11)
编辑**
打开Xcode(但不要打开你的项目)并单击Window(右起第二个)
单击管理器并确保您在项目上,然后删除所有派生数据。 关闭Xcode,然后重新打开你的项目,让Xcode重新索引你的文件,看看是否能解决问题
答案 2 :(得分:4)
我正在运行Xcode 7.3,并且通过遵循以下步骤使错误神奇地消失,最终使我的项目保持在遵循这些步骤之前的确切状态(即对任何事物的净零更改) ):
看起来像我们以前见过的那些偶然的Xcode障碍之一,特别是当你急于完成别的事情时。
答案 3 :(得分:2)
此问题已在最新版本的Cocoapods
中修复要安装,只需运行:
[sudo] gem install cocoapods --pre
为了修复错误:“无法从路径加载可设计项(null)”:
use_frameworks!
pod '****'
end
将use_frameworks!
添加到Podfile
了解详情:Live Rendering a custom component using IB_DESIGNABLE from a pod dependency
答案 4 :(得分:2)
我在使用自定义IBDesignable
视图的非CocoaPods项目上遇到了同样的问题。显然,这是一个Xcode错误。 this answer中的步骤帮助我解决了这个问题。简而言之:
Interface Builder Cocoa Touch Tool
的所有进程。答案 5 :(得分:1)
我不确定这是否能解决您的问题,因为我无法重现它。但我认为你可能会尝试一下。
首先,正如其他人提到的,似乎CocoaPods有同样的问题。我完成了修正的提交,但没有与你的设置相关的结果。
但是,我在StackOverflow question中发现了一条不同的相关错误消息,这也与IB在路径上找不到的内容有关。我想知道他们的解决方案是否可以帮到你:
解决方案是在目标的$(CONFIGURATION_BUILD_DIR)
Build settings
字段中添加Runpath Search Paths
。
答案 6 :(得分: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
完成!
的积分答案 7 :(得分:1)
我没有使用CocoaPods,但我确实使用了包含IBDesignable项目的内部框架,并且也遇到了这个问题。我清理了,从我的主项目中删除了派生数据,并重新启动了Xcode,但似乎没有解决它。要解决它,我不得不去Window&gt;项目,选择框架项目(不是使用框架的项目,而是框架项目本身),并删除派生数据。所以,完整的步骤:
对任何和所有具有IBDesignables且可能导致错误的框架项目重复步骤3.
答案 8 :(得分:1)
我通过更新pod&#34; pod update&#34;解决了这个问题。希望它对你有用
答案 9 :(得分:1)
问题是,当界面构建器呈现您的视图时,来自cocoapods的IB_DESIGNABLE未正确链接。
use_frameworks!
技巧应该这样做,但对我来说,迁移代码只需要太多的努力。
我的诀窍是子类化我在直接来自pods的故事板中使用的每个IB_DESIGNABLE 视图。解决了错误。
答案 10 :(得分:0)
当我在xcode和我的项目打开时更新了pod时出现了这个错误。
我关闭了xcode。再次运行pod更新。重新启动xcode。
错误没有再出现。
答案 11 :(得分:0)
我没有使用可可豆荚但是在扩展导入类的视图控制器上出现此错误。我只是在将StoryBoard更改为IphoneX视图时遇到此错误,它在iPhone 8视图上工作正常。
我将项目设置从New Build System(Preview)更改为Standard Build系统,然后清理项目并且错误消失。
不知道为什么但是这解决了我的问题。
答案 12 :(得分:0)
如果以前的解决方案都不适合您,请尝试将其添加到目标pod inherit! :search_paths
样品
target 'my-app-target' do
use_frameworks!
inherit! :search_paths
end
之后,按照之前的建议进行pod更新。
答案 13 :(得分:0)
对我来说,所有与Pods
相关的修补程序都不起作用,但是删除了Derived Data
文件夹。 Xcode 11
答案 14 :(得分:0)
如果您已经厌倦了尝试找出解决方案,或者如果是星期五下午,请放松并删除派生数据文件夹,清理构建Xcode,关闭Mac,休息5分钟(如果在截止日期前不要消防:P)。打开Mac启动Xcode,然后尝试再次构建。
如果这行得通,那就诅咒Xcode并像我一样继续前进:)
答案 15 :(得分:-1)
清洁+重新启动XCode对我而言。如果问题是由您创建IBDesignable视图然后删除可检查或可设计标签引起的,那么我绝对会尝试这种方法