uni-app IOS 原生插件调用本地framework库 读取不到函数
uni-app IOS 原生插件调用本地framework库 读取不到函数
在 DCTestUniPlugin TestModule.m
中引用了第三方库,打包时检测不到。
部分打包日志:
ld: warning: arm64 function not 4-byte aligned: _dc_ffi_call_SYSV from [SourcePath]/libs/UniSDK/liblibPGInvocation.a(sysv_arm64.o)
ld: warning: arm64 function not 4-byte aligned: _ffi_closure_SYSV from [SourcePath]/libs/UniSDK/liblibPGInvocation.a(sysv_arm64.o)
Undefined symbols for architecture arm64:
"_CompressionThreshold_NL2", referenced from:
-[TestModule lmsToNal:] in DCTestUniPlugin(TestModule.o)
由于不包含第三方库不包含 x86,无法打包自定义基座。
更多关于uni-app IOS 原生插件调用本地framework库 读取不到函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app IOS 原生插件调用本地framework库 读取不到函数的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 中调用 IOS 原生插件并读取本地 framework 库中的函数时,如果读取不到函数,可能是由于几个常见原因造成的,例如 framework 引用不正确、插件注册有误、或者函数声明/调用不匹配等。以下是一个简化的代码案例,展示如何在 uni-app 中正确配置和调用 IOS 原生插件的函数。
1. 创建 IOS 原生插件
首先,创建一个 IOS 原生插件,并在其中引用本地 framework。
MyPlugin.h
#import <Foundation/Foundation.h>
#import <MyFramework/MyFramework.h> // 假设 MyFramework 是你的本地 framework
@interface MyPlugin : NSObject
- (NSString*) callMyFrameworkFunction:(NSString*)param;
@end
MyPlugin.m
#import "MyPlugin.h"
@implementation MyPlugin
- (NSString*) callMyFrameworkFunction:(NSString*)param {
MyFrameworkClass *frameworkInstance = [[MyFrameworkClass alloc] init];
return [frameworkInstance someFunctionInFramework:param];
}
@end
2. 注册插件到 uni-app
在 manifest.json
中注册插件,并确保 IOS 配置正确。
{
"mp-weixin": {},
"app-plus": {
"distribute": {},
"plugins": {
"MyPlugin": {
"version": "1.0.0",
"provider": "wxxxxxxxxxx" // 替换为你的插件提供者ID
}
}
},
"h5": {},
"plugins": {
"MyPlugin": {
"ios": {
"package": "com.example.myplugin",
"className": "MyPlugin"
}
}
}
}
3. 在 uni-app 中调用插件
在 JS 代码中调用插件方法。
main.js
#ifdef APP-PLUS
plus.bridge.exec('MyPlugin', 'callMyFrameworkFunction', ['yourParam'], (res) => {
console.log('Result from native:', res);
}, (e) => {
console.error('Error calling native:', e);
});
#endif
4. 确保 framework 正确链接
在 Xcode 中,确保你的 framework 已经被正确添加到项目的 Link Binary with Libraries 中,并且 Build Settings 中的 Framework Search Paths 包含了 framework 的路径。
5. 调试和测试
- 确保所有配置正确无误。
- 使用 Xcode 运行应用,查看控制台输出,检查是否有关于 framework 加载失败的错误。
- 确保 framework 中的函数名与插件中的调用一致。
通过上述步骤,你应该能够在 uni-app 中成功调用 IOS 原生插件并读取本地 framework 库中的函数。如果仍然遇到问题,建议检查 Xcode 的构建日志,查找可能的链接或编译错误。