【发布时间】:2013-01-08 14:27:44
【问题描述】:
我正在编写一个依赖于其他一些开源库的 iOS 库。显然不可能有两个具有相同名称的类,因此该库可能会编译,并且可能使用它的项目也可以编译,但它们不能很好地协同工作(在链接阶段)。
该库面向大量受众,因此我无法对这些开发人员是否会导入相同的库,或者他们是否可能使用相同库的不同、不兼容版本做出任何假设。
我一直在环顾四周,但找不到任何明确的解决方案来解决我的问题(也许没有)。到目前为止,我正在考虑以下选项:
- 通知用户 X 库已经包含在项目中,因此他们也不要包含它们。这意味着他们不能使用不同版本的 X 库。
- 作为第一个版本的改进版,使用 CocoaPods,因此依赖关系会自动解决。还是有两个版本的库不能共存的缺点。
- 导入并重命名我的库所依赖的所有类,并为其添加前缀,这样名称就不会与原始名称冲突。这是一项乏味的工作,但更重要的是,它的缺点是我无法从/向原始库拉取/推送代码,因为代码会发生太多变化。从用户的角度来看,在我看来仍然是最佳选择。
你能想出更好的主意吗?我对图书馆项目很陌生,所以也许我缺少一些明显的东西。
我们还没有决定是以二进制还是源代码形式分发。如果有理由选择一个或另一个,我也想听听您的意见。
【问题讨论】:
-
您是否考虑分发源代码或二进制文件?
-
我在描述中添加了这个,谢谢hooleyhoop