Swift Xcode 11.4-归档项目-分段故障11

Swift Xcode 11.4-归档项目-分段故障11,swift,xcode,segmentation-fault,Swift,Xcode,Segmentation Fault,我刚刚将Xcode更新为11.4,在归档项目时,它会显示“分段错误11” 该项目将使用Xcode 11.3.1进行归档,但现在没有 还有其他人遇到过同样的问题吗 编辑:2020年4月15日 苹果刚刚发布了Xcode 11.4.1,我也遇到了同样的问题。归档使用版本构建配置,因此我检查了每个编译器设置,以确定哪些差异导致这些分段错误 在我的情况下,当我将发布的设置启用可测试性更改为是时,问题就消失了 不,我不知道在归档或发布版本中这有什么不利之处,也不知道为什么这种特殊的设置会缓解问题,但归根结

我刚刚将Xcode更新为11.4,在归档项目时,它会显示“分段错误11”

该项目将使用Xcode 11.3.1进行归档,但现在没有

还有其他人遇到过同样的问题吗

编辑:2020年4月15日


苹果刚刚发布了Xcode 11.4.1,我也遇到了同样的问题。归档使用版本构建配置,因此我检查了每个编译器设置,以确定哪些差异导致这些分段错误

在我的情况下,当我将发布的设置启用可测试性更改为时,问题就消失了

不,我不知道在归档或发布版本中这有什么不利之处,也不知道为什么这种特殊的设置会缓解问题,但归根结底,我有一个项目,花了一年的时间才达到这个阶段,我非常渴望将这个项目交给内部测试人员,所以我将通过试飞提交这个项目,看看我会怎么做


我的感觉是这肯定是一个苹果bug,因为编译器根本不应该有Seg错误。它在调试配置下编译的事实支持了这一点。我的项目太大了,我不知道如何复制它来提交一个bug,但我会看看是否能在苹果论坛上得到一些响应。

当我在构建设置中将
SWIFT\u编译模式
设置为
wholemodule
时,帮助我发现了这个问题。然后在编译后得到了一个更具体的错误,导致类函数导致了错误。 后来把它改回原来的样子

也许这对你也有帮助

在我的例子中,init输入参数集使用了三元运算符。 似乎Swift 5.2不再支持它了

// Leads to error with Xcode 11.4
init(value: UIColor = Constants.staticBoolean ? .white : .green)

与其他响应者一样,这里的错误消息中隐藏了一个SwiftUI问题(使用Xcode 11.4)。在我的例子中,使用
.embedInScrollView()
导致生成错误。禁用这些呼叫修复了它。作为解决方法,我将
.embedInScrollView()
放入ViewModifier中,如下所示:

public struct WrapInScrollView: ViewModifier {
    public func body(content: Content) -> some View {
        content
            .embedInScrollView()
    }

    public init() {}
}
.modifier(WrapInScrollView())
然后我使用这个修饰符,有点像最初的调用,如下所示:

public struct WrapInScrollView: ViewModifier {
    public func body(content: Content) -> some View {
        content
            .embedInScrollView()
    }

    public init() {}
}
.modifier(WrapInScrollView())
这意味着您仍然可以嵌入scrollView,但Seg 11错误会消失。

我将
\imageLiteral(resourceName:“image\u name”)
更改为
UIImage(imageLiteralResourceName:“image\u name”)
不幸的是,解决方案对我不起作用

一个临时解决办法(直到苹果解决Xcode 11.4 Swift编译器问题)是在失败的目标(
Swift\u Optimization\u Level=“-Onone”
)上,将优化级别改为“无优化””进行发布。它适用于我们的项目,该项目分为多个框架。只需将一个设置为
-Onone

但是请求不发送带有此标志的代码。它用于开发,它执行最小的优化并保留所有调试信息


我想我们必须等待:“(

在我的例子中,我在Eureka pod中出错

Segmentation fault: 11 (in target 'Eureka' from project 'Pods')
在Pods文件中,我提供了最新版本:

pod 'Eureka', '~> 5.2.1'

还将
SWIFT\u编译\u模式设置为
wholemodule
我有两个与@Published同名的变量。Xcode 11.4.1编译器无法检测到“两个相同的变量”-相反,它返回了分段错误11

@Published var isVirtualRacing = UserDefaults.isVirtualRacing {
  willSet {
  UserDefaults.isVirtualRacing = newValue
  }
}

@Published var isVirtualRacing = UserDefaults.isVirtualRacing {
willSet {
  UserDefaults.isVirtualRacing = newValue
  }
}

我与尤里卡之间出现了错误

唯一能解决这个错误的是

解决方案是下一个:

“我找到了一个解决方法,将RowType.swift中的[unowned self]替换为[weak self]并强制展开self。这可以防止编译器在Xcode 11.4中崩溃-如果您想看一下,可以使用我的fork:

项目维护人员,如果这是一个合适的修复,请让我知道,我会打开一个拉请求!”


我希望它能为您工作

解决方案非常简单。进入Xcode菜单:产品->方案->编辑方案…选择左侧菜单上的构建。然后选中构建选项-查找隐式依赖项应处于启用状态。

适用于o由于Eureka库的原因而导致此错误,Eureka项目有一个名为xcode12的单独分支来修复此问题。它在xcode12上编译时不会出现问题


我的
ObservableObject
对象中有两个同名的变量(
anycancelable
和一个
@Published
)。这是在xCode 11.5中运行的对我来说,问题出在一个远程Swift包(xCode 12)中。我刚把软件包拖到项目中,问题就解决了。

看看这篇帖子:@Tom谢谢,但这并不能解决问题。。我很确定这是一个苹果错误。非常感谢!!你让我开心!!这也修复了我的构建时错误。默认参数中的三元运算符是罪魁祸首。希望苹果能尽快修复这个错误。我不会复制使用Swift master branch。因此可能已经修复。在Xcode 11.4.1中遇到了相同的问题,更改此设置对我也很有效。文档说此标志与使私有接口可访问有关,因此可能存在一些问题…当此设置被激活时,产品将使用适用于运行aut的选项构建omated测试,例如使测试可以访问私有接口。这可能会导致测试运行速度比未启用可测试性时慢。这对我不起作用,并且项目不会为调试和发布而生成。Xcode 11.4.1也没有帮助,我仍然遇到分段错误11。这对我不起作用。我正在尝试在Xcode 11.5中首次发布该项目。我还尝试在发布时禁用Swift编译器优化,但对我无效。任何帮助都将不胜感激。它对我有效,Xcode 12,错误在pods中。这对我无效