Xcode - 编译Swift分段错误11

时间:2016-09-02 09:20:23

标签: ios objective-c iphone swift xcode

项目配置: Xcode 7.3.1 min iOS 7.1版 iOS SDK 9.3 的CocoaPods

尝试编译混合的Objective-C / Swift项目时 - 获取错误Segmentation Fault 11,使用下一个构建日志:

Compile *.swift 
Command failed due to signal: Segmentation Fault 11

详细说明,错误我可以通过一些有用的信息看到非常长的输出:

CompileSwift normal arm64 filePath/*.swift

0  swift                    0x000000010b73266b llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 43
1  swift                    0x000000010b731956 llvm::sys::RunSignalHandlers() + 70
2  swift                    0x000000010b732ccf SignalHandler(int) + 287
3  libsystem_platform.dylib 0x00007fff8b49e52a _sigtramp + 26
4  libsystem_platform.dylib 0x00007fa8f989d5e0 _sigtramp + 1849684176
5  swift                    0x000000010994d737 swift::ClangImporter::Implementation::addEntryToLookupTable(clang::Sema&, swift::SwiftLookupTable&, clang::NamedDecl*) + 151
6  swift                    0x000000010994d802 swift::ClangImporter::Implementation::addEntryToLookupTable(clang::Sema&, swift::SwiftLookupTable&, clang::NamedDecl*) + 354
7  swift                    0x000000010994e44c swift::ClangImporter::Implementation::importHeader(swift::ModuleDecl*, llvm::StringRef, swift::SourceLoc, bool, std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer> >) + 1468
8  swift                    0x000000010994ebc6 swift::ClangImporter::importBridgingHeader(llvm::StringRef, swift::ModuleDecl*, swift::SourceLoc, bool) + 502
9  swift                    0x000000010993ef2d swift::CompilerInstance::performSema() + 605
10 swift                    0x0000000109482596 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&) + 934
11 swift                    0x000000010948168d frontend_main(llvm::ArrayRef<char const*>, char const*, void*) + 2781
12 swift                    0x000000010947d0ac main + 1932
13 libdyld.dylib            0x00007fff887b05ad start + 1
14 libdyld.dylib            0x000000000000026b start + 2005204159

架构编译错误更改,如果我从设备切换到模拟器并向后,所以不应该是架构问题。

阅读Mac控制台输出我可以看到,同时在SourceKit服务中崩溃:

Thread 4 Crashed:: Dispatch queue: com.apple.root.default-qos
0   com.apple.SourceKitService.703.0.18.8   0x0000000106f1ca63 swift::ClangNode::getLocation() const + 19
1   com.apple.SourceKitService.703.0.18.8   0x0000000106c22a0f swift::ClangImporter::lookupBridgingHeaderDecls(llvm::function_ref<bool (swift::ClangNode)>, llvm::function_ref<void (swift::Decl*)>) const + 111
2   com.apple.SourceKitService.703.0.18.8   0x0000000106c22cb8 swift::ClangImporter::lookupDeclsFromHeader(llvm::StringRef, llvm::function_ref<bool (swift::ClangNode)>, llvm::function_ref<void (swift::Decl*)>) const + 216
3   com.apple.SourceKitService.703.0.18.8   0x00000001069a9034 swift::ide::printHeaderInterface(llvm::StringRef, swift::ASTContext&, swift::ASTPrinter&, swift::PrintOptions const&) + 852
4   com.apple.SourceKitService.703.0.18.8   0x00000001068bf368 SourceKit::SwiftInterfaceGenContext::create(llvm::StringRef, bool, llvm::StringRef, swift::CompilerInvocation, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 1992
5   com.apple.SourceKitService.703.0.18.8   0x00000001068c1de8 SourceKit::SwiftLangSupport::editorOpenHeaderInterface(SourceKit::EditorConsumer&, llvm::StringRef, llvm::StringRef, llvm::ArrayRef<char const*>) + 1704
6   com.apple.SourceKitService.703.0.18.8   0x00000001068d7895 handleRequestImpl(void*, std::__1::function<void (void*)>) + 6773
7   com.apple.SourceKitService.703.0.18.8   0x00000001068d5dc4 sourcekitd::handleRequest(void*, std::__1::function<void (void*)>) + 420

问题已经发生绝对随机项目总是正常工作,并且一度停止在模拟器上运行,但在设备上继续正常运行。在那之后它无论如何都停止了运行。回过头来提交,我可以看到,这个问题在过去几周内存在,并且检查每个更改都是相当多的工作,并没有给出任何结果。

显然这是一些Xcode问题,但清理,删除衍生数据,模块缓存,Xcode设置,重新安装Xcode,使用测试版和以前版本的Xcode,删除Source Kit服务,禁用/启用模块支持,bitcode,增加/减少部署目标和任何其他建议,可以用Google搜索 - 给出相同的结果。

阅读互联网评论 - 问题应该在代码的某些部分,与swift相关,但完全评论或删除所有swift相关代码会产生另一个错误:

cyclic dependency in module 'darwin'

这样,任何像Foundation或UIKit这样的框架都无法编译,而且我收到了数百个与未知类相关的错误。

创建新项目并逐个添加文件,也没有给出任何结果 - 在添加所有文件和安装cocoapods之后,项目已经运行了一段时间,但之后 - 同样的问题再次开始。

所以我认为没有办法,如何找到代码的确切部分,这会导致问题(这实际上是Xcode错误,但几乎没有希望,它将在Xcode 8中修复,因为它仍然存在于测试版)。

很高兴听到有关这个问题的任何帮助,我因为它而无法入睡几天:)

1 个答案:

答案 0 :(得分:1)

找到导致我问题的原因:

我已经&#34; Math.h&#34;项目中的自定义文件和类,导入和使用它会导致问题。

最奇怪的是,这个文件在过去的18天里都在项目中,但一切正常。我想,这取决于我如何使用它,在Objective-C项目中使用它,不会引起任何问题。