Xcode 8(Swift 3)命令由于信号失败:被杀死:9

升级到Xcode 8并将所有代码转换为Swift 3后,我遇到了编译快捷资源的麻烦。 这需要很长时间,我的电脑变得超级迟缓,大约30分钟后我得到了这个

CompileSwift normal arm64 /Users/choojayson/Dropbox/BottomsUp/Thirst/UserDrank.swift cd / Users / choojayson / Dropbox / BottomsUp /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c /Users/choojayson/Dropbox/BottomsUp/Thirst/PendingVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/NotificationCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/ProfileCell.swift/Users/hoojayson/Dropbox /BottomsUp/Thirst/NotificationsVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/UserPendingAction.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/ChooseDrinkVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/AppDelegate.swift /使用者/使用者/使用者/使用者/使用者/使用者/Thirst/UserDrankTime.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/MyProfileVC.swift / Users / chooj ayson / Dropbox / BottomsUp / Thirst / ProfileStatsFooterCell.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/WeeklyDrank.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/DrinkList.swift/ Users / choojayson / Dropbox / BottomsUp / Thirst / DrinkCell.swift /用户/ choojayson /桌面/上/ Dropbox / BottomsUp / Thirst / GlobalScore.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/Username.swift /Users/choojayson/Dropbox/BottomsUp/HomeVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/LoginVC.swift /用户/ choojayson / Dropbox / BottomsUp / Thirst / LeaderBoardVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/CollectionViewHeaderCell.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/Global.swift/ Users / choojayson / Dropbox / BottomsUp /口渴/ CircularTransition.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/Drink.swift/用户/ choojayson / Dropbox / BottomsUp / Thirst / Week lyBestVC.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/DrinkStatus.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/LeaderBoardCell.swift /Users/choojayson/Dropbox/BottomsUp/Thirst/PendingCell.swift -primary-file /用户/ choojayson / Dropbox / BottomsUp / Thirst / UserDrank.swift -target arm64-apple-ios8.0 -Xllvm -aarch64-use-tbi -enable -objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms /iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk -I / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Products / Debug-iphoneos -F / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Products / Debug-iphoneos -F / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Products / Debug-iphoneos / SDWebImage -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseAnalytics / Frameworks / frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseAuth / Frameworks / frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseDatabase / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseInstanceID / Frameworks / frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseMessaging / Frameworks / frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / FirebaseStorage / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleIPhoneUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleInterchangeUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleNetworkingUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleParsingUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleSymbolUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp / Pods / GoogleUtilities / Frameworks -F / Users / choojayson / Dropbox / BottomsUp -enable-testing -g -module-cache-path / Users / choojayson / Library / Developer / Xcode / DerivedData / ModuleCache -serialize -debugging-options -Xcc -I / Users / choojayson / Library / Developer / Xcode / Der ivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug-iphoneos / Thirst.build / swift-overrides.hmap -Xcc -iquote -Xcc / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug-iphoneos / Thirst.build / Thirst-generated-files.html -Xcc -I / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst。构build/ Debug-iphoneos / Thirst.build / Thirst-own-target-headers.hmap -Xcc -I / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug- iphoneos / Thirst.build / Thirst-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/choojayson/Library/Developer/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/ all-product-headers.yaml -Xcc -iquote -Xcc / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build /Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/Thirst-project-headers.hmap -Xcc -I / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Products / Debug-iphoneos / include -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Firebase / Analytics / Sources -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / Firebase -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseAnalytics -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseAuth -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseDatabase -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseInstanceID -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseMessaging -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / FirebaseStorage -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleIPhoneUtilities -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleInterchangeUtilities -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleNetworkingUtilities -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleParsingUtilities -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleSymbolUtilities -Xcc -I / Users / choojayson / Dropbox / BottomsUp / Pods / Headers / Public / GoogleUtilities -Xcc -I /Users/choojayson/Library/Developer/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/DerivedSources/arm64 -Xcc -I / Users / choojayson / Library / Developer / Xcode /DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/DerivedSources -Xcc -DDEBUG = 1 -Xcc -DCOCOAPODS = 1 -Xcc -working-directory / Users / choojayson / Dropbox / BottomsUp -emit-module-doc-path / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / T hirst.build/Debug-iphoneos/Thirst.build/Objects-normal/arm64/UserDrank~partial.swiftdoc -Onone -module-name Thirst -emit-module-path / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst -fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug-iphoneos / Thirst.build / Objects -normal / arm64 / UserDrank〜partial.swiftmodule -serialize-diagnostics-path / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst -fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug-iphoneos / Thirst.build / Objects-normal / arm64 / UserDrank.dia -emit-dependencies -path / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz /Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/Objects-normal/arm64/UserDrank.d -emit-reference-dependencies-path / Users / choojayson / Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz /Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/Objects-normal/arm64/UserDrank.swiftdeps -o / Users / choojay 子/ Library / Developer / Xcode / DerivedData / Thirst-fbgpdykwgpyxllfixfnpenbijinz / Build / Intermediates / Thirst.build / Debug-iphoneos / Thirst.build / Objects-normal / arm64 / UserDrank.o -embed-bitcode-marker

相信与否,这是导致我的问题的一段代码。 有了它,编译需要大约30分钟。 如果我只是简单地注释掉这段代码,它会在不到30秒的时间内完成编译。

let params : [String: Any] = [ "person_id" : kPersonId, "person_promo_id" : promo.personPromoId!, "promo_page_id" : promo.promoPageId!, "seq_no" : promo.seqNo!, "promo_type" : promo.promoType!, "page_name" : promo.pageName!, "image_name" : promo.imageName!, "start_date" : promo.startDate!, "end_date" : promo.endDate!, "website" : promo.website!, "facility_name" : promo.facilityName!, "address" : promo.street!, "city" : promo.city!, "prov_state_cd" : promo.provState!, "country_cd" : promo.country!, "contact_name" : promo.contactName!, "contact_phone" : promo.contactPhone!, "latitude" : promo.latitude!, "longitude" : promo.longitude!, "bgColorRed" : promo.bgColorRed!, "bgColorGreen" : promo.bgColorGreen!, "bgColorBlue" : promo.bgColorBlue!, "promoCategories" : promoCat ] 

基于这个和其他的东西,我已经阅读,我会寻找一个情况下,你的值分配到一个大或嵌套的字典与定义中的AnyAnyObject 。 我猜测,这是Any发送编译器closures一个疯狂的追逐。

如果你检查你的日志失败的地方,它应该在失败的对象上有错误。 这应该给你一个线索,看看什么文件。

编辑:@周杰伦,这是我解决了上面的代码与编译器问题:

 var params : [String : Any] = [:] params["person_id"] = kPersonId params["person_promo_id"] = promo.personPromoId params["promo_page_id"] = promo.promoPageId params["seq_no"] = promo.seqNo params["promo_type"] = promo.promoType params["page_name"] = promo.pageName params["image_name"] = promo.imageName params["start_date"] = promo.startDate params["end_date"] = promo.endDate params["website"] = promo.website params["facility_name"] = promo.facilityName params["address"] = promo.street params["city"] = promo.city params["prov_state_cd"] = promo.provState params["country_cd"] = promo.country params["contact_name"] = promo.contactName params["contact_phone"] = promo.contactPhone params["latitude"] = promo.latitude params["longitude"] = promo.longitude params["bgColorRed"] = promo.bgColorRed params["bgColorGreen"] = promo.bgColorGreen params["bgColorBlue"] = promo.bgColorBlue params["promoCategories"] = promoCat 

在我的情况下,当我发现这个问题的大块代码是:

  return realm2.objects(Alert.self).sorted(by: { (alert1, alert2) -> Bool in return alert1.hour < alert2.hour && alert1.minute < alert2.minute && alert1.label < alert2.label }) 

我的情况下,必须添加太多的编程创build的约束到视图控制器的视图。 我在类级定义了多个约束数组,如下所示:

 lazy var labelConstraints: [NSLayoutConstraint] = [...] 

我在我的视图中为所有的UI元素使用这个符号。 当我完成构build视图的时候,我大概有10个3-5的NSLayoutConstraints数组。

然后,我将一个连接的数组附加到视图的约束数组,如下所示:

 self.view.addConstraints(labelConstraints + buttonConstraints + viewConstraints, ...) 

这条线原来是问题所在。 它必须是延迟初始化和内联数组concat。 无论原因如何,我已经使用flatMap来解决这个问题。

 let constraints = [labelConstraints, buttonConstraints, viewConstraints].flatMap{ $0 } self.view.addConstraints(constraints) 

就我而言,我正在写一个实现了Equatable的类,也有通用的成员。 我的问题是植根于通用成员与==比较,当generics类没有实现一个==运算符。

例如(使用来自RxSwift Variable ):

 class Foo: Equatable { var fieldOne: Variable<String> = Variable("fieldOne") var fieldTwo: Variable<String?> = Variable(nil) public static func ==(lhs: Foo, rhs: Foo) -> Bool { //should be marked as a compiler error, since Variable doesn't have == return lhs.fieldOne == rhs.fieldOne && lhs.fieldTwo == rhs.fieldTwo } } 

我应该看到一个编译器错误,因为没有定义==存在Variable ,但编译器会崩溃(以及静态分析),才能够显示它。 在崩溃之前,我看到了60GB的内存使用情况。 让人惊讶。

在仿制药方面,似乎仍然存在一些挥之不去的错误。

对我来说,Xcode 9,Swift 4,编译器不能忍受8个数字的加法:

 let aBitPattern: UInt64 = ((UInt64(a) & UInt64(0xff)) << 0) + ((UInt64(b) & UInt64(0xff)) << 8) + ((UInt64(c) & UInt64(0xff)) << 16) + ((UInt64(d) & UInt64(0xff)) << 24) + ((UInt64(e) & UInt64(0xff)) << 32) + ((UInt64(f) & UInt64(0xff)) << 40) + ((UInt64(g) & UInt64(0xff)) << 48) + ((UInt64(h) & UInt64(0xff)) << 56) 

转变到这个解决了无限的汇编:

 var aBitPattern: UInt64 = ((UInt64(a) & UInt64(0xff)) << 0); aBitPattern += ((UInt64(b) & UInt64(0xff)) << 8); aBitPattern += ((UInt64(c) & UInt64(0xff)) << 16); aBitPattern += ((UInt64(d) & UInt64(0xff)) << 24); aBitPattern += ((UInt64(e) & UInt64(0xff)) << 32); aBitPattern += ((UInt64(f) & UInt64(0xff)) << 40); aBitPattern += ((UInt64(g) & UInt64(0xff)) << 48); aBitPattern += ((UInt64(h) & UInt64(0xff)) << 56); 

是的,有时候分号也会帮助编译器理解你的代码。

我总是期待新的Swift编译器,它总是令苹果非常失望。