`xcconfig` 文件中的条件用户定义变量
Posted
技术标签:
【中文标题】`xcconfig` 文件中的条件用户定义变量【英文标题】:Conditional user defined variables in `xcconfig` file 【发布时间】: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)
但显然这是错误的语法。我已经尝试寻找文档,但没有真正找到。
-
你能帮我解决
xcconfig
语法吗?
你能帮我吗
检查存档是手动启动还是通过 fastlane
gym
(xcodebuild
CLI)
【问题讨论】:
【参考方案1】:这是您要查找的文档:https://docs.fastlane.tools/actions/
您还可以运行gym help
并查看支持的参数。 xcconfig
就像您的 Fastfile 中的任何其他参数一样:
gym
...,
xcconfig: "STRING",
...
我不知道您为什么希望在设置 match
和 gym
后能够手动存档。您应该能够在您的机器上运行相同的 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 使用。
【讨论】:
以上是关于`xcconfig` 文件中的条件用户定义变量的主要内容,如果未能解决你的问题,请参考以下文章
xcodebuild:在使用条件集错误覆盖参数时实现对宏的 XCBuild 支持
目标 ... 覆盖在 `Pods/Pods.xcconfig 中定义的 `OTHER_LDFLAGS` 构建设置