我有一个需要支持iOS7的项目。我想使用一个不支持iOS7的lib(我们称之为LIB),但可以很容易地修改它。我也期望LIB会经常发生变化。
什么是理想的解决方案:
我将LIB的代码包含在我的项目中(标记为last 发布)
我修改LIB以支持iOS7(通常只提交一次)。我不希望将此提交推送到LIB的原始存储库,但希望将其保存在我的项目存储库中。
当新的LIB版本发布时,我在我的项目中更新它 合并第2点的更改或只重做这些更改。
我不想在我的项目历史中拥有LIB的完整历史记录(因为git子树执行AFAIK)。只有“LIB更改为1.2.42; LIB已更新以支持iOS7”;
我可以自己复制LIB的代码或维护LIB的支持iOS7支持,但它很耗时而且不是很“自动”。我已经检查了git子模块和git子树,但据我所知,它不可能有点2,是吗?
解决此问题的最佳方法是什么?
答案 0 :(得分:1)
我可以......使用iOS7支持维护LIB的分支
我认为这是最好的选择。
将库分叉并在应用程序中使用fork。如果要使用新版本的上游库,请将这些更改合并到fork中,并更新主应用程序以使用新版本的分叉库。
使用Git子模块当然可以做到这一点,尽管像CocoaPods这样的依赖管理器可能是更好的选择。我通常更喜欢尽可能使用依赖管理器,尽管我不是iOS开发人员,并且不能特别关注CocoaPods。