【问题标题】:Alamofire gives error after pod installpod 安装后 Alamofire 出现错误
【发布时间】: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 请查看我的编辑

标签: ios swift alamofire xcode8


【解决方案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。

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

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

    1. 打开project.pbxproj文件

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

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

    手动编辑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)中坚持使用它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多