在iOS中是否有类似于Android的Gradle Build Flavors的东西?

41

在iOS中,是否有类似于Android上的Gradle Build Flavors?

基本上我想要将Applause SDK集成到我的应用程序中,但我不希望该代码成为发布版本的一部分。我只想在内部分发和进行错误报告时使用Applause SDK。

如果没有类似的东西,那么最好的方法是什么?

2个回答

20

您可以在Xcode中使用方案和构建配置。这里是官方文档:https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/BasingBuildConfigurationsonConfigurationFiles.html

创建构建配置后,应编辑您的方案以使用该构建配置。为此,请单击方案并选择“编辑方案”。

enter image description here

简而言之,这个过程是:
  1. 创建一个构建配置
  2. 为该配置设置一些自定义标志。为此,请转到您的目标,选择“构建设置”选项卡,并搜索预处理器宏。在那里,您将能够添加自定义标志

enter image description here

3. 编辑您的方案或创建一个新方案,以使用您的构建配置。 4. 在您的代码中,您将不得不使用预处理器宏来询问标志是否可用:
``` #ifdef APP_STORE //执行某些操作 #endif ```

1
谢谢,我尝试过了,但是没有起作用,我不得不添加这个链接 https://dev59.com/xWAf5IYBdhLWcg3w9Wiu#24112024,现在它可以工作了,你有什么想法为什么吗? - T_C
3
好的,我会尽力进行翻译。需要翻译的内容是:“yup! because the example I gave was for Objective C. In swift, instead of changing Preprocessor Macros, you must change Other Swift Flags entry”。 是的,因为我举的例子是针对Objective C的。在Swift中,你不必更改预处理宏,而是要更改“Other Swift Flags”条目。 - lucaslt89
链接已损坏。 - Martin Thoma

3

有几种方法可以构建不同风格的iOS应用程序:

不同版本的资源文件

  • 使用自定义构建变量在不同版本的资源文件之间进行切换。本文讨论了如何使用不同的图标构建应用程序。

  • 对于*.strings文件和在*.storyboard文件中链接的资源,第一项建议的后缀方法对我没有起作用。所以我在管道的早期添加了一个运行脚本构建阶段。使用脚本,您可以在常规构建链处理文件之前自由地进行任何操作。这对于动态文件生成或高级文件选择逻辑非常有用。作为开关,您可以(再次)使用自定义构建变量。

修改代码

  • 使用编译器标志,如此处所建议。这些可以通过预处理器进行检查。

  • 或者你可以(再次)检查自定义构建变量。为了使它们可访问,将它们添加为plist文件中的键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接