命令由于信号而失败:分段错误:11归档

时间:2017-02-10 19:30:39

标签: ios xcode swift3 xcode8

我尝试存档我的应​​用并收到此错误: 由于信号命令失败:分段错误:11

当我构建它时,一切都很顺利,也在真实设备上。归档时会发生这种情况。任何想法如何解决?

这是错误的一部分:

0  swift                    0x000000010f79f3ad PrintStackTraceSignalHandler(void*) + 45
1  swift                    0x000000010f79eb56 SignalHandler(int) + 790
2  libsystem_platform.dylib 0x00007fffc82d5bba _sigtramp + 26
3  libsystem_platform.dylib 0x0000000000000040 _sigtramp + 936551584
4  swift                    0x000000010cae0de3 swift::CastOptimizer::optimizeUnconditionalCheckedCastAddrInst(swift::UnconditionalCheckedCastAddrInst*) + 1699
5  swift                    0x000000010cb69d4d processFunction(swift::SILFunction&, bool, unsigned int) + 1917
6  swift                    0x000000010cb70c9f (anonymous namespace)::ConstantPropagation::run() + 47
7  swift                    0x000000010caff89e swift::SILPassManager::runOneIteration() + 5166
8  swift                    0x000000010cb051f6 swift::runSILOptimizationPasses(swift::SILModule&) + 3462
9  swift                    0x000000010c7ac0e2 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*) + 20114
10 swift                    0x000000010c7a52b3 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 17859
11 swift                    0x000000010c7615cf main + 8239
12 libdyld.dylib            0x00007fffc80c8255 start + 1
13 libdyld.dylib            0x00000000000000ee start + 938704538

最后:

1.  While running pass #38147 SILFunctionTransform "Constant Propagation" on SILFunction "@_TTSg5VSC29UIApplicationLaunchOptionsKeyS_s8Hashable5UIKit_P__CSo8NSObjectS2_S0_10ObjectiveC_Ps9AnyObject____TFs17_dictionaryUpCastu2_Rxs8Hashable0_S_rFGVs10Dictionaryxq__GS0_q0_q1__".

3 个答案:

答案 0 :(得分:13)

尝试禁用Swift Compiler Optimization for Release

然后,如果您收到丢失文件的任何错误:

在文件的文件检查器中,单击“位置”旁边的文件夹图标并手动找到该文件

答案 1 :(得分:0)

检查构建设置 - &gt; Swift 3 @Objc推断。它很可能应该关闭。

答案 2 :(得分:0)

就我而言,我测试了所有解决方案,包括在构建设置中禁用优化:

构建设置>优化级别>发布>无优化[-Onone]

我不建议您使用上述解决方案,因为这会影响您的整个应用,并且最终的二进制文件也不会得到优化。

基于与Apple技术团队的联系,可能导致此错误的原因有多种,但是在优化过程中存在一个已知的存档错误,您需要通过查找编译器出现故障的位置并添加{{ 1}}导致问题的函数顶部。

此属性将告诉编译器忽略该函数以进行优化。

@_optimize(none)