更新到 Xcode 10.2 后如何修复 "Bus error 10"

How to fix "Bus error 10" after update to Xcode 10.2

我将 Xcode 更新为新的稳定 10.2v。我尝试构建我的项目并且成功了。当我尝试存档项目(工作区)时,出现如下屏幕截图所示的错误:

到目前为止我尝试过的:

  1. 更新 cocoa pods 到最新版本 -> COCOAPODS: 1.7.0.beta.3
  2. 清理 DeliveredData 文件夹
  3. 重新安装Xcode
  4. 删除存储库,再次克隆并安装 pods
  5. 从项目中完全删除所有 pods 并将它们添加回来

答案在这里:https://github.com/hyperoslo/Cache/issues/238

我们正在等待此回购的所有者做出任何生命迹象...

临时解决方法

对我来说,它只是 Cache 框架。在他们修复它之前,您可以手动将 SWIFT_OPTIMIZATION_LEVEL 设置为 -Onone 作为您要用于存档的配置。

CocoaPods

如果您不希望 Cococapods 每次都覆盖设置,您甚至可以使用 Podfile 运行 pod install

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            if target.name == 'Cache'
                config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone'
            end
        end
    end
end

Note that this is specifically checking for the Cache framework. If you have problems with other frameworks you might want to change or extend this condition.

虽然 Lukas 关于禁用缓存 pod 优化的回答有效,但我跟随 Alex 的 link 在他们的 GitHub 回购中解决了这个问题,发现有一个开放的拉取请求,代码非常简单更改修复它。我解锁了文件并在本地进行了更改。

这是公关:https://github.com/hyperoslo/Cache/pull/236

应用此差异:https://github.com/hyperoslo/Cache/pull/236/commits/560f00a9a9549db161ca70d96eed74fc580b03e3#diff-9e53dc1370d4f7c9cdaaa103d26ff096

在此重复,在文件 MD5.swift 中将 safe_add 函数更改为:

func safe_add(_ x: Int32, _ y: Int32) -> Int32 {
  return x &+ y
}

(免责声明:我不声称知道更改的正确性,但合并 PR 的延迟似乎是由于弄清楚当前谁在维护 repo。)