从嵌套的Swift包访问资产时,SwiftUI预览会崩溃

一个模块

我有一个具有两个结构的模块 (A)。

  • 一种直接在代码中启动的颜色。
  • 一种从资产加载的颜色。
public struct CodeColor {
    public init() { }
    public let value = SwiftUI.Color(#colorLiteral(red: 0.8549019694, green: 0.250980407, blue: 0.4784313738, alpha: 1))
}

public struct AssetColor {
    public init() { }
    public let value = SwiftUI.Color("Legacy/Material/Gold", bundle: .module)
}

预览效果很好:


B模块

第二个模块 (B) 应使用前一个 (A) 作为依赖项从以下位置加载颜色:

import A

public struct CodeColor {
    public init() { }
    public var value: SwiftUI.Color { A.CodeColor().value }
}

public struct AssetColor {
    public init() { }
    public var value: SwiftUI.Color { A.AssetColor().value }
}

但是一旦它触及模块 (A) 中的资产,预览就会崩溃:

错误:

无法在此文件中预览。无法更新预览。

RemoteHumanReadableError: Failed to update preview.

The preview process appears to have crashed.

Error encountered when sending 'previewInstances' message to agent.

==================================

|  RemoteHumanReadableError: The operation couldn’t be completed. (BSServiceConnectionErrorDomain error 3.)
|  
|  BSServiceConnectionErrorDomain (3):
|  ==BSErrorCodeDescription: OperationFailed

那是为什么?

笔记:奇怪的是,如果它在实际应用程序中(而不是另一个包),则确切的 B 预览代码正在工作

这是github上的完整代码

以上是从嵌套的Swift包访问资产时,SwiftUI预览会崩溃的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>