【问题标题】:How to use environment variable in project.pbxproj file?如何在 project.pbxproj 文件中使用环境变量?
【发布时间】:2021-06-21 15:30:25
【问题描述】:

我有一个通过 microsoft appcenter 构建和分发的 react 本机应用程序。对于 iOS 端,我有一个发布变体,即现场制作变体。我有一个分期变体。我试图实现的 git 流程是这样的:

  1. 从 master 或 staging 创建功能分支(为了 这个论点)-->
  2. 将 OTA 更新推送到暂存变体 -->
  3. 将 staging 变体合并到 master(这是关键部分)

我希望能够将 staging 合并到 master 中,而不必每次将 staging 拉入 master 或将 master-branched-feature-branch 推送到 staging 时手动设置 defaultConfigurationName。我想要一个动态值:master 的值始终是“release”,而 staging 的值始终是“staging”。

问题: 将暂存分支合并到主分支(生产)时,project.pbxproj 中的defaultConfigurationName 会将 microsoft appcenter 构建的变体从发布变体(生产)更改为暂存变体

假设我有一个名为“ENVIRONMENT”的环境变量,其值为“release”和“staging”,对应于“master”和“staging”分支。我想在将 staging 合并到 master 时自动管理 ios 构建配置,而不必在每次将 staging 合并到 master 时手动将 defaultConfigurationName 重置回“发布”。如何将 env 变量的值设置为 project.pbxproj 文件中“defaultConfigurationName”的值?

注意:我不需要帮助设置环境或环境变量。我也不想创建额外的目标。

【问题讨论】:

  • 你能澄清一下你之前定义环境变量的方式吗?
  • @itachi 定义在一个脚本中,该脚本在 appcenter 的构建过程中运行预构建。像其他环境变量一样访问。但我不知道如何在 project.pbxproj 文件中本地使用 env 变量
  • 建议将现有的 Release 项目配置复制到您的首选发布渠道,并为它们分别定义不同的 Preprocesor Macros,并在 #if #elif #end 的一个代码库中使用它们。

标签: ios xcode react-native react-native-ios


【解决方案1】:

请看this的博文,它展示了如何为android和iOS设置多个环境。

【讨论】:

  • 问题不在于如何设置环境变量。我已经设置好了。问题是如何使用project.pbxproj文件中的环境变量
【解决方案2】:

我遇到了这个问题,发现您可以更新 ios/app/app/info.plist 中的 info.plist 文件以包含您的环境变量。

例如

<key>CFBundleVersion</key>
<string>$(CAPACITOR_BUILD_NUMBER)</string>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 2020-10-06
    • 2011-12-06
    • 1970-01-01
    • 2011-02-18
    • 2022-11-18
    • 1970-01-01
    相关资源
    最近更新 更多