【问题标题】:IB Designables: Failed to update auto layout status: Failed to load designables from path (null)IB Designables: 无法更新自动布局状态: 无法从路径加载 designables (null)
【发布时间】:2015-01-28 23:04:31
【问题描述】:

我看到 XIB 出现此错误。但是其他所有内容都可以编译,并且这个错误似乎没有造成任何伤害。这是我需要担心的事情吗?这里有什么问题,我将如何解决这个问题?

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

【问题讨论】:

标签: ios xcode


【解决方案1】:

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

之后

所以您的文件将如下所示:

platform :ios, '7.0'

use_frameworks!

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

更新:

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

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

【讨论】:

  • 实际上只是更新 cocoapods 似乎对我有用。我很惊讶 cocoapods 在一个不相关的 XIB 中给了我一个错误,但事实如此......
  • 我收回了。错误已返回。我进行了您建议的其他更改,但错误仍然存​​在,我现在还收到有关 iOS8 的多个 O-link 警告
  • 尝试了多次。没有运气
  • 你是对的。我在我的 XIB 中引用了 TTTAttributedLabel。一旦我删除该错误就会消失。如果我把它放回去,错误就会返回。我不确定我现在能做些什么,但至少我知道原因。感谢您的帮助!
  • 我刚刚添加了“use_frameworks!”一切都开始使用 FSCalender 正常工作。谢谢
【解决方案2】:

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

这是 Xcode 的错误。

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

现在只需重新启动 Xcode。

【讨论】:

  • 确实如此。对我来说,这与可可豆荚无关,它一直发生在我自己的 IB 设计中。尝试了一切......
  • 这是什么版本的 Xcode?我用的是7.1.0,我还有
  • 我使用的是 Xcode 8.0 这个问题仍然没有解决。
  • 界面生成器非常缓慢且有问题。几乎不能用于组件设计。是的,在 Xcode 8.0 中还是一样。我认为我比 android 开发更喜欢 ios 开发的最重要原因之一是 IDE 工具要好得多。 Apple 在他们的 xcode 工具上做得非常糟糕。越来越差!!!
  • 我在 Xcode 8.2 上,1.5 年后还是一样。难以置信。
【解决方案3】:

这对我有用:

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

【讨论】:

  • 有效!看起来转储 DerivedData 缓存是可行的方法,我什至不需要清理项目。
  • 是的,我也这样做了。
  • 问题肯定会再次出现。这是 Xcode 错误。
【解决方案4】:

2016 是一年,xCode 7.3.1: 我得到了这个错误。 (使用 cocoa pods 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_DESIGNABLEs 的视图控制器加载 UI 元素。我一无所知 :)

【讨论】:

  • 错误仍然会随机出现。退出 Xcode 将解决问题。
  • 感谢@Jaro 确定确切问题虽然我添加了 ifndef 语句,但问题仍然存在。清理、退出、重建会有所帮助。但它仍然是xcode中的一个错误。苹果应该修复它。
【解决方案5】:

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

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

【讨论】:

  • 唯一对我有用的答案。
  • 我也在使用 TTTAttributedLabel。作为一种解决方法,暂时将 TTTAttributedLabels 的类改回 UILabel,进行我的自动布局更改,然后重新设置类。很烦人,但它奏效了。
【解决方案6】:

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

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

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

【讨论】:

  • 做到了!伙计,我快疯了,无法摆脱那个错误!
【解决方案7】:

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

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

  • 在 pod 上添加以下行(在动态框架中打开 POD) use_frameworks!
  • 做pod update
  • 重启 Xcode

【讨论】:

    【解决方案8】:

    在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
    

    【讨论】:

      【解决方案9】:

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

      sudo gem install cocoapods
      

      【讨论】:

        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

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

          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
          
              }
          
          }
          

          它可以工作并且不再在界面生成器中创建错误。但是,很遗憾,我不得不这样做。

          【讨论】:

            【解决方案12】:

            删除您在 Podfile 中的内容并直接包含源以解决此问题。

            它对我有用!

            【讨论】:

              【解决方案13】:

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

              【讨论】:

                猜你喜欢
                • 2018-03-25
                • 2018-06-24
                • 2020-06-29
                • 1970-01-01
                • 2017-02-05
                • 1970-01-01
                • 2015-02-07
                相关资源
                最近更新 更多