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