Search code examples
nativescriptangular2-nativescriptnativescript-angularnativescript-plugin

Nativescript Algolia iOS Build Fail


I am trying to build nativescript-algolia but it fails on iOS. This is the error I am getting:

[!] 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.

I have tried everything I have seen from Googling this problem. I just can't seem to set the Swift Version correctly.


Solution

  • Downgrading to 1.5.3 isn't a proper workaround and will not be sustainable in the future. In fact, this error is due to a new behavior introduced in Cocoapods 1.6.0 version, which force developers to set a Swift version to their projects. The goal is in fact to make library developers specify a Swift version in their podspec, so that library users don't have to do this manually (thanks to post_install scripts for example). You can see my discussion about this with a Cocoapods maintainer here. I do agree that this behavior is a bit misleading, as we try to set the Swift version in post_install script but an error is returned before…

    In fact, as I have been told by the maintainer, the correct fix to this issue is to set a Swift version at project level (and therefore not at Pod level). To do this, just add a new User Defined Setting in Build Settings, with key SWIFT_VERSION and value 4.0 (for example, as whatever value should work here if you also set the version at Pod level with post_install script).

    Long story short, the fix is to add this key/value : enter image description here

    Note that as you're using NativeScript, you may want to set the Swift version by running command export SWIFT_VERSION=4 in your project folder, before building.