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以下其中一种迁移策略:
- 在Xcode工作区中包含项目的源代码使用这种方法,您将构build和迁移开源项目以及您自己的项目。
- 使用Xcode 7.3 [.1]进行必要的更改并validation项目是否正确构build并链接所有内容。
- 在工作区中包含其他Xcode项目文件,并设置您的scheme来构build项目所依赖的目标。 如果您有设置框架searchpath来查找Carthage构build文件夹中的二进制Swift模块,请删除searchpath或清除构build文件夹,以确保您只使用从Xcode工作区构build的Swift模块。
等到上游的开源项目更新到Swift 2.3或Swift 3
您可以按照此工作stream迁移您的项目:
- 保持你的项目与Xcode 7.3一样
- 调用迁移助手并仅应用针对您自己的项目build议的源更改(对于Swift 2.3或Swift 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,并删除cocoapods,并再次安装最新的这一步骤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安装