2017-03-01 53 views
0

我必须编辑由不再在项目中的人开发的iOS应用程序。编译问题:两个包之间的Swift版本不兼容

他给了我应用程序的源代码,但我无法编译它。我正在使用xcode。

iOS的项目包含2包:

  • MAIN:包含写在斯威夫特3.0.1
  • PODS的应用:包括书面的SWIFT 2.3

应用程序使用的库我在“Swift编译器 - 版本”中更改了MAIN.xcodeproj的“构建设置”: 我在PODS.xcodeproj中将“使用传统Swift语言版本”更改为“否” 我将此设置设置为“是”

当我尝试生成项目,我得到以下问题:

Contact.swift:10:8: Module compiled with Swift 2.3 cannot be imported in Swift 3.0.1: JSONCodable.swiftmodule 

当我跟随在计算器其他职位的提醒,即改变“雨燕编译器 - 版本”我改变了“使用传统斯威夫特语言版本的” MAIN.xcodeproj的 为‘是’,我得到了很多兼容性的错误,如:

/MAIN/Model/Data.swift:55:1: Type 'Data' does not conform to protocol 'Storable' 

我尝试了所有可能的值‘使用传统的雨燕语言版本的’不更迭。 我也尝试在只包含“3.0.1”的根文件夹中添加一个“.swift-version”文件,但它没有奏效。

我想在我的podfile加入这一行:

config.build_settings['SWIFT_VERSION'] = '3.0.1' 

但它并没有工作也没有。

我试图重新安装cocaopods,但没有任何改变。

如何将swift 2.3编写的库导入swift 3.0.1编写的项目中?

谢谢

+0

您需要重新安装荚 –

+0

我重装了好时候没有成功,我试图强迫在podfile迅速版本,但事实并非如此都没有 – Aznhar

+0

按照这个步骤:去编辑>>转换>> CurrentSwiftSyntax –

回答

0

我认为唯一的解决方案是将Pod的代码从2.3转换为3.0,然后修改xcode不会自动更改的东西。 也许你可以强制你的pod版本在podfile中:

pod'〜> 3.0。1'

,然后重新安装舱体与

pod install 
+0

谢谢你的工作 – Aznhar

2

斯威夫特还不支持使用该语言的一个版本与不同版本编译的应用程序编译包。您必须重写其中的一个,以便它们都使用相同的版本。

这就要求迅速的ABI稳定下来,这种情况发生在快速版本4上,但现在已经推迟了。

+0

是的,但之前编译过该项目,该应用程序已在商店中。所以我认为我可以编译它,除非该人给我错误的信息来源。 – Aznhar