在 Swift 3 中存档项目并获得“由于信号分段错误 11 导致命令失败”
Posted
技术标签:
【中文标题】在 Swift 3 中存档项目并获得“由于信号分段错误 11 导致命令失败”【英文标题】:Archive project in Swift 3 and get "command failed due to signal segmentation fault 11" 【发布时间】:2016-09-28 23:41:55 【问题描述】:我更新了我的 Swift 3 代码,在设备上运行并且一切正常,但是当我存档项目时,在清理和删除交付的数据后,我有错误“由于信号分段错误 11 导致命令失败”
我的日志
0 迅速 0x000000010a5ffb6d PrintStackTraceSignalHandler(void*) + 45
1 快速 0x000000010a5ff5b6 SignalHandler(int) + 470
2 libsystem_platform.dylib 0x00007fff9560152a _sigtramp + 26
3 libsystem_platform.dylib 0x00007fff5825ab50 _sigtramp + 3267728960
4 swift 0x0000000107d29432 swift::CastOptimizer::optimizeUnconditionalCheckedCastAddrInst(swift::UnconditionalCheckedCastAddrInst*) + 1554
5 swift 0x0000000107db144d processFunction(swift::SILFunction&, bool, unsigned int) + 1901
6 swift 0x0000000107db7f9f (匿名命名空间)::ConstantPropagation::run() + 47
7 swift 0x0000000107d4862d swift::SILPassManager::runOneIteration() + 6077
8 swift 0x0000000107d4d7d6 swift::runSILOptimizationPasses(swift::SILModule&) + 3462
9 swift 0x0000000107a153cb performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef, int&, swift::FrontendObserver*) + 20107
10 swift 0x0000000107a0e265 swift::performFrontend(llvm::ArrayRef, char const*, void*, swift::FrontendObserver*) + 17029
11 快速 0x00000001079cb82d 主 + 8685
12 libdyld.dylib 0x00007fff8936c5ad 开始 + 1
13 libdyld.dylib 0x000000000000006d 开始 + 1992899265 堆栈转储:
还有这个
- 在运行过程中通过#1059521 SILFunctionTransform "Constant Propagation" on SILFunction "@_TTSg5VSC29UIApplicationLaunchOptionsKeyS_s8Hashable5UIKit_P__CSo8NSObjectS2_S0_10ObjectiveC_Ps9AnyObject____TFs17_dictionaryUpCastu2_Rxs8Hashable0_S_rFGVs1
有人可以帮忙或告诉我应该在哪里搜索错误吗?
【问题讨论】:
我也有同样的问题 - 如果我找到解决方案会通知您。 这解决了我的问题:***.com/a/26108868/3874596 @denjiz 谢谢,它也为我解决了) 谢谢@denjiz,他的回答帮助了我)answer for my issue 嗯。降低优化级别如何帮助甚至被标记为正确的解决方案? 【参考方案1】:在我的例子中,我将 launchOptions 作为函数参数传递给内部的另一个类
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool
迁移到 Swift 3 后,迁移器添加了强制转换以匹配等待参数的类型,该类型为 [NSObject : AnyObject]?
(Swift 3 之前)
我所要做的就是更新我的自定义函数以将[UIApplicationLaunchOptionsKey: Any]
作为参数并删除该错误转换。就这么简单
我不必妥协任何优化级别(这甚至不应该是开发人员的最后手段,这绝对不是解决编译器错误/分段错误的方法)。删除演员表后,swift 的整个模块优化都可以正常工作。
【讨论】:
快点!为我节省了一些时间 它有帮助!就我而言,这是对 Amazon 与他们的 Mobile Hub 解决方案一起提供的代码的重用。我猜他们不会经常更新,所以要小心! 我遇到了同样的问题,你的解决方案救了我!就我而言,这是导致问题的 AWS 移动客户端演示代码,但仅在我尝试存档时。 谢谢大家,很高兴听到它有效并为您节省了时间!以上是关于在 Swift 3 中存档项目并获得“由于信号分段错误 11 导致命令失败”的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Xcode 6.1 中存档正在工作的 6.0.1 Swift 项目/分段错误:11
Xcode 11 存档给出 PhaseScriptExecution 失败