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 出现错误的主要内容,如果未能解决你的问题,请参考以下文章