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文件解决了此问题。