GitFlow Unity3D和特定于分支机构的应用程序数据

GitFlow Unity3D和特定于分支机构的应用程序数据,git,unity3d,branch,git-flow,build-settings,Git,Unity3d,Branch,Git Flow,Build Settings,我目前正在使用GitFlow作为Unity3D应用程序的分支模型。主分支是我的生产分支,而开发分支是不言而喻的。 这两个分支都有相应的云构建应用程序 当推动代码进行开发时,开发构建将自动创建和分发。当代码在发布后合并为master时,会自动创建发布版本,然后我可以下载并推送到苹果 构建设置是一个大文件,我只希望特定于构建的某些字段。我目前的策略(我不喜欢)是使用git流创建一个发布分支,提交特定于发布的更改,并完成发布。(它将所有这些更改合并到master中并返回到开发中)。这会导致自动开发生成

我目前正在使用GitFlow作为Unity3D应用程序的分支模型。主分支是我的生产分支,而开发分支是不言而喻的。 这两个分支都有相应的云构建应用程序

当推动代码进行开发时,开发构建将自动创建和分发。当代码在发布后合并为master时,会自动创建发布版本,然后我可以下载并推送到苹果

构建设置是一个大文件,我只希望特定于构建的某些字段。我目前的策略(我不喜欢)是使用git流创建一个发布分支,提交特定于发布的更改,并完成发布。(它将所有这些更改合并到master中并返回到开发中)。这会导致自动开发生成(我目前手动停止),生成设置不正确

您可以看到为什么这是不可取的:我不仅得到了一个坏的开发构建,而且每次我想要发布时都必须调整构建设置,这是非常常见的,而且很容易出现用户错误


有谁有更好的策略或建议来解决这个问题吗?

我找到了一个更好的策略:

Unity cloud build允许您添加导出前方法(和导出后方法)。需要注意的是,此方法必须是公共静态方法,并且必须位于名为“editor”的文件夹中

下面是一个如何使用它的示例:

using UnityEditor;

public static class BuildSettings
{
    public static void ProductionPreBuild()
    {
        PlayerSettings.bundleIdentifier = "com.company.production";
    }

    public static void DevelopmentPreBuild()
    {
        PlayerSettings.bundleIdentifier = "com.company.development";
    }
}

有趣。我们已经禁用了主机上的自动构建,因为这是我们的主要分支,并且得到了很多提交。每次需要构建时,我们都需要手动启动它。我们还有一个发布分支,在推送某些内容时自动构建。此分支使用正确的凭据进行设置,以便能够为应用程序加载器创建准备就绪的ipa。如果正确更改了内部版本号,大多数情况下都可以正常工作。希望你在这个问题上得到一个好的答案,因为我也想提高我们的流量。谢谢@Mattias的输入。我刚刚偶然发现了:Pre-Export方法名称。它允许您指定云构建公共静态方法以在构建过程之前运行。我可能会尝试利用这一点来为提交构建配置适当的设置。我将更新我的实验。我们将我们的版本放在生产/主分支中,并定期将主分支合并到该分支中。您如何处理版本和内部版本号?目前,我仍在手动操作。增量是我发布分支的最后一步,它在发布时被合并到development和master中。