在Swift 3中归档项目并获得"由于信号分段故障导致命令失败11"

Den*_*Ree 1 archive swift3

我更新了Swift 3的代码,在设备上运行,一切正常,但是当我存档项目时,在清理和删除Delivered Data之后,我有错误"命令因信号分段故障而失败11"

我的日志

0 swift 0x000000010a5ffb6d PrintStackTraceSignalHandler(void*)+ 45

1 swift 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 swift 0x00000001079cb82d main + 8685

12 libdyld.dylib 0x00007fff8936c5ad start + 1

13 libdyld.dylib 0x000000000000006d start + 1992899265堆栈转储:

还有这个

  1. 正在运行#1059521 SILFunction在SILFunction上转换"常量传播""@ _TTSg5VSC29UIApplicationLaunchOptionsKeyS_s8Hashable5UIKit_P__CSo8NSObjectS2_S0_10ObjectiveC_Ps9AnyObject ____ TFs17_dictionaryUpCastu2_Rxs8Hashable0_S_rFGVs10Dictionaryxq__GS0_q0_q1__".

有人可以帮忙或告诉我,我应该在哪里搜索bug?

dea*_*rse 13

在我的例子中,我将launchOptions作为函数参数传递给另一个类

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool

迁移到Swift 3后,迁移器添加了强制转换以匹配等待参数的类型,类型为[NSObject : AnyObject]?(pre Swift 3)

我所要做的只是更新我的自定义函数[UIApplicationLaunchOptionsKey: Any]作为参数并删除该错误转换.就那么简单

我没有妥协任何优化级别(这甚至不应该是开发人员的最后手段,这绝对不是解决编译器错误/分段错误的方法).删除演员后,所有工作正常,swift的整个模块优化.