V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shede333
V2EX  ›  iOS

多分支开发时, CocoaPods 的 podfile 的管理问题

  •  
  •   shede333 · 2018-09-14 16:31:16 +08:00 · 3915 次点击
    这是一个创建于 2267 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我这边做 ios 开发是多分支的( develop 分支、master 分支、其他分支等等);

    我这边发版的时候使用“ master 分支”,我希望 master 分支上的“ podfile ”内 pod 的依赖保持不变;

    develop 分支会经常修改“ podfile ”文件,但是发版前,总会 develop 分支把合并到 master 分支上,这就导致 master 分支上的“ podfile ”文件就变了;

    不知道大家是如何解决这种情况的? 不知道能不能有多个“ podfile ”文件?或者重命名"podfile 文件"

    develop 分支上的 podfile 文件里 pod 依赖 和 master 分支上的 podfile 文件里 pod 依赖 是不同的、

    8 条回复    2018-09-16 14:17:15 +08:00
    whileFalse
        1
    whileFalse  
       2018-09-14 17:04:52 +08:00
    有一个办法:
    1. 在 develop 分支上提交 gitignore,忽略掉 podfile,并将 podfile 从版本控制中删除。将此提交合并至 master。
    2. 在 master 分支上回滚这个提交。此回滚提交应只存在于 master,永远不要合并回开发分支。
    3. 完成!
    whileFalse
        2
    whileFalse  
       2018-09-14 17:06:16 +08:00
    但是这样搞有个恶心的小地方,就是你每次从 develop 合代码到 master,都会出现一个 merge。
    amon
        3
    amon  
       2018-09-14 17:10:42 +08:00
    如果 pod 里面的文件可以保持不变的话,直接 gitignore 里面把 pod 文件夹写进去。
    finab
        4
    finab  
       2018-09-14 17:13:32 +08:00
    develop 和 master 不同?
    那分出两个 target
    一个 master 用,一个 develop 用

    同一个 podfile 中
    为不同 target 引用不同的依赖库
    例如
    target 'master-target' do
    pod ...
    end

    target 'dev-target' do
    pod ...
    end

    开发时,master 分支用 master target 调试编译
    develop 用 develop target 调试编译。

    代码都是共享一份, 但是不会影响各自的修改
    finab
        5
    finab  
       2018-09-14 17:17:55 +08:00
    分出两个 target

    66450146
        6
    66450146  
       2018-09-14 17:30:13 +08:00
    有什么特别的区分 Podfile 的原因吗?
    acumen
        7
    acumen  
       2018-09-15 17:03:51 +08:00 via iPhone
    问题是在 pod install 的时候来区分 release 还是 develop

    可以在 podfile 里判断 ruby 的环境变量来达到目的


    env PODFILE_TYPE=release pod install

    在 master 执行 ,相应的 PODFILE_TYPE=develop 在 开发下执行。
    uhayate
        8
    uhayate  
       2018-09-16 14:17:15 +08:00 via iPhone
    这个问题很简单。我提供一个解决思路,你把 dev 分支特定的改动做一个 stash,切到 dev 就使用这些 stash,提交代码时不动它们
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1086 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:44 · PVG 03:44 · LAX 11:44 · JFK 14:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.