Nativescript Algolia iOS构建失败

问题描述 投票:1回答:3

我正在尝试构建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版本。

nativescript angular2-nativescript nativescript-angular nativescript-plugin
3个回答
1
投票

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

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

长话短说,修复是添加这个键/值:enter image description here

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


1
投票

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

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

1
投票

在插件创建者的帮助下,我能够通过降级我的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

© www.soinside.com 2019 - 2024. All rights reserved.