【问题标题】:CocoaPods and Swift 3.0CocoaPods 和 Swift 3.0
【发布时间】:2017-11-26 11:20:41
【问题描述】:

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

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

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

【问题讨论】:

  • 实际上有可能..当您选择将项目转换为 swift 3 时..只需取消选中您不想在 swift3 中转换的框架...但我想您会收到一堆错误

标签: ios swift swift3 cocoapods xcode8


【解决方案1】:

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

【讨论】:

  • 正如 Anish 所说,这是可以做到的,但仅仅能够构建项目是不够的。他将不得不更改更新可可豆荚框架,但他会这样做,而不是 Xcode
【解决方案2】:

只需在您的 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

【讨论】:

    【解决方案3】:

    这可能有助于Swift migration guide

    直接来自 Swift.org

    使用 Carthage/CocoaPods 项目

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

    1. 在您的 Xcode 工作区中包含项目的源代码 这种方法您将构建和迁移开源项目 以及您自己的项目。
    2. 使用 Xcode 7.3[.1] 进行必要的更改并验证 该项目可以正确构建和链接所有内容。
    3. 在您的工作区和设置中包含其他 Xcode 项目文件 您构建项目所依赖的目标的方案。 如果您有用于查找二进制文件的设置框架搜索路径 Carthage 的 build 文件夹中的 Swift 模块,要么删除 搜索路径或清理构建文件夹,以便您确定 你只使用从你的 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;更新您的依赖项并尝试 使用更新的依赖项和源代码构建您的项目 您从迁移者那里获得的更改。

    【讨论】:

      【解决方案4】:

      任何使用最新 cocoapods 的 xcode 并删除 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' 使用_frameworks!

      目标''做 pod 'Alamofire', '~> 4.4' 结束

      6.ctrl+s

      7.ctrl+q

      8.pod 安装

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-24
        • 1970-01-01
        • 2015-06-22
        • 2017-06-13
        • 2015-05-22
        相关资源
        最近更新 更多