我尝试存档我的应用并收到此错误: 由于信号命令失败:分段错误: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__".
答案 0 :(得分:13)
尝试禁用Swift Compiler Optimization for Release
然后,如果您收到丢失文件的任何错误:
在文件的文件检查器中,单击“位置”旁边的文件夹图标并手动找到该文件
答案 1 :(得分:0)
检查构建设置 - &gt; Swift 3 @Objc推断。它很可能应该关闭。
答案 2 :(得分:0)
就我而言,我测试了所有解决方案,包括在构建设置中禁用优化:
构建设置>优化级别>发布>无优化[-Onone]
我不建议您使用上述解决方案,因为这会影响您的整个应用,并且最终的二进制文件也不会得到优化。
基于与Apple技术团队的联系,可能导致此错误的原因有多种,但是在优化过程中存在一个已知的存档错误,您需要通过查找编译器出现故障的位置并添加{{ 1}}导致问题的函数顶部。
此属性将告诉编译器忽略该函数以进行优化。
@_optimize(none)