以下 pod 被集成到没有相同 Swift 版本的目标中

Posted

技术标签:

【中文标题】以下 pod 被集成到没有相同 Swift 版本的目标中【英文标题】:The following pods are integrated into targets that do not have the same Swift version 【发布时间】:2018-10-03 12:06:59 【问题描述】:

我最近在更新 Xcode 后遇到了一个问题,我无法构建项目。

Multiple commands produce '/Users/username/Library/Developer/Xcode/DerivedData/appname-code/Build/Products/Release-iphoneos/appname.app':

我按照这些答案中的说明进行操作: https://***.com/a/52452590/4838107 https://***.com/a/35316717/4838107

$ sudo gem install cocoapods-deintegrate
$ sudo gem install cocoapods-clean
$ pod deintegrate
$ pod clean
$ pod install

当我尝试“pod install”时,它给了我这个:

The following pods are integrated into targets that do not have the same Swift version:
Alamofire required by [target] (Swift 3.0)

我无法再打开该项目,因为 .xcworkspace 已消失,因此任何涉及在 Xcode 中打开该项目的解决方案都将没有任何用处。我在 *** 上搜索了答案,这是一个问题,例如 here。

Pod 文件:

#Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!
post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES'] = 'NO'
            config.build_settings['EMBEDDED_CONTENT_CONTAINS_SWIFT'] = 'NO'
        config.build_settings['SWIFT_VERSION'] = '3.0.1'
        end
    end
end
def standard_pods
    pod 'Alamofire'
    ...
end


target '[target]' do
    standard_pods
end

【问题讨论】:

在 Podfile 中指定适用于您的应用正在使用的版本的 pod 版本 @AshleyMills 我编辑了我的问题 您是否尝试过指向旧版本的 Alamofire pod?为 Swift 3 构建的? 我有 13 个豆荚。我会手动查找所有这些,还是有办法自动查找? 您需要手动完成,但这不是一项大工作。只需检查 GitHub 上的 Releases 选项卡。当然,您将失去 Pod 的任何新功能。或者,将您的应用更新到 Swift 4。您迟早必须这样做。 【参考方案1】:

就我而言,我错过了迁移其他构建目标,例如单元测试和 ui 测试 :)

【讨论】:

以上是关于以下 pod 被集成到没有相同 Swift 版本的目标中的主要内容,如果未能解决你的问题,请参考以下文章

通过 Pod 安装的 FBSDK - Swift 上没有这样的模块

iOS 8.0 Swift 中的 OneSignal 集成

pod安装后Xcode 8 swift pod标头为空

如何从 Podfile 检查 swift 版本?

将对讲集成到 Swift iOS 应用程序中

在 Swift Playground 中导入 pod 时出现“没有这样的模块”