这种失败是因为使用低于 iOS 11 的部署目标进行构建,也将构建 armv7 架构,并且在 iOS SDK 中没有 SwiftUI 的 armv7 swiftmodule,因为首次引入它的操作系统版本(iOS 13)不再支持 armv7。
我已经通过将 SwiftUI 代码/文件包装在 #if arch(arm64)
的预处理器中解决了归档问题。
例如 -
#if arch(arm64)
@available(iOS 13.0, *)
struct MyCustomView: View {
var myStrings: [String]
var body: some View {
List {
ForEach(myStrings) { str in
Text(str)
}
}
}
}
#endif
这将禁用预览,如果您的部署目标是iOS 10或更低版本。但如果仅在存档时使用,这将有效。
如果有更好的解决方案,请分享。
添加此答案,以便处于我的情况的人可以至少使用SwiftUI使其工作。
干杯!
#if (arch(arm64) || arch(x86_64))
这样你就可以为模拟器编译了。 - arsenius#if DEBUG || arch(arm64)
。 - Manav