Tag: Build Configuration

带有存根示例的自定义Xcode构建配置

您可能已经看到Xcode创建新项目时,有两种构建配置:Debug和Release。 在本文中,我们将学习如何使用网络存根示例创建自定义构建配置,以演示如何进行设置以及其工作方式。 最近,我们正在一个项目上进行工作,其中我们有一个网络层来向我们的服务器发出请求,并在它上面的一个服务层来接收响应,并且在大多数情况下都会发生业务逻辑。 在这种情况下,为了同时测试网络层和服务层的业务,我们使用模拟数据对测试请求进行存根。 我们可以通过多种方法来执行此操作,包括将参数传递给网络对象的运行时检查,然后在运行时进行条件检查,以确定是否应该对响应进行存根。 我们将从Debug配置中创建一个新的。 现在我们有了定制的构建配置,下一步是设置编译器标志,以便我们可以进行标志检查。 我们仅搜索活动编译条件并添加了TEST标志。 对dd来说,在Project和Target上使用此标志非常重要。 现在我们有了一个新的构建配置,我们可以将其设置为将用于该项目上每个目标的每个动作的配置。 添加标记后,我们现在需要在“测试”操作上编辑架构,并更改它将使用的构建配置。 只需为“测试”操作选择“测试”构建配置,即可完成。 现在,我们的测试目标将使用“测试”配置来构建。 现在,让我们看看它如何在我们的示例中运行: 这就是全部,希望您喜欢🙂 如果我有问题或您有任何意见或疑问,请告诉我。 我很高兴收到您的反馈feedback 您可以在Twitter上@ LucianoPassos11找到我。 感谢您阅读🙂

#if在动态环境中工作#endif iOS中的App Environment抽象

2.问题 在谈论包括多个后端和应用程序环境的开发设置时,配置将成为救生员,并且是一种设置和构建满足多种需求的应用程序的好方法。 当我们开始考虑明确设置应用程序环境的主要原因时,就会出现问题。 他们注定会有所不同! 这意味着Alpha版本应该与Beta版本有所不同,并且可以肯定的是, Debug和Release之间存在有意义的区别。 只要与其他API URL或某些资产有关,就可以了。 但是,如果它们提供的实际功能有所不同,则可能适得其反。 我确定您至少看过一次此代码: #if调试 // 做点什么 #其他 //做其他事情 #万一 还算不错。 请记住,在大多数情况下,除非您开始归档或在Release中构建,否则将不检查#else之后的代码。 因此,它已经失去了一些编译时安全性。 考虑到这一点: #if调试 //调试流程 #elseif AlPHA //被认为是Alpha流程 //但是有一个错字,编译器永远不会突出显示 #elseif测试版 // Beta流 #其他 //应该是Release,对吗? //除非我们添加了更多配置 //忘了处理它们 #万一 从理论上讲,它可以在代码的许多地方发生。 每个添加/删除配置都可能需要重新访问这些位置,然后重新检查流程。 没有编译器的帮助,代码很快变得难以维护。 另一个主题是单元测试-编写有趣的测试。 我有🙂 3.环境抽象 我在许多不同的项目中都在为这个问题而苦苦挣扎。 不管功能切换的好坏,我经常以类似以下内容结束: 公共枚举环境:字符串{ 案例调试 案例测试版 案例发布 公共静态var当前:环境{ #if调试 返回.debug #elseif测试版 返回.beta #其他 返回.release #万一 } […]