swift - 使用 FileManager.default.currentDirectoryPath 时出现段错误 : 11 with Swift 5. 2

标签 swift xcode

我有一个类似于以下内容的自定义 Swift 脚本:

#!/usr/bin/env xcrun --sdk macosx swift

import Foundation

let path = FileManager.default.currentDirectoryPath

在 Swift 5.1 及更低版本上它运行得很好,但更新到 Swift 5.2 后,我得到
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -interpret test.swift -enable-objc-interop -stack-check -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -color-diagnostics -module-name test 
1. Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
2. While running user code "test.swift"
0 swift 0x000000010dd2f4ea PrintStackTraceSignalHandler(void*) + 42
1 swift 0x000000010dd2ecc0 SignalHandler(int) + 352
2 libsystem_platform.dylib 0x00007fff6710f42d _sigtramp + 29
3 libsystem_platform.dylib 0x00007ffee6222018 _sigtramp + 2131831816
4 swift 0x0000000109ab29ba llvm::MCJIT::runFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>) + 458
5 swift 0x0000000109ab9a2b llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, char const* const*) + 2011
6 swift 0x0000000109a8eaea performCompileStepsPostSILGen(swift::CompilerInstance&, swift::CompilerInvocation&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, bool, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, bool, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 14362
7 swift 0x0000000109a834a5 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 55813
8 swift 0x00000001099f94d3 main + 1283
9 libdyld.dylib 0x00007fff66f167fd start + 1
10 libdyld.dylib 0x000000000000000b start + 2567870479
Segmentation fault: 11

是否有任何我不知道的重大变化?

最佳答案

事实证明,在这种情况下,问题在于由于我一直在使用 SwiftGen 而存在的流氓​​覆盖 dylib。

解决方案是通过调用卸载 SwiftGen

brew uninstall swiftgen

或关注 Nikolaj's answer从 Swift 错误跟踪系统通过重新安装 SwiftGen
--build-from-source

选项并从“lib”文件夹中删除 dylib。

关于swift - 使用 FileManager.default.currentDirectoryPath 时出现段错误 : 11 with Swift 5. 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846801/

相关文章:

ios - UITextField 和 UIButton 在 signOut segue swift 后无响应

ios - 根据 swift map 的缩放级别,在 Google map 中显示某个区域中的标记数量

ios - PerformSegue 从 TabBarController 到 ViewController 而不隐藏 TabBar

swift - Xcode 代码中无法识别的其他 Swift 标志

swift - 如何快速将单词分解为字符

xcode - OS X Yosemite、XCode 6.1 的 ARC 相关构建失败

xcode - 如何使用 xcodebuild 附加到 HEADER_SEARCH_PATHS?

xcode - Cocoapods错误: linker command failed with exit code 1 (use -v to see invocation)

ios - 无法附加值并在 Collection View 中显示

ios - SpriteKit SKCameraNode - 在分配后展开可选值时为零