但是我已经使用相同的Xcode重新编译了框架,但它仍然给我这个错误。
- 两者的基本SDK iOS 11.1
- 两种的Swift语言版本Swift 4.0
- 不使用豆荚/迦太基
我希望有人会知道
但是我已经使用相同的Xcode重新编译了框架,但它仍然给我这个错误。
我希望有人会知道
Answers:
更新:
对于Xcode的发行版本:
当使用Xcode 9.1、9.2、9.3、9.4、10等打开使用早期Xcode工具构建的框架的项目时,将发生此错误(以及与Swift 4.1、4.2等类似的错误)。
要解决此问题,请使用Carthage(carthage update --platform iOS
),Cocoapods(pod update
或pod install
)或通过新的更新的Xcode工具手动更新和重建框架。更新Xcode时应自动更新工具,但如果没有,则可以按照原始答案中下面列出的步骤进行操作。
您可能还需要清理您的项目cmd + shift + k
,可能还需要清理构建文件夹,cmd + option + shift + k
以使Xcode不使用缓存的框架构建。
在某些情况下,您可能还需要删除您的派生数据文件夹(可通过Xcode首选项->位置->派生数据文件夹轻松找到(谢谢Stunner)
对于Xcode的测试版:
请参阅下面的原始答案,然后按照上面的步骤操作。
原始答案:
您可能仍将xcodebuild工具设置为Xcode 9.0,该工具可使用Swift 4.0构建,并且与Xcode 9.1 beta的Swift 4.0.1不兼容。
使用以下命令检入终端:
xcodebuild -version
或者只是进入Xcode首选项->位置,然后将命令行工具检查/更改为Xcode 9.1。那你应该被设置。
Swift Language Version
到Swift 4
这些位置。然后它起作用了。
从此处安装适用于您的特定Xcode版本的Xcode工具链。
Xcode工具链包括编译器,lldb以及其他相关工具的副本,这些副本为在特定版本的Swift中工作提供了凝聚的开发经验。
打开Xcode的首选项,导航到组件>工具链,然后选择已安装的Swift工具链。
现在,您可以编译并运行该应用程序。
我在Xcode 10 beta中遇到了这个问题,它添加了Swift 4.2。我的问题与迦太基或任何外部依赖无关。
转到YourTarget > Build Settings > Swift Language Version
所有Xcode目标。
我的都准备了Swift 4
。
添加“复制文件”构建阶段后,我开始出现错误
:0:错误:Swift 4.2编译器无法导入使用Swift 4.1.2编译的模块:/Users/user/Library/Developer/Xcode/DerivedData/MyApp-faskfrihumfcdibjxisjvbfshppp/Build/Intermediates.noindex/MyApp.build/Debug/ MyAppExtension.build/Objects-normal/x86_64/MyClass~partial.swiftmodule
命令MergeSwiftModule失败,退出代码非零
然后,我将每个目标的都设置Swift Language Version
为Swift 4.2
,从而消除了错误。
我不确定为什么首先会发生错误,因为将所有目标设置为Swift 4
应该同样有效。
Build Settings