Xcode 8.2,Swift 编译器错误:错误:意外的输入文件

Posted

技术标签:

【中文标题】Xcode 8.2,Swift 编译器错误:错误:意外的输入文件【英文标题】:Xcode 8.2, Swift Compiler Error: error: unexpected input file 【发布时间】:2016-12-16 13:58:55 【问题描述】:

从 Xcode 8.1 更新到 8.2 后,我的项目中遇到了 Swift 编译器错误。我正在使用最新的 Swift 版本和 Carthage 进行依赖管理。它在 Xcode 8.1 上运行得非常好,现在我已经尝试了几个小时通过清理 DerivedData 和模拟器数据、清理 Xcode 并删除 Build 文件夹来修复它,但似乎没有任何帮助。我只安装了一个 Xcode 版本。

我得到以下编译错误:

CompileSwiftSources normal x86_64 com.apple.xcode.tools.swift.compiler
cd <ProjectSource>
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk
export TOOLCHAINS=com.apple.dt.toolchain.XcodeDefault

-- all files to compile --

unknown>:0: error: unexpected input file: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 

它所指的文件夹如下所示:

它确实在那里,所以我不知道发生了什么...... 非常感谢您的帮助! :)

【问题讨论】:

如果您将设备设置为通用 ios 设备,它是否可以构建? 不,是一样的 我遇到了同样的问题,这对我来说是由于弄乱了 swift 标志造成的。我想它一定是在我移除 cocopods 时引入的,留下了 -D。 是的,你完全正确!在使用 CocoaPods 后,我已经切换到 Carthage,并且在为 Xcode 8.2 清理我的项目时,我从“Other Swift Flags”中删除了“COCOAPODS”标志。我只是尝试再次添加它,它编译完美!但是在放弃 CocoaPods 之后它需要那个标志并没有任何意义。你知道如何摆脱它吗? 【参考方案1】:

我遇到了同样的问题,cmets 帮我找出了问题。

确实,当“Other Swift Flag”选项出现拼写错误或错误时,就会发生此错误。就我而言,这个选项被我的 CI 引擎传递为空,导致生成的命令行出错,从而导致错误:

"error: unexpected input file: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.2.sdk"

按照评论中的建议,删除除“$(inherited)”之外的所有其他 Swift 标签并检查它是否按预期工作

回答问题而不是评论可能会帮助人们直截了当:)

【讨论】:

我删除了除“$(inherited)”之外的所有“其他 Swift 标志”。终于成功了【参考方案2】:

就我而言,这仅仅是因为我有一个名为.Swift 的文件(注意大写S!)。我将其正确重命名为.swift,一切顺利。

【讨论】:

以上是关于Xcode 8.2,Swift 编译器错误:错误:意外的输入文件的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 8.2使用旧版Swift问题[重复]

XCode HealthThermometer 示例编译错误

XCode6 beta 6 Swift 编译器错误

Xcode Swift 编译错误导入名称太长

安装 Xcode10.2.1 但仍然收到错误“使用 Swift 5.0.1 编译的模块无法由 Swift 5.1 编译器导入”

将 xcode 6 beta 6 升级到 xcode 6 GM 种子后的 Swift 编译器错误