Nativescript Algolia iOS 构建失败

Nativescript Algolia iOS Build Fail

我正在尝试构建 nativescript-algolia,但它在 iOS 上失败了。这是我收到的错误:

[!] Unable to determine Swift version for the following pods:

- `AlgoliaSearch-Client-Swift` does not specify a Swift version 
and none of the targets (`appname`) integrating it have the 
`SWIFT_VERSION` attribute set. Please contact the author
or set the `SWIFT_VERSION` attribute in at least one of the 
targets that integrate this pod.

我已经尝试了通过谷歌搜索这个问题所看到的一切。我似乎无法正确设置 Swift 版本。

App_Resources/iOS 中创建一个名为 Podfile 的文件并添加以下行,

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

在插件创建者的帮助下,我能够通过降级我的 Cocoapods 版本来解决这个问题。

sudo gem uninstall cocoapods
sudo gem install cocoapods -v 1.5.3

参考文献:

https://github.com/arpit2438735/nativescript-algolia/issues/19#issuecomment-472847392

Swift Version NativeScript

降级到 1.5.3 不是合适的解决方法,将来也不会持续。事实上,这个错误是由于 Cocoapods 1.6.0 版本中引入的一个新行为,它强制开发人员为他们的项目设置一个 Swift 版本。事实上,目标是让库开发人员在他们的 podspec 中指定一个 Swift 版本,这样库用户就不必手动执行此操作(例如,感谢 post_install 脚本)。可以看到my discussion about this with a Cocoapods maintainer here。我同意这种行为有点误导,因为我们尝试在 post_install 脚本中设置 Swift 版本,但在…

之前返回错误

事实上,正如维护者告诉我的那样,解决此问题的正确方法是在项目级别(而不是 Pod 级别)设置 Swift 版本。为此,只需在 Build Settings 中添加一个新的 User Defined Setting,键 SWIFT_VERSION 和值 4.0(例如,如果您还设置了版本,则任何值都应该在这里工作在 Pod 级别使用 post_install 脚本)。

长话短说,修复方法是添加此 key/value :

请注意,当您使用 NativeScript 时,您可能需要在构建之前通过 运行 命令 export SWIFT_VERSION=4 在项目文件夹中设置 Swift 版本。