pod 安装后 Alamofire 出现错误

Posted

技术标签:

【中文标题】pod 安装后 Alamofire 出现错误【英文标题】:Alamofire gives error after pod install 【发布时间】:2016-11-14 21:53:52 【问题描述】:

我知道对此有很多问题,但我找不到解决方案。我使用 Xcode 8 和 swift 2.3。当我在我的应用程序中添加 Alamofire 时,构建总是失败,并且它给了我与 swift 版本相关的错误。如果有人遇到同样的问题并解决了它,请给我解决方案或建议我正确使用 Alamofire 的方法没有错误(这是我第一次使用它,我对 ios 开发真的很陌生)

编辑: 我对此进行了测试:pod 'Alamofire', '~> 3.5' 然后我做了一个pod install,当我构建项目时,我得到了这个错误:

Alamofire 不会进行代码签名,因为它的设置没有指定开发团队。 需要为使用 Swift 的目标正确配置“使用旧版 Swift 语言版本”(SWIFT_VERSION)。使用 [Edit > Convert > To Current Swift Syntax...] 菜单选择 Swift 版本或使用 Build Settings 编辑器直接配置构建设置。

【问题讨论】:

您使用的是什么版本的 Alamofire? 我用 4.0 和 3.5 测试过,结果不行 编辑您的问题并添加您收到的 podfile 和错误描述。 顺便说一句,用 Swift 2.3 忘记 4.0。你应该使用 3.5 @alexburtnik 请查看我的编辑 【参考方案1】:

在您的 podfile 中指定您要下载 2.3 版本,方法是将其粘贴在 Pofile 末尾的所有其他内容下。

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
           config.build_settings['SWIFT_VERSION'] = '2.3'
        end
   end
end

在中间行中,您可以看到构建设置的SWIFT_VERSION 专门更改为2.3。总的来说,这就是你的 podfile 的样子:

target 'YourApp' do
  use_frameworks!

  # Pods for Weatherly
  pod 'Alamofire'

end

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
           config.build_settings['SWIFT_VERSION'] = '2.3'
        end
   end
end

希望这有帮助:)

【讨论】:

【参考方案2】:

您似乎并没有真正使用 Swift 2.3。

    转到目标设置的构建设置部分。 如果您真的想使用 Swift 2.3,请搜索 Use Legacy Swift Language Version 并将其设置为 YES 清理和构建。

如果这没有帮助,请尝试以下方法:

    打开project.pbxproj文件

可以在*.xcodeproj中找到:右键->显示包内容->project.pbxproj)

    搜索SWIFT_VERSION。如果有除 2.3 以外的任何其他值,请手动设置。例如 SWIFT_VERSION = 3.0; -> SWIFT_VERSION = 2.3; 清理并重新构建。

手动编辑project.pbxproj 文件的原因是有时Xcode 不会更新SWIFT_VERSION 键的所有值。 8.0遇到这个问题,可能8.1已经修复了

【讨论】:

我应该在安装 pod 之前还是之后这样做?也请原谅我,但是是的,我在 swift 3.0 和 2.3 之间感到困惑。如何确定我正在使用的版本?值 3.0 是否意味着我在代码中使用了 3.0?还是因为我有 Xcode 8 而显示 3.0?请注意,我希望我的最小目标是 8 个 顺序无关紧要。但是 Alamofire 的版本可以。基本上Use Legacy Swift Language Version 设置意味着您的项目正在使用 Swift 2.3。如果是这样,你的库也应该用 Swift 2.3 编写,如果是 Alamofire,它是 3.5。 我测试了这两个选项,但我得到了同样的错误。在我手动设置 SWIFT_VERSION 之前,我发现其中一些变成了 2.3 和其他 3.0。在清理和构建失败之后,我将整体设置为 2.3。而且我的代码中有很多错误,例如“UIScreen 没有成员 main”、“使用未声明的 URL”... UIScreen.main 是 Swift 3.0 代码。它位于哪里?您的代码或第三方模块? 那么您的问题具有误导性。您告诉我们您使用的是 2.3 而不是。您应该在 2.3 和 3.0 之间做出选择,并在整个应用程序(包括 pod)中坚持使用它。

以上是关于pod 安装后 Alamofire 出现错误的主要内容,如果未能解决你的问题,请参考以下文章

Pod 安装错误后,Swift 3 结果出现编译错误

安装 pod Alamofire 时出现错误

安装 Alamofire pod 时出现名称冲突错误

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

安装 Firebase pod 后出现链接器错误

Alamofire 在 Swift 3、Xcode 8 中出现错误