Nativescript Algolia iOS 构建失败
Posted
技术标签:
【中文标题】Nativescript Algolia iOS 构建失败【英文标题】:Nativescript Algolia iOS Build Fail 【发布时间】:2019-08-04 20:20:17 【问题描述】:我正在尝试构建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 版本。
【问题讨论】:
github.com/arpit2438735/nativescript-algolia/commit/… 尝试在podfile中添加平台:ios, '8.0 已经试过了...没有运气。 你可以创建一个游乐场吗?添加包nativescript-algolia
您有示例应用程序 ID 和 API 密钥来测试吗?
【参考方案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 版本,但之前返回错误......
事实上,正如维护人员告诉我的,解决此问题的正确方法是在项目级别(而不是在 Pod 级别)设置 Swift 版本。为此,只需在Build Settings
中添加一个新的User Defined Setting
,键为SWIFT_VERSION
和值4.0
(例如,如果您还使用post_install
脚本在Pod 级别设置版本,则任何值都可以在此处使用)。
长话短说,解决方法是添加此键/值:
请注意,当您使用 NativeScript 时,您可能希望在构建之前通过在项目文件夹中运行命令 export SWIFT_VERSION=4
来设置 Swift 版本。
【讨论】:
【参考方案2】:在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
【讨论】:
你尝试过干净的构建吗?【参考方案3】:在插件创建者的帮助下,我能够通过降级我的 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
【讨论】:
降级 Cocoapods 版本不是一个合适的解决方法,您将无法永远坚持使用1.5.3
版本。请在下面查看我的答案。以上是关于Nativescript Algolia iOS 构建失败的主要内容,如果未能解决你的问题,请参考以下文章
Nativescript - 设置 Nativescript 插件的目标 IOS 版本
NativeScript 中的 Card.io - thinkdigital-nativescript-cardio
[翻译]Nativescript 中 Web 视图与 Android/IOS 的双向通信
NativeScript 3.4:iOS 上的 WebView 性能缓慢
Nativescript 在设备 IOS 上运行 - dyld 库未加载 @rpath/Nativescript.framework