CocoaPods和Swift 3.0

我只想在我的一个项目中尝试Swift 3.0。 Xcode打开迁移窗口来更新我的项目使用Swift 3.0。

问题是,我只想更新我的项目,并保持Pods项目不变,因为在我再次运行pod install后,任何更改都将被丢弃。

任何人都已经有一个解决scheme呢?

你所问的是不可能的。 Xcode构build您的Cocoapods依赖项以及您的项目。 你不能在同一个项目中混合使用Swift 2.x和Swift 3代码,或者使用Swift 2.中编写的Swift 3使用Cocoapods。

这可能有助于Swift迁移指南

直接从Swift.org

使用Carthage / CocoaPods项目

如果您在Xcode工作区中使用其他项目中未与项目一起构build的二进制Swift模块,则可以select以下其中一种迁移策略:

  1. 在Xcode工作区中包含项目的源代码使用这种方法,您将构build和迁移开源项目以及您自己的项目。
  2. 使用Xcode 7.3 [.1]进行必要的更改并validation项目是否正确构build并链接所有内容。
  3. 在工作区中包含其他Xcode项目文件,并设置您的scheme来构build项目所依赖的目标。 如果您有设置框架searchpath来查找Carthage构build文件夹中的二进制Swift模块,请删除searchpath或清除构build文件夹,以确保您只使用从Xcode工作区构build的Swift模块。

等到上游的开源项目更新到Swift 2.3或Swift 3

您可以按照此工作stream迁移您的项目:

  1. 保持你的项目与Xcode 7.3一样
  2. 调用迁移助手并仅应用针对您自己的项目build议的源更改(对于Swift 2.3或Swift 3)
  3. 在尝试构build之前,修改Carthage / CocoaPods依赖项文件并指定要迁移到Swift 2.3或Swift 3的项目的特定标记/分支; 更新您的依赖关系,并尝试使用从迁移程序获得的更新的依赖关系和源更改来构build项目。

只需在你的pod文件的最后使用下面的命令,它会设置你的pod文件,让框架自动地使用swift 3编译器或者legacy编译器,所以你不能在swift 3中使用swift 2.1和类似的错误。

 post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3.0' end end end 

使用这个,看看我的podfile的下面的例子。 只要确保结束语句不在我上面写的块之前。

 platform :ios, '8.0' use_frameworks! target 'Project 1' pod 'FacebookCore' pod 'FacebookLogin' pod 'FacebookShare' post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3.0' end end end 

任何xcode在使用最新的cocoapods,并删除co​​coapods,并再次安装最新的这一步骤swift在swift 3.0我用swift 3.0

0.sudogem安装cocoapods

1.cd(拖放您的项目文件夹)

2.sudo gem安装cocoapods

3.touch podfile //创buildpodfile

4.打开-e podfile

5.平台:ios,'10 .0'use_frameworks!

目标“'荚'Alamofire','〜> 4.4'结束

6.ctrl + S

7.ctrl + Q

8.pod安装