在NativeScript 5.4插件中使用静态iOS库



nativescript 5.4.2

TNS核模块5.4.3

tns-ios 5.4.2

xcode 10.2.1

我试图为iOS的此背景地理位置库创建一个插件:https://github.com/yermo/background-geolocation-ios-ios

该项目生产一个静态库,libbackgroundgeolocation.a。

我已经阅读了有关如何使用静态iOS库的文档:https://docs.nativecript.org/plugins/use-native-native-native-native-ios-libraries#static-libraries

我已经阅读了所需的目录结构:https://docs.nativecript.org/plugins/plugin-reference#directory-sstructure

我的插件基于官方插件种子,因此我有一个演示目录和一个包含我的插件代码和平台/iOS目录的SRC目录。

我已将backgroundGeoLocation.a文件复制到src/platforms/ios。

我已经创建了一个SRC/Platforms/ios/Include/BackgroundGeoLocation目录,并将项目中的公共标题文件复制到该目录中。

我注意到已经创建了src/platforms/ios/include/inception/backgroundgeolocation/module.modulemap文件。

在插件目录中,我可以成功运行" NPM Run Build"。

但是,如果我运行'TNS构建iOS',则从演示目录中,我始终获得一个" ld:library for -lbackgroundGeoLocation"错误。

如果我将图书馆重命名为libbackgroundGeolocation。

我认为也许这是一个路径问题,所以我尝试使用Platforms/iOS目录的完整路径在build.xcconfig中明确设置库包含路径。

没有喜悦。它仍然找不到库,但是如果我拼错了build.xcconfig中的-l中的目录名称,则它标记为未找到错误的目录。

然后,我认为也许与库中的目标有关,所以我在此处使用Xcode和SDK 4 的食谱构建脂肪静态库(设备 模拟器(以包括多个目标。

仍然没有欢乐。

我怀疑我缺少一些基本的东西。

我在做什么错?

在如何将静态iOS库作为NativeScript插件包装的地方有一个工作的示例吗?

添加

LIBRARY_SEARCH_PATHS = $(inherited) "$(SRCROOT)/../../node_modules/<projectname>/platforms/ios

到src/platforms/ios/build.xcconfig文件解决了此问题。

最新更新