【问题标题】:Conditional user defined variables in `xcconfig` file`xcconfig` 文件中的条件用户定义变量
【发布时间】:2016-10-21 08:04:58
【问题描述】:

使用在 macOS Sierra 上运行的 Xcode 8 我试图在 xcconfig 文件中声明一个条件变量。

我的项目使用fastlane match,所以我主要想使用fastlane gym 来归档我的应用程序,但我也希望能够手动执行归档(测试目的)。

我想要实现的是这样的:

_ARCHIVING_WITH_CLI = YES // Actually want to check for some fastlane ENV variabel here, not sure how...

#ifdef _ARCHIVING_WITH_CLI
    _PROVISIONING_PROFILE_APP_STORE = sigh_com.mycomp.app_appstore
#else
    _PROVISIONING_PROFILE_APP_STORE = match AppStore com.mycomp.app
#endif

PROVISIONING_PROFILE_SPECIFIER[config=Release] = $(_PROVISIONING_PROFILE_APP_STORE)

但显然这是错误的语法。我已经尝试寻找文档,但没有真正找到。

  1. 你能帮我解决xcconfig 语法吗?
  2. 你能帮我吗 检查存档是手动启动还是通过 fastlane gym (xcodebuildCLI)

【问题讨论】:

    标签: ios swift xcode fastlane xcconfig


    【解决方案1】:

    这是您要查找的文档:https://docs.fastlane.tools/actions/

    您还可以运行gym help 并查看支持的参数。 xcconfig 就像您的 Fastfile 中的任何其他参数一样:

    gym {
      ...,
      xcconfig: "STRING",
      ...
    }
    

    我不知道您为什么希望在设置 matchgym 后能够手动存档。您应该能够在您的机器上运行相同的 Fastfile,match 将负责安装您的证书,您将完成同样的事情。

    https://codesigning.guide/

    【讨论】:

    • 抱歉回复太晚了。我想你误解了我的问题。我不是在问如何使用 fastlane 中的 xcconfig。其实我不想那样做。我已将我的 xcconfig 设置为项目中的配置。我在问如何在 xcconfig 中声明自定义 bool 变量并稍后在文件中使用该 bool。
    【解决方案2】:

    您可以根据 sdk、架构或配置有条件地设置变量。格式如下:

    <FIELD>[<condition_name_1>=<condition_value_1>][<condition_name_2>=<condition_value_2>].. = <Value>
    

    其中condition_name_* 可以是sdk/arch/config,有关可能值的详细信息,请参阅official documentation

    对于您的场景,您似乎可以取消应用基于 sdk 的条件,或创建自定义配置:一种用于 Fastlane,另一种用于 cli/manual 使用。

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      相关资源
      最近更新 更多