作者:疯务情堂 | 来源:互联网 | 2023-01-08 17:24
我有一个用Swift 3.2.2编写的项目,并使用XCode 9.1编译
我有一个使用此命令使用Carthage构建的依赖项:
carthage update --platform iOS
问题是Carthage使用Swift 4.0(而不是Swift 3.2.2)构建依赖项
使用Swift 4.0编译的模块无法在Swift 3.2.2中导入
如何告诉Carthage使用Swift 3.2.2构建我的依赖项,以便它可以在我的项目中使用?
我还不想将我的项目升级到Swift 4.0.
Xcode 9.1支持Swift 3和Swift 4.那么如何在编译依赖时告诉Carthage使用Swift 3?我不想告诉它使用早期版本的XCode(我不再拥有)
1> Andrea Mugna..:
你说:
您的项目正在Swift 3.2.2中编译
您的依赖项,一旦解决并与Carthage一起下载,将在Swift 4中进行编译(因为它的构建设置是以这种方式配置的)
有了这些条件你将无法解决问题:你不能混合使用Swift 3和4:https:
//github.com/Carthage/Carthage/issues/1978
你唯一可以做的事情是(最终)解决这个问题:
场景1
你应该找到一个以Swift 3.2~构建的库的先前版本,如果存在的话
在Cartfile上指定特定版本,例如:
github "yourDependency" == x.y.z
情景2
发射 carthage update --platform iOS
进入您的依赖文件夹(Carthage/Checkouts/yourDependency
)并打开.xcodeproj以手动修改此选项:
那么你可能会遇到大量的构建问题,因为你正在制作一个语言回归,你可以尝试修复它们(如果很小或者没有,那么它可能是可能的).
如果你已经解决了依赖关系,那么启动:
carthage build --platform iOS
尝试编译你的项目......