uni-app 按照官方文档里面的ios原生插件开发 项目找不到类

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app 按照官方文档里面的ios原生插件开发 项目找不到类

操作步骤:

预期结果:

  • 能够正常调用函数

实际结果:

  • 无法正常调用函数

bug描述:

  • 使用App离线SDK开发原生插件,示例工程运行在模拟器里面出现了
    <Weex>[error]WXBridgeContext.mm:1323, jsLog: TypeError: undefined is not an object (evaluating 'o.testAsyncFunc') __ERROR
    

图片

信息类别 详细信息
产品分类 HbuilderX
PC开发环境 Mac
PC操作系统版本 macOS Sequoia 15.1.1
HBuilderX版本 4.36
手机系统 iOS
手机系统版本 iOS 18
手机厂商 模拟器
手机机型 iPhone16
页面类型 vue
SDK版本号 4.36.2024112817

6 回复

根据示例工程运行起来找不到类,麻烦官方大佬帮忙看下


好像是MyModule所在的framework 没有添加到依赖的包里面。 使用Cocoapods的模版项目进行创建是可以,但是要在 Other Linker Flags里面加$(inherited)

Cocoapods项目中打印值可以出来

在开发uni-app的iOS原生插件时,如果遇到“项目找不到类”的问题,这通常是由于类定义、文件路径、项目配置或编译缓存的问题导致的。以下是一些排查和解决问题的步骤,以及相关的代码示例,帮助你定位和解决这个问题。

1. 确认类定义和文件路径

首先,确保你的类定义正确,并且文件路径无误。例如,如果你的类名是MyPlugin,确保你的.h.m文件路径和命名正确。

MyPlugin.h

#import <Foundation/Foundation.h>

@interface MyPlugin : NSObject

- (void)someMethod;

@end

MyPlugin.m

#import "MyPlugin.h"

@implementation MyPlugin

- (void)someMethod {
    // 实现方法
    NSLog(@"MyPlugin someMethod called");
}

@end

2. 检查Xcode项目配置

确保Xcode项目正确配置了插件的源文件。在Xcode中,打开你的uni-app项目,找到Build Phases标签,确保你的.m文件被添加到了Compile Sources列表中。

3. 更新uni-app原生插件配置

manifest.json中,确保你的原生插件配置正确。例如:

"plugins": {
    "myPlugin": {
        "provider": "wxxxxxxxxxx", // 替换为你的插件ID
        "version": "1.0.0",
        "platform": "ios"
    }
}

4. 清理和重建项目

有时候,Xcode的编译缓存可能会导致此类问题。尝试清理项目(Product -> Clean Build Folder)并重新构建。

5. 检查桥接文件

如果你使用的是OC和Swift混编,确保你的桥接文件(Bridging-Header.h)配置正确,并且包含了必要的OC头文件。

6. 示例代码调用

在你的uni-app的JavaScript代码中,通过plus.ios.importClass来导入并使用这个类:

const MyPlugin = plus.ios.importClass('MyPlugin');
const myPluginInstance = new MyPlugin();
myPluginInstance.someMethod();

7. 调试和日志

如果以上步骤仍未解决问题,可以通过Xcode的调试功能,查看编译时的详细日志,查找可能的错误信息或警告。

通过上述步骤,你应该能够定位并解决“项目找不到类”的问题。如果问题依旧存在,建议检查是否有最新的uni-app和Xcode更新,或者查阅社区和官方论坛获取更多帮助。

回到顶部