21

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

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

有人已经有解决方案了吗?

4

4 回答 4

28

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

于 2016-06-14T20:48:25.847 回答
5

只需在您的 podfile 末尾使用以下命令,它就会设置您的 pods 文件以使框架自动采用 swift 3 编译器或旧版编译器,这样您就不会在 swift 3 中出现 cannot use 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
于 2017-01-22T18:23:25.467 回答
4

这可能有助于Swift 迁移指南

直接来自 Swift.org

使用 Carthage/CocoaPods 项目

如果您正在使用来自其他项目的二进制 Swift 模块,这些模块不是与您的 Xcode 工作区中的项目一起构建的,您可以选择以下迁移策略之一:

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

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

您可以按照以下工作流程迁移您的项目:

  1. 保持您的项目使用 Xcode 7.3 构建
  2. 调用迁移助手并应用仅为您自己的项目建议的源更改(对于 Swift 2.3 或 Swift 3)
  3. 在尝试构建之前,修改 Carthage/CocoaPods 依赖文件并指定迁移到 Swift 2.3 或 Swift 3 的项目的特定标签/分支;更新您的依赖项并尝试使用更新的依赖项和您从迁移器获得的源更改来构建您的项目。
于 2016-07-31T09:32:50.850 回答
0

使用最新的cocoapods并删除co​​coapods并再次安装最新的任何xcode,这一步在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!

target '' do pod 'Alamofire', '~> 4.4' end

6.ctrl+s

7.ctrl+q

8.pod安装

于 2017-07-14T06:45:46.467 回答