问题XCode 8,Swift 2.3存档版本在IOS 9.2.1 - > IOS 9.0上启动时崩溃

Rya*_*ner 6 ios9 xcode8 swift2.3

我使用XCode 8.0将我的应用程序从Swift 2.2更新到Swift 2.3,只做了很少的更改

在调试或发布版本配置中,从XCode运行的一切都运行良好

在IOS设备9.2.1及更低版本(Adhoc或开发配置文件)上测试导出的存档时,我遇到了崩溃

SpringBoard[54] <Warning>: BSXPCMessage received error for message: Connection invalid
SpringBoard[54] <Warning>: BSXPCMessage received error for message: Connection invalid
timed[58] <Notice>: (Note ) CoreTime: Current mcc: '0' simulated:'0'.
SpringBoard[54] <Warning>: HW kbd: Failed to set (null) as keyboard focus
<Error>: error evaluating process info - pid: 1038, puniqueid: 1038
(UIKitApplication:) <Notice>: Service exited due to signal: Segmentation fault: 11. 
Run Code Online (Sandbox Code Playgroud)

这意味着它试图访问某处无效的内存.

我曾尝试写入NSLog并进行跟踪,但无法找到崩溃的点.

我怀疑它可能与XCode 7-8的Storyboard更改有关.

我一直在寻找这个bug的搜索太多时间已经需要很长时间,因为我每次都要创建一个存档.95%的时间它在发射时崩溃,但有时我成功发射.

我在运行IOS 9.3或IOS 10的设备上启动时没有任何问题

-----更新----

我下载了XCode 8-1 beta,这也解决了我的问题.

因此要么使用Xcode 7.3或8.1 beta +而不是8.0.我浏览了8.1 beta的发行说明,但没有提到这个问题.

-----更新----

更新到8.1时,HatTip为@KoCMoHaBTa,此问题已解决,除非您还将部署目标更改为9.0,此时它再次出现.

KoC*_*BTa 1

最终,由于未知的原因,随机崩溃再次开始出现,即使我们将部署目标设置为 8.4。

因此,最后我们最终将部署目标提升至 iOS 9.3,从而消除了受影响版本上的应用程序使用情况。

不幸的是,我们目前无法过渡到 swift 3,所以这也是一个选择。