Xcode 8 (Swift 3) Сбой команды из-за сигнала: Убито: 9

После обновления до Xcode 8 и преобразования всего моего кода в Swift 3 у меня возникли проблемы с компиляцией быстрых ресурсов. Это занимает очень много времени, и мой компьютер получает супер лагги, и примерно через 30 минут я получаю это

CompileSwift нормальный arm64/Users/choojayson/Dropbox/BottomsUp/Thirst/UserDrank.swift   cd/Пользователи/choojayson/Dropbox/BottomsUp   /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c/Users/choojayson/Dropbox/BottomsUp/Thirst/PendingVC.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/NotificationCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/ProfileCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/NotificationsVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/UserPendingAction.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/ChooseDrinkVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/AppDelegate.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/UserCell.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/FirebaseReferences.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/ProfileStatsCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/UserDrankTime.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/MyProfileVC.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/ProfileStatsFooterCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/WeeklyDrank.swift/Us ers/choojayson/Dropbox/BottomsUp/Thirst/DrinkList.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/DrinkCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/User.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/HeaderCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/EndorseVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/GlobalScore.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/Username.swift/Пользователи/choojayson/Dropbox/BottomsUp/HomeVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/LoginVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/LeaderBoardVC.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/CollectionViewHeaderCell. swift/Users/choojayson/Dropbox/BottomsUp/Thirst/Global.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/CircularTransition.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/Drink.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/WeeklyBestVC.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/DrinkStatus.swift/Пользователи/choojayson/Dropbox/BottomsUp/Thirst/Leade rBoardCell.swift/Users/choojayson/Dropbox/BottomsUp/Thirst/PendingCell.swift -primary-file/Users/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/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Products/Debug-iphoneos -F/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Products/Debug-iphoneos -F/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Products/Debug-iphoneos/SDWebImage -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/FirebaseAnalytics/Frameworks/frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/FirebaseAuth/Frameworks/frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/FirebaseDatabase/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/FirebaseIn stanceID/Frameworks/frameworks -F/Users/choojayson/Dropbox/BottomsUp/Pods/FirebaseMessaging/Frameworks/frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/FirebaseStorage/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/GoogleIPhoneUtilities/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/GoogleInterchangeUtilities/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/GoogleNetworkingUtilities/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/GoogleParsingUtilities/Frameworks -F/Users/choojayson/Dropbox/BottomsUp/Pods/GoogleSymbolUtilities/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp/Pods/GoogleUtilities/Frameworks -F/Пользователи/choojayson/Dropbox/BottomsUp -enable-testing - g -module-cache-path/Users/choojayson/Library/Developer/Xcode/DerivedData/ModuleCache -serialize-debugging-options -Xcc -I/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/полупродукты/Thirst.build/Debug-iphoneos/Thirst.build/swift-overrides.hm ap -Xcc -iquote -Xcc/Users/choojayson/Library/Developer/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/Thirst-generated-files.hmap -Xcc - I/Users/choojayson/Library/Developer/Xcode/DerivedData/Жажда-fbgpdykwgpyxllfixfnpenbijinz/Строительные/ПОЛУПРОДУКТЫ/Thirst.build/Debug-iphoneos/Thirst.build/Thirst-own-target-headers.hmap -Xcc -I/Пользователи/choojayson/Library/Разработчик/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/Пользователи/choojayson/Library/Developer/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Products/Debug-iphoneos/include -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Firebase/Analytics/Sources -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/Firebase -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseAnalytics -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseAuth -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseDatabase -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseInstanceID -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseMessaging -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/FirebaseStorage -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleIPhoneUtilities -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleInterchangeUtilities -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleNetworkingUtilities -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleParsingUtilities -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleSymbolUtilities -Xcc -I/Пользователи/choojayson/Dropbox/BottomsUp/Pods/Headers/Public/GoogleUtilities -Xcc -I/Пользователи/choojayson/Library/Разработчик/Xcode/Deriv edData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/DerivedSources/arm64 -Xcc -I/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/DerivedSources -Xcc -DDEBUG = 1 -Xcc -DCOCOAPODS = 1 -Xcc -working-directory/Пользователи/choojayson/Dropbox/BottomsUp -emit-module-doc-path/Users/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.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/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thi rst.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/Пользователи/choojayson/Library/Разработчик/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst. build/Debug-iphoneos/Thirst.build/Objects-normal/arm64/UserDrank.swiftdeps -o/Users/choojayson/Library/Developer/Xcode/DerivedData/Thirst-fbgpdykwgpyxllfixfnpenbijinz/Build/Intermediates/Thirst.build/Debug-iphoneos/Thirst.build/Objects-normal/arm64/UserDrank.o -embed-bitcode-marker

Ответ 1

Верьте или нет, это часть кода, которая вызывала проблему для меня. С его помощью компилятор занимает около 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
]

Исходя из этого и других вещей, которые я прочитал, я бы охотился за случаем, когда вы назначаете значения большому или вложенному словарю с Any или AnyObject в определении. Я предполагаю, что он Any, который отправляет компилятор с диким хорошим преследованием.

Если вы проверяете свой журнал там, где он терпит неудачу, он должен иметь ошибку прямо у объекта, который не прошел. Это должно дать вам представление о том, какой файл искать.

Изменить: @Jay Chow, вот как я решил проблему с компилятором с помощью кода выше:

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

Ответ 2

В моем случае, когда я нашел эту проблему, кусок кода был:

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

Ответ 3

Мое дело было связано с добавлением слишком большого количества программно созданных ограничений в представление контроллера представления. У меня было несколько массивов ограничений, определенных на уровне класса следующим образом:

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

Я использовал эту нотацию для всех элементов пользовательского интерфейса на мой взгляд. Когда я закончил создание представления, у меня было примерно 10 массивов из 3-5 NSLayoutConstraints.

Затем я добавлял конкатенированный массив в массив ограничений представления так:

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

Эта строка оказалась проблемой. Это должно быть что-то с ленивой инициализацией и встроенным массивом concat. Независимо от причины, я исправил это, используя flatMap следующим образом.

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

Ответ 4

В моем случае я писал класс, который реализовал Equatable, а также имел общие члены. Моя проблема основывалась на сравнении общих членов с ==, когда в родовом классе не был реализован оператор ==.

Например (используя Variable from RxSwift):

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 существует определение ==, но компилятор может сработать (а также статический анализ), прежде чем сможет его показать. Я наблюдал за использованием памяти 60 ГБ + перед сбоем. Хлоп.

Кажется, что быстро все еще есть некоторые затяжные ошибки, когда дело доходит до дженериков.

Ответ 5

В моем случае, 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, и он всегда является огромным разочарованием от Apple.