从嵌套的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上的完整代码