gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 05:39:20 25 4
gpt4 key购买 nike

NativeScript 5.4.2

tns-core-modules 5.4.3

tns-ios 5.4.2

Xcode 10.2.1

我正在尝试为 iOS 后台地理定位库创建一个插件:https://github.com/Yermo/background-geolocation-ios

该项目生成一个静态库 libBackgroundGeolocation.a。

我已阅读有关如何使用静态 iOS 库的文档:https://docs.nativescript.org/plugins/Use-Native-iOS-Libraries#static-libraries

我已阅读所需的目录结构:https://docs.nativescript.org/plugins/plugin-reference#directory-structure

我的插件基于官方插件种子,因此我有一个 demo 目录和一个包含我的插件代码的 src 目录,以及该目录下的platforms/ios 目录。

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

我创建了一个 src/platforms/ios/include/BackgroundGeolocation 目录,并将公共(public)头文件从项目复制到该目录中。

我注意到 src/platforms/ios/include/BackgroundGeolocation/module.modulemap 文件已创建。

在插件目录中,我可以成功运行“npm run build”。

但是,如果我在演示目录中运行“tns build ios”,我始终会收到“ld:找不到 -lBackgroundGeolocation 的库”错误。

如果我将库重命名为 libBackgroundGeolocation.a,我会得到“ENOENT:没有这样的文件或目录,scandir '.....ios/include/libBackgroundGeolocation”,所以我推测它至少认识到该库在那里。

我认为这可能是路径问题,因此我尝试使用platforms/ios目录的完整路径在build.xcconfig中显式设置库包含路径。

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

然后我想这可能与库中的目标有关,所以我按照这里的食谱 Build fat static library (device + simulator) using Xcode and SDK 4+ 进行操作。包含多个目标。

仍然没有喜悦。

我怀疑我错过了一些基本的东西。

我做错了什么?

最近有工作示例吗?如何将静态 iOS 库包装为 NativeScript 插件?

最佳答案

事实证明添加了

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

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

关于ios - 在 NativeScript 5.4 插件中使用静态 iOS 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com