• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 将静态 Objective-C 框架转换/包装成可以在 Swift 项目中使用的动态框架

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:10:19 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我应该遵循哪些步骤将静态 Objective-C 框架转换/包装成可在 Swift 中使用的 动态框架项目?

我已经尝试过这里描述的第二种方法:https://pewpewthespells.com/blog/convert_static_to_dynamic.html但收到如下错误:

include of non-modular header inside framework module



Best Answer-推荐答案


在幕后,Clang 正在尝试为框架创建一个 module.map 文件。当您执行 @import Foundation 之类的操作时,module.map 会组织导入。

模块导入更像 Java 导入,而不是 C header 包含。 C 头文件包含(或老式 Objective-C 导入)在编译时将 #include 替换为该文件的内容。模块导入是一种语义导入,告诉编译器符号在哪里定义等等。

现在,错误 "include of non-modular header inside framework module" 基本上意味着您的模块(即您的新框架)有一个 header (任何公共(public) .h 文件),它本身具有来自本身不是“模块化”的文件的 #import#include 语句。

最常见且最容易修复的错误是将这些 #include 移到需要它们的 .m 文件中,然后移出 .h 文件。

另外,请确保正确设置您的框架,尤其是关于 header 。您希望所有公共(public) header 都包含在您的总括 header 中,并且您希望确保正确设置构建过程以根据需要复制公共(public)、私有(private)和项目 header 。获取示例的最简单方法是创建一个新的、完全干净的 Framework 项目,然后查看它是如何设置的。请注意阅读自动生成的伞形标题中的注释。

关于ios - 将静态 Objective-C 框架转换/包装成可以在 Swift 项目中使用的动态框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47053320/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap