求助,升级 xcode6.3.1 后工程不能 archive

2015-04-28 09:09:33 +08:00
 xuming
昨天升级了xcode6.3.1后,发现旧的工程,可以build成功,但archive的时候总报错

Command failed due to signal: Segmentation fault: 11
4121 次点击
所在节点    iDev
5 条回复
banxi1988
2015-04-28 09:40:35 +08:00
我遇到过这个问题:
其实你的问题更详细的说法是:
Release编译模式下,编译失败,不信的话,你使用Release编译时也会出错的.

鉴于你没有贴出具体的错误.
那我就根据我之前遇到的错误说一下吧:
1. Swift 为主的项目,
2. 提示编译出错的也是一个 Swift 源代码文件.
3. 提示应该是循环引用导致的编译错误,

根据出错的编译错误的文件,
删除可疑的代码
然后就OK了,并找出了引起错误的代码,分分钟修正.(找出错误的代码花了一天时间 ---哭)

本来是想分享出来 的.
但是在构建一个简单的可重现的问题的小项目时,发现问题不能重现

所以,如果你的搞个小Demo出来重现这个问题,我将是感激不尽的.

最后: 提问没有具体的错误信息, 这样不好..
onevcat
2015-04-28 09:43:25 +08:00
如果是 Swift 的话,着急没时间找就把优化先关了,直接 release 也用 -Onone 优化。这种一般是 Swift 的编译器的 bug,提个 radar 等 Apple 修吧。
banxi1988
2015-04-28 09:50:47 +08:00
@onevcat 我也遇到过,但是当我想创建一个小Demo来重现此错误时,没能重现.
没有能重现的错误, 也没没好报Bug了.
我的错误情况是:
1. 循环引用的错误(子引用父的时候,已加了weak) (Parent 1---> N Child)
2. 实现Child 和 Parent 都实现Equatable协议.
```
func ==(lhs:Parent,rhs:Parent) -> Bool{
return (lhs.name == rhs.name
&& lhs.age == rhs.age
&& lhs.children == rhs.children
)
}
```
如上: 将 lhs.children == rhs.children 的比较删除即可.
xuming
2015-05-03 09:09:36 +08:00
最近较忙,现在才来回复,
@onevcat 确实是编译器的问题,改成-Onone就通过了,非常感谢
@banxi1988 错误提示就是Segmentation fault: 11,根本无法定位,先照onevcat 的方法编译了。等下一个版本的xcode吧。
banxi1988
2015-05-03 17:21:16 +08:00
@xuming 错误信息没有指出出错文件? 虽然它的提示信息只是这个,
但是上下文也是很重要的,出错的编译文件, 出错时的编译时期...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/186880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX