gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:06:43 25 4
gpt4 key购买 nike

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

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

include of non-modular header inside framework module

最佳答案

在幕后,Clang 正在尝试为框架创建一个 module.map 文件。当你做类似 @import Foundation 的事情时,module.map 是用来组织导入的。 .

模块导入更像是 Java 导入而不是 C header 包含。 C header 包含(或老式的 Objective-C 导入)替换了 #include <whatever.h>编译时使用该文件的内容。模块导入是一种语义导入,告诉编译器符号的定义位置等。

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

最常见的错误也是最容易修复的,就是移动这些 #include在需要它们的地方进入 .m 文件,并在 .h 文件之外。

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

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

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