如何为第三方包创建带修改的自定义模块?解决Pods修改被还原问题
解决Pods修改后
pod install恢复的问题 方案1:转为本地依赖
- 将目标Pod的完整源码复制到项目内的专属文件夹(比如新建
Vendor目录),替换Podfile里的远程依赖为本地路径:pod '目标Pod名称', :path => './Vendor/目标Pod名称' - 之后修改本地源码的内容会被版本控制追踪,
pod install也不会覆盖你的修改。
方案2:用patch工具自动打补丁
- 先对比原始代码和修改后的代码生成补丁文件,在项目根目录执行:
diff -ruN Pods/原始Pod文件夹 你的修改版Pod文件夹 > Patches/your_pod.patch - 在Podfile里添加
post_install钩子,每次pod install后自动应用补丁:post_install do |installer| patch_file = File.join(__dir__, 'Patches/your_pod.patch') if File.exist?(patch_file) system("patch -p1 -d #{installer.pods_project.parent}/Pods/目标Pod名称 < #{patch_file}") end end - 把补丁文件提交到版本控制,团队成员执行
pod install时会自动同步修改。
方案3:Fork原仓库维护自定义分支
- 到原Pod的代码仓库平台(比如GitHub)fork一份到自己账号下,在自己的仓库里完成代码修改并推送到专属分支。
- 在Podfile里指定使用你的仓库分支:
pod '目标Pod名称', :git => 'https://github.com/你的账号/目标Pod仓库.git', :branch => '你的修改分支名' - 这种方式适合需要长期迭代修改的场景,后续还能拉取原仓库的更新合并到自己的分支。
内容的提问来源于stack exchange,提问作者Riya N
相关产品推荐
相关产品推荐

