IB Designables:无法更新自动布局状态:无法从路径加载可设计项(null)

时间:2015-01-28 23:04:32

标签: ios xcode

我看到了XIB的这个错误。但其他一切都在编译,并且这个错误似乎没有造成任何伤害。这是我需要担心的吗?这里的问题是什么,我将如何解决这个问题?

enter image description here

更新: 我已经将cocoapods更新到最新版本(0.36.3),虽然修复了一些编译问题,但错误已经恢复,我现在看到了一个额外的错误:

enter image description here

13 个答案:

答案 0 :(得分:74)

这是CocoaPods中的一个已知问题。 它已在版本 0.36.1 中修复。 只需更新您的CocoaPods,然后将特定的代码行添加到您的pod文件中: 在平台之后 use_frameworks!:ios,'7.0'

所以你的文件看起来像这样:

platform :ios, '7.0'

use_frameworks!

/// here will be dependencies etc. ///

<强> 更新

一劳永逸地解决问题的完整步骤列表:

  • 关闭项目;
  • 打开终端应用程序;
  • 将CocoaPods本身更新为ver。 0.36.1或更高;
  • 导航到终端中的项目文件夹;
  • 输入:pod update;
  • 在xCode中打开您的项目;
  • 清洁项目;
  • 再次构建项目。

答案 1 :(得分:31)

经过一些研究和挖掘,我可以确认,没有办法解决这个问题。

这是Xcode的错误。

这就是全部。我们必须等待更新。

暂时重新启动 Xcode。

答案 2 :(得分:15)

这对我有用:

  1. 删除衍生数据(首选项&gt;位置)
  2. 重启Xcode
  3. 清洁项目(产品&gt;清洁)

答案 3 :(得分:12)

2016 是年份,xCode 7.3.1: 我收到了这个错误。 (使用可可豆荚1.0,但没关系)

原因:在IB中使用了一个特殊的UILabel子类。敲钟?

优雅的解决方案:

1:子类TTTAttributedLabel或FXLabel或您拥有的任何内容。在IB中使用它。

2:在子类.h文件中添加这些行:

#ifndef IB_DESIGNABLE
#define IB_DESIGNABLE
#endif

@class LabelFromPod;


IB_DESIGNABLE @interface YourLabel : LabelFromPod {
 ...
}

3:那么我认为你必须清除项目,退出xCode,重建(通常的xCode恐慌协议),问题就会消失。

2017年更新 xCode 8.2.1:一切都变得更糟:(空白VC问题:IB甚至没有为具有这些IB_DESIGNABLE的视图控制器加载UI元素。我很无能:)

答案 4 :(得分:8)

我使用TTTAttributedLabel遇到了同样的问题,并按照Andrey的回答尝试修复它。构建成功但在此之后似乎无法加载其他pod模块的捆绑文件(在我的情况下为TSMessage,SVProgressHUD)。这也在Cocoapods blog post中说明,我不想将捆绑资源移到mainBundle(我还没有验证它是否有效。)

因此我选择从Podfile中删除TTTAttributedLabel并直接包含源以消除该错误。这对我有用,我希望这也是这个问题的另一个答案。

答案 5 :(得分:5)

可能会迟到,但是当我遇到这个问题时,添加这些初始化代码对我有用

required override init(frame: CGRect) {
    super.init(frame: frame)
}

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
}

答案 6 :(得分:2)

Podfile中添加此脚本并再次执行pod install

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end

答案 7 :(得分:1)

我遇到了与在故事板上使用POD自定义视图相同的问题。

执行以下操作为我解决了问题

  • 在pod上添加以下行(在动态框架中转换POD) use_frameworks!
  • pod update
  • 重新启动Xcode

答案 8 :(得分:1)

删除Podfile中的内容,仅直接包含源即可解决此问题。

对我有用!

答案 9 :(得分:1)

当基类和子类都被称为@IBDesignable类时,我已经遇到了这个问题。可以与第三方类和您的类一起检查是否继承了

答案 10 :(得分:0)

使用以下命令在Mac中更新cocoapods为我解决了这个问题部分

sudo gem install cocoapods

答案 11 :(得分:0)

问题可能是您使用了框架或Custom UILabel类。 像MarqueLabel或TTTAttributed Label。 在pod文件中取消注释#use_frameworks。 运行pod update。 清理并重建您的项目。 这将解决您的问题。

答案 12 :(得分:0)

当我使用Cocoapods且无法use_frameworks!时,我也遇到了类似的错误。最后,我分叉了一个框架,该框架使用IBDesignableIBInspectable并删除了这些关键字。所有的自定义都以编程方式完成:

class CardFloatingLabelTextField: SkyFloatingLabelTextField {

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)

        self.errorMessage = nil
        self.titleFont = UIFont.systemFont(ofSize: 11)
        self.titleFormatter = { (text: String) in return text }
        self.titleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.selectedTitleColor = UIColor.channelsColorGrayFootnoteAndCaptions()
        self.lineColor = UIColor.channelsColorGrayContentAndLines()
        self.selectedLineColor = UIColor.channelsColorDarkBlue()
        self.lineHeight = 1
        self.selectedLineHeight = 1

    }

}

它有效,并且不再在Interface builder中创建错误。但是,很遗憾,我不得不执行此解决方法。