如何解决警告“ CoreUI:RunTimeThemeRefForBundleIdentifierAndName()在标识符为'(null)'的捆绑包中找不到Assets.car?”

时间:2019-09-12 18:03:41

标签: swift ios13 xcode11

我尝试在iOS13 Beta上测试应用。当我在欢迎屏幕上点击按钮以选择另一个屏幕时,应用程序冻结,然后终止。当我在Xcode 11中调试时,在控制台日志中看到以下警告行

[framework] CoreUI: RunTimeThemeRefForBundleIdentifierAndName() couldn't find Assets.car in bundle with identifier: '(null)'
[framework] CoreUI: RunTimeThemeRefForBundleIdentifierAndName() couldn't find Assets.car in bundle with identifier: '(null)'

,然后几秒钟后,应用程序终止并显示日志条目:

Message from debugger: Terminated due to memory issue

在iOS 12上没有这样的问题。我用几个资产文件创建了简单的测试应用程序,并在单击按钮时进行筛选工作正常。我也将目标版本更改为iOS 13,更改了包标识符,进行了清理和重建-但问题并没有消失

2 个答案:

答案 0 :(得分:3)

我发现问题与

无关
"CoreUI: RunTimeThemeRefForBundleIdentifierAndName() couldn't find Assets.car in bundle with identifier: '(null)'"

在目标屏幕上使用了自定义UILabel。应用程序冻结和内存问题的根本原因是方法之间的折返循环

override var text: String? {
    didSet {
        guard let text = text else { return }
        let textRange = NSMakeRange(0, text.count)
        // Kern attribute needed to do letter spacing over text
        let attributedText = NSMutableAttributedString(string: text)
        attributedText.addAttribute(NSAttributedStringKey.kern , value: 2.0, range: textRange)
        // Add other attributes if needed
        self.attributedText = attributedText
    }
}

override public func layoutSubviews() {
    super.layoutSubviews()
    if let text = self.text {
        self.text = text.uppercased()
    }
}

attributedText字段更改后,可能是新版SDK会调用layoutSubviews()

答案 1 :(得分:-1)

要解决此问题,只需定位到目标的构建阶段,然后删除Assets.xcasset并重新添加即可。