【问题标题】:Xcode 11.4 - Archiving project - Segmentation Fault 11Xcode 11.4 - 归档项目 - 分段错误 11
【发布时间】:2020-07-06 22:56:39
【问题描述】:

我刚刚将 Xcode 更新到 11.4,归档项目时它显示“Segmentation Fault 11”

这个项目将使用 Xcode 11.3.1 存档,但现在它没有..

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

编辑:2020 年 4 月 15 日

Apple 刚刚发布了 Xcode 11.4.1

【问题讨论】:

标签: ios swift xcode segmentation-fault


【解决方案1】:

我遇到了同样的问题。归档使用 Release 构建配置,因此我检查了每个编译器设置以找出导致这些分段错误的差异。

在我的例子中,当我将 ReleaseEnable Testability 设置更改为 YES 时,问题就消失了。

不,我不知道存档或发布版本的缺点是什么,或者确实为什么这个特定设置可以缓解问题,但归根结底,我有一个项目花了一年时间才完成到这个阶段,我非常渴望将它提供给内部 beta 测试人员,所以我将通过试飞提交这个,看看我会怎么做。

我的感觉是这绝对是一个 Apple 错误,因为编译器根本不应该是 Seg Faulting。它在 Debug 配置下编译的事实对此提供了支持。我的项目太大了,我不知道如何重现它以提交错误,但我会看看我是否可以在 Apple 论坛上得到一些回应。

【讨论】:

  • 在 Xcode 11.4.1 中遇到了同样的问题,更改此设置也对我有用。文档说这个标志与使私有接口可访问有关,所以也许那里有一些东西......当这个设置被激活时,产品将使用适合运行自动化测试的选项构建,例如使私有接口可以访问测试。这可能会导致测试的运行速度比未启用可测试性的情况下运行得慢。
  • 这对我不起作用,并且项目不会为调试和发布而构建。 Xcode 11.4.1 也没有帮助,我仍然遇到分段错误 11。
  • 这对我不起作用。我正在尝试在 Xcode 11.5 中首次展示该项目。我还尝试禁用 Swift Compiler Optimization for Release,但对我不起作用。任何帮助将不胜感激。
  • 它对我有用,xcode12 并且错误出现在 pod 中。
  • 我在 Xcode 13.0 中遇到了同样的问题,但上述技巧不起作用。我仍然不知道这个问题。
【解决方案2】:

当我在构建设置中将SWIFT_COMPILATION_MODE 设置为wholemodule 时,我帮助找到了问题。然后在编译后得到一个更具体的错误,导致类函数导致错误。 后来改回原来的样子。

也许它对你也有帮助。

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

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

【讨论】:

  • 非常感谢!!你让我开心!!
  • 这也修复了我的构建时间错误。默认参数中的三元运算符是罪魁祸首。希望苹果尽快修复这个错误。
  • 我没有使用 Swift 主分支 github.com/apple/swift/tree/master 进行复制。所以可能已经修复了。
【解决方案3】:

与其他响应者一样,此处的错误消息中隐藏了一个 SwiftUI 问题(使用 Xcode 11.4)。就我而言,使用 .embedInScrollView() 导致了构建错误。禁用这些调用修复了它。作为一种解决方法,我将.embedInScrollView() 放入 ViewModifier 中,如下所示:

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

    public init() {}
}

然后我使用那个修饰符有点像原来的调用,像这样:

.modifier(WrapInScrollView())

这意味着您仍然可以嵌入到滚动视图中,但 Seg 11 错误消失了。

【讨论】:

    【解决方案4】:

    我把#imageLiteral(resourceName: "image_name")改成了UIImage(imageLiteralResourceName: "image_name")

    【讨论】:

      【解决方案5】:

      很遗憾,Enable Testability 解决方案对我不起作用。

      一个临时解决方法(直到 Apple 修复 Xcode 11.4 Swift 编译器问题)是将 Optimization Level 设置为“No Optimization”以用于发布,目标是失败(SWIFT_OPTIMIZATION_LEVEL = "-Onone";)。它适用于我们的项目,该项目分为多个框架。只需将一个设置为-Onone

      Apple documentation 要求不要使用此标志发布您的代码。它用于开发,执行最少的优化并保留所有调试信息。

      我认为我们必须等待:'(

      【讨论】:

      • 这对我不起作用,并且项目不会为调试和发布而构建。 Xcode 11.4.1 也没有帮助,我仍然遇到分段错误 11。
      • 这是类型推断和泛型错误的问题。通过编译二分法的研究解决了这个问题!
      【解决方案6】:

      就我而言,我在使用 Eureka pod 时遇到了错误

      Segmentation fault: 11 (in target 'Eureka' from project 'Pods')
      

      在 Pods 文件中我提供了最新版本:

      pod 'Eureka', '~> 5.2.1'
      

      还将SWIFT_COMPILATION_MODE 设置为wholemodule

      【讨论】:

        【解决方案7】:

        @Published 有两个同名变量。 Xcode 11.4.1 编译器无法检测到“两个相同的变量”,而是返回了分段错误 11。

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

        【讨论】:

        • 我遇到了完全相同的问题。
        【解决方案8】:

        我遇到了 Eureka 的错误

        修复错误的唯一方法是WilsonGramer的临时解决方案

        解决办法是下一个:

        “我找到了一个解决方法,将 RowType.swift 中的 [unowned self] 替换为 [weak self] 并强制展开 self。这可以防止编译器在 Xcode 11.4 中崩溃——如果你想采取看你可以用我的叉子:https://github.com/Wilsonator5000/Eureka/tree/fix/xcode11.4-unowned-self

        项目维护者,如果这是一个合适的修复,请告诉我,我会打开一个拉取请求!”WilsonGramer

        希望对你有用

        【讨论】:

          【解决方案9】:

          解决方案非常简单。转到 Xcode 菜单中:Product -> Scheme -> Edit Scheme... 选择左侧的 Build菜单。并检查 Build Options - Find Implicit Dependencies 应该打开。 Photo of example

          【讨论】:

            【解决方案10】:

            对于因 Eureka 库而出现此错误的人,Eureka 项目有一个名为 xcode12 的单独分支可以解决此问题。它在 Xcode 12 上编译没有问题。

            https://github.com/xmartlabs/Eureka/tree/xcode12

            【讨论】:

              【解决方案11】:

              我的ObservableObject 对象中有两个同名的变量(AnyCancellable 和一个@Published)。这是在 xCode 11.5 中运行的

              【讨论】:

                【解决方案12】:

                对我来说,问题出在 Remote Swift Package (Xcode 12) 之一。我只是将包拖到项目中,问题就解决了。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2016-08-16
                  • 1970-01-01
                  • 2015-09-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2020-04-10
                  • 1970-01-01
                  相关资源
                  最近更新 更多