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]