CocoaPods 和 Swift 3.0
CocoaPods and Swift 3.0
我只想在我的一个项目中尝试 Swift 3.0。 Xcode 打开迁移 window 更新我的项目以使用 Swift 3.0.
问题是,我只想更新我的项目,并保持 Pods 项目不变,因为在我再次 运行 pod install
之后,任何更改都将被丢弃。
有人对此有解决方案吗?
你问的是不可能的。 Xcode 构建您的 Cocoapods 依赖项以及您的项目。您不能在同一项目中混合使用 Swift 2.x 和 Swift 3 代码,也不能将 Cocoapods 与 Swift 3 中编写的 Swift 2.x 一起使用。
这可能会有所帮助 Swift migration guide
直接来自Swift.org
Using Carthage/CocoaPods Projects
如果您正在使用其他项目的二进制 Swift 模块,这些模块不是与您的项目一起构建在您的 Xcode 工作区中,您可以选择以下迁移策略之一:
- 将项目的源代码包含在您的 Xcode 工作区中
您将通过这种方法构建和迁移开源项目
以及您自己的项目。
- 使用 Xcode 7.3[.1] 进行必要的更改并验证
该项目正确构建和链接所有内容。
- 在您的工作区和设置中包含其他 Xcode 项目文件
您构建项目所依赖的目标的方案。
如果您有用于查找二进制文件的设置框架搜索路径
Swift Carthage 构建文件夹中的模块,或者删除
搜索路径或清理构建文件夹,以便您确定
您只使用从 Xcode 构建的 Swift 模块
工作区。
等到上游开源项目更新到Swift2.3或Swift3
You can follow this workflow for migrating your project:
- 使用 Xcode 7.3
构建您的项目
- 调用迁移助手并应用已更改的源
仅建议您自己的项目(Swift 2.3 或 Swift 3)
- 在尝试构建之前,修改 Carthage/CocoaPods 依赖项
文件并指定项目的具体 tag/branch
迁移到 Swift 2.3 或 Swift 3;更新您的依赖项并尝试
使用更新的依赖项和源构建您的项目
您从迁移器获得的更改。
只需在您的 podfile 末尾使用以下命令,它会设置您的 pods 文件,让框架自动采用 swift 3 编译器或遗留编译器,这样您就不会得到不能在 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 3.0 中正常工作我在 swift 3.0
中使用
0.sudo gem 安装 cocoapods
1.cd(拖放项目文件夹)
2.sudo gem 安装 cocoapods
3.touch podfile //创建podfile
4.open -e podfile
5.platform:ios, '10.0'
use_frameworks!
目标''做
pod 'Alamofire', '~> 4.4'
结束
6.ctrl+s
7.ctrl+q
8.pod 安装
我只想在我的一个项目中尝试 Swift 3.0。 Xcode 打开迁移 window 更新我的项目以使用 Swift 3.0.
问题是,我只想更新我的项目,并保持 Pods 项目不变,因为在我再次 运行 pod install
之后,任何更改都将被丢弃。
有人对此有解决方案吗?
你问的是不可能的。 Xcode 构建您的 Cocoapods 依赖项以及您的项目。您不能在同一项目中混合使用 Swift 2.x 和 Swift 3 代码,也不能将 Cocoapods 与 Swift 3 中编写的 Swift 2.x 一起使用。
这可能会有所帮助 Swift migration guide
直接来自Swift.org
Using Carthage/CocoaPods Projects
如果您正在使用其他项目的二进制 Swift 模块,这些模块不是与您的项目一起构建在您的 Xcode 工作区中,您可以选择以下迁移策略之一:
- 将项目的源代码包含在您的 Xcode 工作区中 您将通过这种方法构建和迁移开源项目 以及您自己的项目。
- 使用 Xcode 7.3[.1] 进行必要的更改并验证 该项目正确构建和链接所有内容。
- 在您的工作区和设置中包含其他 Xcode 项目文件 您构建项目所依赖的目标的方案。 如果您有用于查找二进制文件的设置框架搜索路径 Swift Carthage 构建文件夹中的模块,或者删除 搜索路径或清理构建文件夹,以便您确定 您只使用从 Xcode 构建的 Swift 模块 工作区。
等到上游开源项目更新到Swift2.3或Swift3
You can follow this workflow for migrating your project:
- 使用 Xcode 7.3 构建您的项目
- 调用迁移助手并应用已更改的源 仅建议您自己的项目(Swift 2.3 或 Swift 3)
- 在尝试构建之前,修改 Carthage/CocoaPods 依赖项 文件并指定项目的具体 tag/branch 迁移到 Swift 2.3 或 Swift 3;更新您的依赖项并尝试 使用更新的依赖项和源构建您的项目 您从迁移器获得的更改。
只需在您的 podfile 末尾使用以下命令,它会设置您的 pods 文件,让框架自动采用 swift 3 编译器或遗留编译器,这样您就不会得到不能在 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 3.0 中正常工作我在 swift 3.0
中使用0.sudo gem 安装 cocoapods
1.cd(拖放项目文件夹)
2.sudo gem 安装 cocoapods
3.touch podfile //创建podfile
4.open -e podfile
5.platform:ios, '10.0' use_frameworks!
目标''做 pod 'Alamofire', '~> 4.4' 结束
6.ctrl+s
7.ctrl+q
8.pod 安装