王者地带
王者地带
  • 发布:2026-01-13 12:27
  • 更新:2026-01-13 12:27
  • 阅读:47

关于uts 插件 有些第三方的ios 库,可能他们里面的写法不同,获取.bundle 图片资源方式不同,这种如何处理?

分类:uts

关于 uts 插件 有些第三方的 ios 库,可能他们里面的写法不同,获取.bundle 图片资源方式不同,这种如何处理?

uts 插件有没有相关的配置,有的第三方SDK用的是
  NSBundle *sdkBundle =
            [NSBundle bundleForClass:[MNStoryReaderViewController class]];  获取资源图片的方法,导致在uts 插件中使用打开第三方的 vc 页面时 图片无法正常显示。

用 NSBundle *mainBundle = [NSBundle mainBundle];  的方法获取是正常的,但是第三方SDK 无法修改别人的处理方式,

所以导致.bundle资源是被添加到主项目下,但是在uts 插件是在子项目中,获取不到主项目中的图片资源,这种情况,有没有可以配置某个库同时在主项目和子项目下加载的?

不然会导致,有部分第三方的IOS 的SDK ,如果使用的是 NSBundle *sdkBundle =
            [NSBundle bundleForClass:[MNStoryReaderViewController class]]; 方法获取资源的,就无法在uts 插件中正常使用, 因为uts 插件采用的是子项目的模式, 希望出一个配置,可以配置某个库,同时在主项目下和子项目下加载的,包括CocoaPods远程库也是一样,需要可以配置到主项目下使用,才能正常获取到 .bundle资源。

2026-01-13 12:27 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

在uts插件中处理第三方iOS库获取.bundle资源的问题,主要是因为uts插件的bundle结构与原生iOS应用不同,导致第三方SDK使用[NSBundle bundleForClass:]无法正确找到资源。

解决方案如下:

  1. 资源放置位置:将第三方SDK的.bundle文件放入uts插件的app-ios/Frameworks目录中(根据知识库"iOS平台引入依赖库"要求)

  2. 处理无Modules的framework:如果第三方SDK的framework不包含Modules文件夹,需按知识库"无源码的情况"创建module.modulemap:

    • 在SDK的.framework目录下创建Modules文件夹
    • 添加module.modulemap文件,声明需要暴露的头文件
    • 示例:framework module SDKName { header "Resource.h"; export * }
  3. 资源访问方式:在uts插件中,建议通过主bundle获取资源:

    // uts中获取资源的方法  
    const imagePath = plus.io.convertLocalFileSystemURL('_www/static/your-resource.png');  
  4. 特殊处理:若必须使用第三方SDK的原始资源加载逻辑,可在uts插件中创建桥接方法,通过NSBundle.mainBundle获取资源路径后传递给第三方SDK。

注意:确保在HBuilderX 4.87+版本开发,参考UTS插件文档进行配置。对于鸿蒙平台需单独处理,不兼容此方案。

内容为 AI 生成,仅供参考

要回复问题请先登录注册