web-dev-qa-db-ja.com

「CoreUI:RunTimeThemeRefForBundleIdentifierAndName()が識別子「(null)」のバンドルでAssets.carを見つけることができませんでした」という警告を修正する方法?

IOS 13ベータ版でアプリをテストしようとしています。ようこそ画面のボタンをタップして別の画面に切り替えると、アプリがフリーズして終了します。 Xcode 11でデバッグすると、コンソールに次の警告行が表示されます。

[フレームワーク] CoreUI:RunTimeThemeRefForBundleIdentifierAndName()は、IDが「(null)」のアセットのAssets.carを見つけることができませんでした

[フレームワーク] CoreUI:RunTimeThemeRefForBundleIdentifierAndName()は、IDが「(null)」のアセットのAssets.carを見つけることができませんでした

そして数秒後、アプリはログエントリで終了します:

デバッガーからのメッセージ:メモリの問題により終了しました

IOS 12ではそのような問題はありません。いくつかのアセットファイルを使用して簡単なテストアプリを作成し、ボタンタップのセグエが正常に機能しました。また、ターゲットバージョンをiOS 13に変更し、バンドルIDを変更し、クリーンアップして再構築しましたが、問題は引き続き発生します。

8
Gomer Grek

問題は関連していないことがわかりました

CoreUI:RunTimeThemeRefForBundleIdentifierAndName()は、識別子が「(null)」のAssets.carをバンドル内に見つけることができませんでした

ターゲット画面でカスタム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()
    }
}

おそらく、新しいSDKバージョンは、attributedTextフィールドが変更されたときに、layoutSubviews()を呼び出します。

4
Gomer Grek