我正在制作一个将公开的框架(SDK)。我正在考虑一种情况,它不是通过 Cocoapods/Carthage 分发,而是通过一个简单的下载页面分发。
在 SDK 中,我需要为用户提供通过 Facebook 登录和分享的机会,因此我想使用适当的 Facebook SDK(我假设为 FBSDKLoginKit/ShareKit)。但是如果我的 SDK 的最终用户也有这些 Facebook SDK(或任何其他重复的依赖项),就会发生冲突。 在不使用 Cocoapods/Carthage 的情况下处理这种情况的正确方法是什么?我相信,一种方法是避免将依赖项包含/静态链接到我的框架中,而是让最终用户单独下载依赖项,但也许还有另一种解决方法?让人们从不同的来源下载大量的库并不是很方便。
问题不在于 Facebook SDK,而在于开发框架/库时存在第三方依赖项的一般情况。
附:我发现了这个问题:Integrate Facebook SDK inside my iOS Framework .但它专门针对 Facebook,可能已经过时(自 2014 年以来,iOS 世界发生了很多事情)。
更新:SDK 将闭源。
你可以结合你建议的两个想法:
不要将其他 SDK 直接包含在您的框架中,而是在用户下载时将它们放在同一个项目中。这样,如果用户还没有它们,他们可以复制他们需要的所有框架。如果用户已经拥有它们,那么他们可以自己复制您的 SDK 并让它在他们的项目中正常工作。
此组合还允许您在下载中包含测试和示例。然后,用户最终下载了一个完整的、正常运行的项目,他们可以在将其与自己的代码集成之前进行试用。
关于ios - 如何管理我正在制作的框架和主应用程序之间的依赖关系冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38762027/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |