我看到了XIB的这个错误。但其他一切都在编译,并且这个错误似乎没有造成任何伤害。这是我需要担心的吗?这里的问题是什么,我将如何解决这个问题?
更新: 我已经将cocoapods更新到最新版本(0.36.3),虽然修复了一些编译问题,但错误已经恢复,我现在看到了一个额外的错误:
答案 0 :(得分:74)
这是CocoaPods中的一个已知问题。 它已在版本 0.36.1 中修复。 只需更新您的CocoaPods,然后将特定的代码行添加到您的pod文件中: 在平台之后 use_frameworks!:ios,'7.0'
所以你的文件看起来像这样:
platform :ios, '7.0'
use_frameworks!
/// here will be dependencies etc. ///
<强> 更新 强>
一劳永逸地解决问题的完整步骤列表:
pod update
; 答案 1 :(得分:31)
经过一些研究和挖掘,我可以确认,没有办法解决这个问题。
这是Xcode的错误。
这就是全部。我们必须等待更新。
暂时重新启动 Xcode。
答案 2 :(得分:15)
这对我有用:
答案 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自定义视图相同的问题。
执行以下操作为我解决了问题
use_frameworks!
pod update
答案 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!
时,我也遇到了类似的错误。最后,我分叉了一个框架,该框架使用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
}
}
它有效,并且不再在Interface builder中创建错误。但是,很遗憾,我不得不执行此解决方法。