6

我使用 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 beta,这也解决了我的问题。

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

- - - 更新 - -

更新到 8.1 时向@KoCMoHaBTa 提示,此问题已解决,除非您还将部署目标更改为 9.0,此时该问题再次发生。

4

2 回答 2

2

我参加聚会可能有点晚了,但我们已经研究这个错误 2 天了。以下 stackoverflow 帖子为我们修复了它:Xcode 8 build crash on iOS 9.2 and below

它还解释了 iOS 9.3 的不同之处在于将其作为 iOS 版本的部署目标“神奇地”解决了所有问题

这可能值得一试;)

于 2016-11-09T14:05:25.757 回答
1

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

所以最后我们结束了将部署目标提高到 iOS 9.3,这消除了受影响版本上的应用程序使用。

不幸的是,我们现在无力过渡到 swift 3,所以这也是一个选择。

于 2016-11-08T11:15:14.070 回答