Ios Xcode 8 beta 4:生成失败,出现“错误”;以下二进制文件使用了不兼容的Swift版本:;错误
使用新的Ios Xcode 8 beta 4:生成失败,出现“错误”;以下二进制文件使用了不兼容的Swift版本:;错误,ios,iphone,xcode,swift3,xcode8,Ios,Iphone,Xcode,Swift3,Xcode8,使用新的Xcode 8 beta 4时,我们在CopySwiftLibs构建阶段开始遇到以下错误: Effective srcDirs: {( <DVTFilePath:0x7f865961e970:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator'>, <DVTFilePath:
Xcode 8 beta 4
时,我们在CopySwiftLibs
构建阶段开始遇到以下错误:
Effective srcDirs: {(
<DVTFilePath:0x7f865961e970:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator'>,
<DVTFilePath:0x7f8657d02b20:'/Volumes/Data/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/lib/swift/iphonesimulator'>
)}
有效SRCDIR:{(
,
)}
错误:以下二进制文件使用不兼容的Swift版本:
/用户/user/Projects/git/iphone-swift-1/DerivedData/myApp/Build/Products/Debug iphonesimulator/myApp.app/myApp
/Users/user/Projects/git/iphone-swift-1/myApp/myAppApi.framework/myAppApi
myAppApi是工作区中包含一些共享代码的子项目(它使用Alamofire
)
需要注意的是:最初我们将项目从Swift 2.2转换为Swift 2.3,然后手动升级到3.0
有人知道是什么导致了这个错误吗
谢谢 您需要将所有依赖项切换到
swift 3
。
在您的情况下,Alamofire需要切换到Swift 3
branch我也遇到了同样的问题。
我的解决方案是将“myApp”目录重命名为“myAppmyApp”,然后再次运行该应用程序。一个新的“myApp”-目录被制作成一个新的目录,应用程序在我的iPhone上运行得非常好
与您的情况不同的可能是:我的应用程序的名称,比方说“DerivedData”目录中的“myApp”是myApp与:“-”连接在一起的
也许这会对您有所帮助。我也遇到了同样的问题,但通过以下方法解决了它:
我使用Swift 3在Xcode 8上实现了这一点 我通过迦太基整合了各种图书馆。然而,在这个过程中,我将其中一些转换为CoCoapod,并忘记从项目目标中删除旧的
.frameworks
文件
删除它们解决了生成错误。如果您的容器应用程序的代码是Swift 2.3,并且您正在Xcode 8中创建一个新的扩展,您也可能会遇到此问题 要解决上述情况 注意:所有代码必须在同一swift(兼容)版本中才能编译而不会失败 也就是说,解决这个问题的一种方法是坚持使用Swift 2.3,然后将扩展目标的使用传统Swift语言版本设置为“是” 当Xcode 8打开时,您可以找到该选项,如下所示:
注意:您可能需要修复扩展模板中被覆盖的代码,因为它们最初在Swift 3中。在执行任何操作之前 (如果您可以使用与您的项目兼容的Xcode 8.0) 默认情况下,项目设置为Xcode 3.2兼容
- 在导航器中选择您的应用程序项目(位于左侧)
- 在实用程序面板中选择项目文档(位于 (右侧)
- 将项目格式更改为兼容Xcode 8.0的项目格式
在调试现有项目之前。如果在创建项目时没有创建Git存储库,请关闭项目并压缩项目文件的副本。在添加框架的Swift 3版本后,我收到了相同的错误消息 我的目标
框架搜索路径
仍然配置为查找同一框架的swift 2和swift 3版本,因此我的项目在swift 2.3版本上卡住了
对我来说,解决方案是从我的项目目录中删除旧框架,并从
框架搜索路径中删除其文件夹引用 我通过删除项目中嵌入的二进制文件修复了这个问题。为此:
在Xcode中打开您的工作区/项目
导航到实际的项目文件(使用“常规”、“功能”等功能区)
转到General>Embedded Binary,通过选择不需要的二进制文件,然后单击减号来删除
注1:您不必从“链接的框架和库”部分删除它们(当您从“嵌入式二进制文件”中删除它们时,它们应该自动删除)
注2:我有很多依赖项,正在使用CoCoapod。“嵌入式二进制文件”中没有任何内容,只有“链接的框架和库”部分中的“Pods_u0;[YourApplicationName].framework”部分。因此,我只发布了一个小时调试后找到的解决方案
自Xcode 9以来,这可以通过编译器日志进行跟踪
如果向下滚动到编译器日志的底部,您将发现此问题是由类型检查崩溃引起的
在将Xcode更新到9.3之后,我遇到了同样的问题。我只需清理build文件夹就解决了这个问题。您可以使用Command-Option-Shift-K或在选项菜单“产品”->“清洁”中执行此操作(请参见屏幕截图)
升级到Xcode 10.2后,这个弹出窗口刚刚出现。。。我的一个吊舱使用Swift。
解决方案是:
pod repo update
rm -rf Pods
pod install
二进制文件是为较旧版本的swift构建的,即swift 2.2
。它与Swift 2.3
或Swift 3
不兼容。应使用usi对其进行更改和编译