菜鸟教程小白 发表于 2022-12-12 11:11:00

ios - GitHub:管理不同版本的应用程序的最佳方式是什么?


                                            <p><p>我有一个 iOS 应用,有两个不同的版本,基本上一个是在 App Store 上发布(在线版),另一个是内部分发(离线版)。</p>

<p>我正在寻找的是在 GitHub 上发布我的代码的最佳方式,以便我将来可以轻松地更新这两个 Xcode 项目,因为这两个版本只有一部分代码不同。</p >

<p>据我了解,分支被 merge 到“master”,但在我的情况下,两个版本都需要分开,只需要 merge 一些更改。</p>

<p>我尝试为我的 GitHub 存储库创建第二个分支,但我不知道这是让两个项目同时更新的最简单方法,还是在 GitHub 上创建两个单独的存储库更好?</p>

<p>感谢您的反馈!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>有几种方法可以实现您想要的。为不同版本的应用程序使用多个存储库或分支不是一个好的选择。代码库可能会随着时间的推移而出现分歧,并且变得非常难以维护。</p>

<p>为了解决这个问题,我们更喜欢在 XCode 中使用单独的目标配置。 </p>

<p>创建应用新版本的最简单方法:</p>

<ul>
<li>复制当前目标</li>
<li>将其重命名为“XXX 内部”而不是“XXX 副本”(可选)</li>
<li>将包标识符更改为与原始目标不同</li>
<li>将“XXX copy-Info.plist”文件重命名为更好的名称,并更改目标build设置中的 Info.plist 引用(可选)</li>
</ul>

<p>现在您可以从目标的配置 Pane 更改任何配置。 </p>

<p>为了区分运行的应用版本,您可以在目标的build设置中定义宏(例如 FREE=1),或者您可以在代码中检查当前标识符、应用名称等来设置当前版本。</p >

<pre><code>typedef enum {
    QWEAppStore,
    QWEAppStoreFree,
} QWEAppVersion;

#ifdef FREE
    #define QWECurrentVersion QWEAppStoreFree
#else
    #define QWECurrentVersion QWEAppStore
#endif
</code></pre>

<p>然后在你的类中使用它:</p>

<pre><code>- (IBAction)buttonTapped:(id)sender
{
    if (QWECurrentVersion == QWEAppStore) {
      // Do something
    } else {
      // Do something else
    }
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - GitHub:管理不同版本的应用程序的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/16713336/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/16713336/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - GitHub:管理不同版本的应用程序的最佳方式是什么?