首页 > 解决方案 > IOS::0:错误:未知参数:'-enable-batch-mode' 命令 CompileSwiftSources 失败,退出代码为非零

问题描述

我有一条我不明白的错误消息。我在www.swift.org上下载了 swift 工具链 4.0.3,因为我收到一条错误消息“Swift 4.2 编译器无法导入使用 Swift 4.0.3 编译的模块:”

现在,它给了我一个不同的信息:

CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target: CameraDemo)
    cd /Users/OlostA/Desktop/Git/r-d/CamBox
    export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
    export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk
    export TOOLCHAINS="org.swift.40320171205a "
    /Library/Developer/Toolchains/swift-4.0.3-RELEASE.xctoolchain/usr/bin/swiftc -incremental -module-name CameraDemo -Onone -enable-batch-mode -enforce-exclusivity=checked -sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk -target arm64-apple-ios9.3 -g -module-cache-path /Users/OlostA/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -Xfrontend -serialize-debugging-options -enable-testing -index-store-path /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Index/DataStore -swift-version 4 -I /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos -F /Users/OlostA/Desktop/Git/r-d/framework/iphonesimulator -F . -F CameraDemo -F YI360Demo -F . -F CameraDemo -F YI360Demo -F . -F CameraDemo -F YI360Demo -F /Users/OlostA/Desktop/Git/r-d/CamBox/YICamera.framework -F /Users/OlostA/Desktop/Git/r-d/CamBox/SwiftyJSON.framework -F /Users/OlostA/Desktop/Git/r-d/CamBox/CocoaAsyncSocket.framework -F . -F CameraDemo -F YI360Demo -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/CocoaAsyncSocket.framework -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/YICamera.framework -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/CameraDemo.app -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/CameraDemo.swiftmodule -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/CameraDemo.app/Frameworks -F /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/CameraDemo.app/_CodeSignature -F /Users/OlostA/Desktop/Git/r-d/CamBox -c -j4 /Users/OlostA/Desktop/Git/r-d/CamBox/CameraDemo/ViewController.swift /Users/OlostA/Desktop/Git/r-d/CamBox/CameraDemo/AppDelegate.swift -output-file-map /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/Objects-normal/arm64/CameraDemo-OutputFileMap.json -parseable-output -serialize-diagnostics -emit-dependencies -emit-module -emit-module-path /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/Objects-normal/arm64/CameraDemo.swiftmodule -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/swift-overrides.hmap -Xcc -iquote -Xcc /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/CameraDemo-generated-files.hmap -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/CameraDemo-own-target-headers.hmap -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/CameraDemo-all-target-headers.hmap -Xcc -iquote -Xcc /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/CameraDemo-project-headers.hmap -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Products/Debug-iphoneos/include -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/DerivedSources/arm64 -Xcc -I/Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/DerivedSources -Xcc -DDEBUG=1 -emit-objc-header -emit-objc-header-path /Users/OlostA/Library/Developer/Xcode/DerivedData/CameraDemo-atqalgbmsahmkqezdvsdizmgxtek/Build/Intermediates.noindex/CameraDemo.build/Debug-iphoneos/CameraDemo.build/Objects-normal/arm64/CameraDemo-Swift.h -Xcc -working-directory/Users/OlostA/Desktop/Git/r-d/CamBox

<unknown>:0: error: unknown argument: '-enable-batch-mode'
Command CompileSwiftSources failed with a nonzero exit code

可能是我必须删除那些论点,但我不知道在哪里搜索......

你有什么想法?

标签: iosswiftxcodecompiler-errorstoolchain

解决方案


TLDR

您无法解决此问题。使用 Xcode 9 或将您的代码库更新到 Swift 5。


完整答案:

在使用带有 Swift 4.0.3 工具链的 Xcode 10 来构建带有静态库的项目时,我遇到了同样的错误。

这里的问题如下:因为 Xcode 10 在 Swift 4.2 上运行,它为这个特定的 Swift 版本编写了一个编译命令。具体来说,它添加了-enable-batch-mode优化构建过程的标志。如果您手动删除标志(例如将整个命令粘贴到终端应用程序),它应该会成功。

当您更改工具链时,Xcode 本身还不够聪明,无法理解,4.0.3 中没有这样的东西-enable-batch-mode

现在,您可以禁用批处理模式,它应该可以解决问题,对吧?您可以在Build Settings中添加新的 User-Defined SettingSWIFT_ENABLE_BATCH_MODE和 value NO

但是猜猜,会发生什么?另一个未知的旗帜。

<unknown>:0: error: unknown argument: '-disable-batch-mode'
Command CompileSwiftSources failed with a nonzero exit code

相关问题:


推荐阅读