如何在 Swift 中为 iOS 创建 SDK?
Posted
技术标签:
【中文标题】如何在 Swift 中为 iOS 创建 SDK?【英文标题】:How to create SDK for iOS in Swift? 【发布时间】:2018-02-18 01:21:27 【问题描述】:我有自己的 Xcode 项目,其中包含一些控制器。我想制作它的 SDK,以便在另一个应用程序中使用它。在父应用程序中,它作为子应用程序工作。父应用程序将与我的控制器共享一些数据,我的控制器对其进行处理并返回一些结果。所以请给我指导。示例是 - 支付网关 SDK。我也在找。
【问题讨论】:
【参考方案1】:我可以看到你为 swift 添加标签。在 Swift 中,不支持静态库,因此在将应用程序链接到库时,您必须专门使用框架(也称为动态库)。框架类似于sdk。
步骤如下:
1)在ios > Framework & Library下使用New > Project创建Framework,选择Cocoa Touch Framework
2)为了避免“ld:警告:找不到选项的目录...”,请转到您的目标的构建设置中的库搜索路径并删除路径。
3)您不能将 Objective-C 与 Swift 混合使用,因此甚至不要考虑在您的代码中添加 Swift-Header 桥接文件。
4) 在某些情况下,您需要从未公开的框架中导入代码。我已经成功使用框架内的模块映射来处理这些情况。
5)我还在构建设置中选择 CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES 来解决“在框架模块中包含非模块化头文件”。这似乎有效
6)我确保生成的头文件被标记为公共(不是项目)。单击该文件,您将在“目标成员”下的检查器中看到选择
Link
您也可以按照本教程进行操作。由于您已经创建了项目。 创建一个框架目标,使所有源代码文件成为新目标的成员,将新目标作为目标添加到 podfile。对于其他所有内容,本教程都应该有效。它应该可以帮助您理解这些步骤。 Build framework
【讨论】:
我收到此错误不支持使用带有框架目标的桥接头 这是我的框架的错误。我在 Swift 中有一些控制器,而另一个在 Objective C 中。 使用目标 c 本身完成了我的框架。现在我想知道如何调用 SDK 中的控制器。我在另一个 Swift 代码中使用我自己的 SDK。 恭喜它开始工作。你必须展示到目前为止你做了什么才能获得更好的帮助。此外,这似乎是您在此处提出的一个单独问题。您针对您的问题发布了一个新问题。您的问题的解决方案是拖放包含框架文件的文件夹并添加创建文件夹引用。然后在 Linked Framework 和 Libraries 中浏览它,它会显示为框架而不是文件夹。希望对你有帮助 如果您对答案感到满意,请接受并投票 :)以上是关于如何在 Swift 中为 iOS 创建 SDK?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift 中为 iOS 10 和 iOS 9.3 初始化 NSManagedObject 子类
可以使用 Xamarin 为原生 iOS 和 Android 应用程序创建客户端 sdk 吗?
AWS iOS SDK Cognito 开发人员身份验证 (Swift)
iOS - Swift Google AdMob SDK 如何在 UITableView 的重复项目中显示不同的广告?
在使用 Amazon iOS SDK 的 swift iOS 应用程序中,如何为 AWSS3TransferUtility 下载操作设置自定义超时?