【发布时间】:2017-01-30 16:41:53
【问题描述】:
我使用 XCode 8.0 将我的应用程序从 Swift 2.2 更新到 Swift 2.3,并进行了最小的更改
在调试或发布构建配置中从 XCode 运行一切正常
在 IOS 设备 9.2.1 及更低版本(即席或开发配置文件)上测试导出的存档时,我遇到了崩溃
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.
这意味着它正在尝试访问无效的内存。
我已尝试写入 NSLog 并进行跟踪,但无法找到崩溃的点。
我怀疑这可能与 XCode 7-8 的 Storyboard 更改有关。
我一直在寻找这个错误的搜索时间已经很长时间了,因为我每次都必须创建一个存档。 95% 的时间它会在启动时崩溃,但有时我会成功启动。
我在运行 IOS 9.3 或 IOS 10 的设备上启动没有问题
----- 更新----
我下载了 XCode 8-1 测试版,这也解决了我的问题。
所以要么使用 Xcode 7.3 或 8.1 beta+,但不要使用 8.0。我浏览了 8.1 beta 的发行说明,但没有看到有关此问题的内容。
----- 更新----
更新到 8.1 时向 @KoCMoHaBTa 发出提示,此问题已解决,除非您还将部署目标更改为 9.0,此时该问题再次发生。
【问题讨论】:
-
我们有同样的问题。目前还不清楚是什么原因,但 Xcode 8.1 GM 似乎解决了这个问题,直到我们将部署目标提高到 iOS 9.0。在此之前我们支持 iOS 8.3。因此,当我们提高部署目标时 - 它开始在 Xcode 8.1 GM 中再次崩溃。
-
@KoCMoHaBTa 这是一个可怕的消息,它只在 9.0 -> 9.2.1 中崩溃吗?
-
它在 9.2.1 上崩溃了。我们无法在 9.0 上进行测试,因为我们没有这样的设备。 Ofc 在模拟器上运行良好。
-
@KoCMoHaBa 我的结果和你一模一样,工作正常,直到我改成 9.0