如何使用Swift为iOS创建SDK?

10

我有自己的Xcode项目,其中包含一些控制器。我想要创建它的SDK,以便在另一个应用程序中使用。在父级应用程序中,它作为子级运行。父应用程序将与我的控制器共享一些数据,我的控制器对其进行操作并返回一些结果。所以请指导我。例如 - 支付网关SDK。我正在寻找相同的东西。

1个回答

14
我可以看到您为Swift添加了标签。在Swift中,不支持静态库,因此在将应用链接到库时,必须专门使用框架(也称为动态库)。框架类似于SDK。
以下是步骤:
1)创建框架:新建> IOS下的项目> Framework和Library,选择Cocoa Touch Framework
2)为了避免“ld:warning:directory not found for option…” ,请在目标的Build Settings中前往Library Search Paths并删除路径。
3)不能将Objective-C与Swift混合使用,因此甚至不要考虑在代码中添加Swift-Header桥接文件。
4)在Swift中有一些情况需要从未公开的框架中导入代码。我成功地使用了模块映射来处理这些情况。
5)我还在Build Settings中选择了CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES来解决“include of non-modular header inside framework module”。这似乎有效。
6)确保生成的头文件标记为Public(而不是Project)。单击该文件,您将在“Target Membership”下的检查器中看到选择。
链接:Link 您还可以按照此教程操作。由于您已经创建了项目,请创建框架目标,使所有源代码文件成为新目标的成员,并将新目标添加为podfile的目标。对于其他所有内容,教程应该有效。它应该帮助您了解这些步骤。
链接: Build framework

我遇到了这个错误:在框架目标中使用桥接头是不支持的 - Mayur Shinde
这是我的框架出现的错误。我有一些用Swift编写的控制器,另一些则是用Objective C编写的。 - Mayur Shinde
我已经用Objective-C自己完成了我的框架。现在我想知道如何调用我的SDK中的控制器。我将在另一个Swift代码中使用自己的SDK。 - Mayur Shinde
恭喜你让它正常工作了。你需要展示一下你已经做了什么来获取更好的帮助。另外,这似乎是你在这里提出的一个单独问题。你可以发布一个新的问题来阐述你的问题。你的问题的解决方案是将包含框架文件的文件夹拖放并添加创建文件夹引用。然后在“链接的框架和库”中浏览它,它将会显示为框架而不是文件夹。希望能有所帮助。 - cole
如果您对答案满意,请接受并点赞它 :) - cole

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接