gpt4 book ai didi

ios - 防止 Xcode 重建更改配置

转载 作者:行者123 更新时间:2023-11-29 05:16:34 26 4
gpt4 key购买 nike

我们的项目使用不同的构建配置来分隔服务器环境(例如:制作、演出)

#if STAGE
public struct endpoint {
public static let api = URL(string: "https://stage.???.com/api")!
}
#else
public struct endpoint {
public static let api = URL(string: "https://prod.???.com/api")!
}
#endif
}

enter image description here

有时我们需要在不同的配置之间切换来反复调试,

但是,即使我们没有更改文件,Xcode 在切换配置时也会重建几乎所有文件。

是否可以优化 Xcode,以防止在更改配置时构建几乎所有文件,从而使其像增量构建一样构建?以下是build设置中的部分配置

enter image description here enter image description here

环境:

  • Xcode 11
  • Swift 和 Objective-C 混合项目
  • Cocoapods 安装第 3 方库

最佳答案

也许您可以使用不同的策略来避免重建。

我有一个我编写的游戏,它是一个基于服务器的游戏。我有一个在 MacOS 上运行的服务器版本,以便于调试,并且是使用 Xcode 构建的,并且该游戏是 iOS 游戏。客户端和服务器都支持构建不同的环境,但是我不使用构建配置本身来控制它们。相反,我使用目标作为控制环境访问的主要方式。

我使用以下方法:

  • “控制”环境的命令行参数
  • 使用配置文件“控制”环境
  • 使用构建目标“控制”环境

所有 3 个都用于服务器的情况(因为它是命令行可执行文件),最后两个用于游戏的情况。

这里的技巧是我的代码允许动态切换环境(这确实是这种方法的关键要素)。

我使用构建目标来控制允许的切换范围。例如,我的 Dev 目标允许在 Dev、QA、Stage 和 Prod 之间切换。我的 QA 目标允许在 QA、Stage 和 Prod 之间切换,而我的 AppStore 目标仅支持 Prod。

当然,支持目标的是构建配置。对于构建配置,我使用 Debug、DevDebug、Release、DevRelease 和 AppStore。因此“QA Target”使用简单的调试配置和发布配置。并且DevDebug配置和DevRelease配置与“Dev目标”一起使用。我总共使用了 3 个目标。

当应用程序启动时,如果它可以接受命令行并且定义了环境,它就会使用它(如果可以的话)。下一个后备是配置文件(如果您在模拟器上或运行 MacOS 应用程序,则可以轻松编辑此文件)。然后烘烤什么。

这也意味着我有一个环境选择器。我发现还允许从网络错误弹出窗口中选择选择器也很方便(以防您处于错误的环境中)。选择器仅适用于非 AppStore 版本。

关于ios - 防止 Xcode 重建更改配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59133637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com