Приложение, использующее Realm Swift Pod, не запускается (CMD + R, происходит сбой при компиляции Realm), но оно выполняет тестирование (CMD + U), а также архивирует - PullRequest
0 голосов
/ 19 марта 2019

У меня странная проблема с некоторыми компиляциями Proof of Concept с моим текущим проектом.

То, что мы пытаемся проверить, это то, что наш проект компилируется нормально под XCode 10.2 (бета-версия 2 на сегодня, мы знаем, что у нас также есть бета-версии 3 и 4). Мы знаем, что это бета-версия, мы должны быть осторожны с ней и т.д ...

Как бы то ни было ... Странная ситуация, с которой мы имеем дело, это использование Realm в качестве Pod (типичное использование, otoh). Версия RealmSwift 3.13.1

Под XCode 10.1 (Swift 4 world) компилируется весь наш проект. В соответствии с XCode 10.2 (Betas 2 и 4, снова Swift 4 World) наш проект не компилируется. Фактически происходит сбой при компиляции Realm с неприятной ошибкой «код ошибки сегментации: 11».

Мы пытались осмотреть форумы Realm, переполнение стека и т. Д., Но без особого успеха. Мы не уверены в поддержке XCode 10.2 для Realm и, следовательно, наш вопрос:

-Справляет ли XCode 10.2 Realm для типичного развертывания команды запуска CMD + R на симуляторе?

Чтобы усложнить задачу, выполните команды CMD + U (запустить наборы тестов) и Archive. СОБИРАЙТЕ НАШ ВЕСЬ ПРОЕКТ, то есть никаких проблем при компиляции REALM (в соответствии с XCode 10.2 бета 2 и 4). Поэтому наши сомнения странны, мы не уверены, что делаем что-то не так или же «run» vs «test / compile» - это разные команды с точки зрения фазы компиляции Realm.

Любой намек о том, где проверить / проверить? У нас заканчиваются идеи (не говоря уже о том, чтобы Realm официально поддерживал XCode 10.2 beta 2, 3 и 4, если он не поддерживается).

Привет

РЕДАКТИРОВАТЬ: Мы пытались найти точную причину "Ошибка сегментации компиляции Realm: код 11". Насколько нам известно, у нас есть следующие ситуации:

1.- SWIFT-версия, используемая в нашем коде, не имеет отношения к сбою. Независимо от того, используем ли мы SWIFT 4 или SWIFT 5, Xcode 10.2 по-прежнему аварийно завершает работу при компиляции определенных файлов Realm .swift (включенных в Podfile)

2.- ВСЕ версии XCode 10.2 аварийно завершают свою работу (бета2, бета4 и окончательный официальный выпуск). Xcode 10.1 не имеет никаких проблем.

3.- Мы пытались изолировать наш «Модуль данных» внутри пустого проекта (в котором живет наша зависимость от Царства). При изоляции этого модуля REALM СОСТАВЛЯЕТ ОТЛИЧНО.

4.- Когда мы интегрируем «Модуль данных» в наш «большой проект», то при компиляции Realm возникает сбой SegFault.

Типичный «аварийный дамп», который мы получаем (например), такой (желательно скопировать и вставить его в ваш любимый текстовый редактор, уродливые строки впереди):

0.    Program arguments: /Applications/Xcode_10.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Aliases.swift -primary-file /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Error.swift -primary-file /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/LinkingObjects.swift -primary-file /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/List.swift -primary-file /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Migration.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Object.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/ObjectiveCSupport.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/ObjectSchema.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Optional.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Property.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Realm.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/RealmCollection.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/RealmConfiguration.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Results.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Schema.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/SortDescriptor.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/SwiftVersion.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Sync.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/ThreadSafeReference.swift /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/RealmSwift/RealmSwift/Util.swift -supplementary-output-file-map /var/folders/zw/lb043_2n0ng097crfq3rzfc00000gr/T/supplementaryOutputs-137c0f -target x86_64-apple-ios8.0-simulator -enable-objc-interop -sdk /Applications/Xcode_10.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -I /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Products/Debug-iphonesimulator/RealmSwift-iOS -F /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Products/Debug-iphonesimulator/RealmSwift-iOS -F /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Products/Debug-iphonesimulator/Realm-iOS -application-extension -enable-testing -g -import-underlying-module -module-cache-path /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -profile-generate -profile-coverage-mapping -sanitize=thread -swift-version 4 -enforce-exclusivity=checked -Onone -D DEBUG -D COCOAPODS -serialize-debugging-options -Xcc -working-directory -Xcc /Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods -enable-anonymous-context-mangled-names -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/RealmSwift-generated-files.hmap -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/RealmSwift-own-target-headers.hmap -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/RealmSwift-all-non-framework-target-headers.hmap -Xcc -ivfsoverlay -Xcc /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/all-product-headers.yaml -Xcc -iquote -Xcc /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/RealmSwift-project-headers.hmap -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Products/Debug-iphonesimulator/RealmSwift-iOS/include -Xcc -I/Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/Headers/Private -Xcc -I/Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/Headers/Public -Xcc -I/Users/MYUSERNAME/proyectos/MY_PROJECT_FOLDER_NAME/dev/MYMAINPROJECTNAME/Pods/Headers/Public/HockeySDK -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/DerivedSources-normal/x86_64 -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/DerivedSources/x86_64 -Xcc -I/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/DerivedSources -Xcc -DPOD_CONFIGURATION_DEBUG=1 -Xcc -DDEBUG=1 -Xcc -DCOCOAPODS=1 -Xcc -ivfsoverlay -Xcc /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/unextended-module-overlay.yaml -module-name RealmSwift -o /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/Aliases.o -o /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/Error.o -o /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/LinkingObjects.o -o /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/List.o -o /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/Migration.o -index-store-path /Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Index/DataStore -index-system-modules 
1.    Running pass 'CallGraph Pass Manager' on module '/Users/MYUSERNAME/Library/Developer/Xcode/DerivedData/MYMAINPROJECTNAME-efvegromitzyfvcolcgynqojoooi/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/RealmSwift-iOS.build/Objects-normal-tsan-ubsan/x86_64/LinkingObjects.o'.
2.    Running pass 'Dominator Tree Construction' on function '@"$s10RealmSwift14LinkingObjectsCyxSicir.resume.0"'
0  swift                    0x00000001073b8ee3 PrintStackTraceSignalHandler(void*) + 51
1  swift                    0x00000001073b86bc SignalHandler(int) + 348
2  libsystem_platform.dylib 0x00007fff6acdeb3d _sigtramp + 29
3  libsystem_malloc.dylib   0x00007fff6aca6a61 small_malloc_from_free_list + 166
4  swift                    0x0000000107291991 llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::CalculateFromScratch(llvm::DominatorTreeBase<llvm::BasicBlock, false>&, llvm::DomTreeBuilder::SemiNCAInfo<llvm::DominatorTreeBase<llvm::BasicBlock, false> >::BatchUpdateInfo*) + 1025
5  swift                    0x0000000107291583 llvm::DominatorTreeWrapperPass::runOnFunction(llvm::Function&) + 19
6  swift                    0x00000001072d45ad llvm::FPPassManager::runOnFunction(llvm::Function&) + 1613
7  swift                    0x0000000105eb0e27 (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) + 2311
8  swift                    0x00000001072e0a00 llvm::legacy::PassManager::run(llvm::Module&) + 1696
9  swift                    0x00000001033f6518 swift::performLLVM(swift::IRGenOptions&, swift::DiagnosticEngine*, llvm::sys::SmartMutex<false>*, llvm::GlobalVariable*, llvm::Module*, llvm::TargetMachine*, swift::version::Version const&, llvm::StringRef, swift::UnifiedStatsReporter*) + 5816
10 swift                    0x000000010321d91e performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 51566
11 swift                    0x000000010320d6de swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 6862
12 swift                    0x00000001031ab7be main + 1246
13 libdyld.dylib            0x00007fff6aaf3ed9 start + 1

1 Ответ

0 голосов
/ 01 апреля 2019

Я обнаружил, почему компиляция Realm внутри нашего "большого" проекта вызвала сбой компилятора Swift.По-видимому, виновником является опция «Thread Sanitizer» внутри секции RUN для текущей схемы.

Как кажется, новая версия компилятора Swift имеет эту проблему с определенными файлами, как отмечено в некоторой «известной проблеме»что наша команда упустила из виду (позор нам (?)!).

*Known Issues
    The Swift compiler may crash during a build when the Thread Sanitizer is enabled. (48719789)

    Workaround: Disable Thread Sanitizer in the Scheme Editor’s Diagnostics tab.

Простое отключение параметра «Очистка потока» делает Swift счастливым и больше не падает.

Теперь давайте надеяться, что Apple исправит это, как только сможет.Привет.

...