我遇到了同样的问题。归档使用 Release 构建配置,所以我查看了每个编译器设置,以确定哪些差异导致这些段错误。
在我的情况下,当我将Release中的Enable Testability设置更改为YES时,问题就消失了。
我不知道在归档或发布版本中这样做的缺点,也不知道为什么特定的设置会缓解问题,但说到底,我的项目已经花了一年时间到达这个阶段,我非常想将其提交给内部测试人员,因此我准备通过测试飞行来尝试一下。
我认为这绝对是苹果的一个 bug,因为编译器根本不应该出现 Seg 错误。它能够在 Debug 配置下编译的事实支持了这一点。我的项目如此庞大,以至于我不知道如何复现此问题以提交 bug 报告,但我会在 Apple 论坛上看看是否能得到一些回应。
当我在构建设置中将SWIFT_COMPILATION_MODE
设置为wholemodule
时,它帮助我找到了问题。然后编译后得到了一个更具体的错误,这导致了引起错误的类函数。
后来又改回原来的设置。
也许对你也有帮助。
在我的情况下,对于init输入参数设置使用了三元运算符。 似乎Swift 5.2不再支持它了。
// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)
我的情况是Eureka pod出现了错误
Segmentation fault: 11 (in target 'Eureka' from project 'Pods')
在Pods文件中,我提供了最新版本:
pod 'Eureka', '~> 5.2.1'
SWIFT_COMPILATION_MODE
设置为wholemodule
。和其他回答者一样,这里的错误信息中隐藏了一个SwiftUI问题(使用Xcode 11.4)。在我的情况下,使用.embedInScrollView()
导致了构建错误。禁用这些调用可以修复它。作为解决方法,我将.embedInScrollView()
放入了一个ViewModifier中,像这样:
public struct WrapInScrollView: ViewModifier {
public func body(content: Content) -> some View {
content
.embedInScrollView()
}
public init() {}
}
然后我使用这个修改器,就像最初的调用一样,像这样:
.modifier(WrapInScrollView())
我有两个使用@Published修饰的同名变量。Xcode 11.4.1编译器无法检测到“两个相同变量”,而是返回了分段错误11。
@Published var isVirtualRacing = UserDefaults.isVirtualRacing {
willSet {
UserDefaults.isVirtualRacing = newValue
}
}
@Published var isVirtualRacing = UserDefaults.isVirtualRacing {
willSet {
UserDefaults.isVirtualRacing = newValue
}
}
我将#imageLiteral(resourceName: "image_name")
修改为UIImage(imageLiteralResourceName: "image_name")
我在使用Eureka时遇到了错误。
唯一解决这个错误的方法是临时采用WilsonGramer的解决方案。
解决方法如下:
"我通过将RowType.swift中的[unowned self]替换为[weak self]并强制解包self来找到了一种解决方法。这可以防止编译器在Xcode 11.4中崩溃 - 如果您想查看,您可以使用我的分支:https://github.com/Wilsonator5000/Eureka/tree/fix/xcode11.4-unowned-self
如果这是一个合适的解决方案,请让项目维护者告诉我,我会打开一个拉取请求!" WilsonGramer
希望对你有所帮助。