【问题标题】:Using Microsoft App Center environment variables in iOS在 iOS 中使用 Microsoft App Center 环境变量
【发布时间】:2019-01-19 11:13:20
【问题描述】:

我想开源我的 iOS 应用程序,但仍然能够使用像 Microsoft App Center 这样的 CI 系统来构建它。我的应用使用了我想从我的开源存储库中隐藏的私有 API 密钥。

幸运的是,App Center 提供了环境变量功能,旨在在构建时使用。他们的documentation 说他们可以在 bash 中这样使用:

$ENVIRONMENT_VARIABLE

那么,假设我在 App Center 中配置了一个名为 GoogleAPIKey 的环境变量,我可以在我的应用程序中像 ProcessInfo.processInfo.environment["GoogleAPIKey"] ?? "" 这样检索它吗?如果是,如果只有 App Center 有密钥,我如何在我的设备上测试应用程序(我不想把它放在我的代码中,因为这意味着它会是公开的(我需要使用gitignore)吗?

【问题讨论】:

    标签: ios swift visual-studio-app-center


    【解决方案1】:

    我认为您无法在应用程序中读取环境变量。您只能在自定义 bash 脚本中访问环境变量。但是我认为您可以在构建脚本中修改应用程序项目文件。所以你可以试试这样的:

    1. 向 xcode 项目添加一个特殊的文本文件并将其提交到您的存储库。
    2. 使用 GoogleAPIKey 值添加环境变量
    3. 将 GoogleAPIKey 值写入构建脚本内的文本文件。
    4. 使用您的 Swift 代码从文本文件中读取 GoogleAPIKey 值

    【讨论】:

    • 我一直在努力解决同样的问题。你能展示你的脚本是什么样子的吗?我正在写一个新的 plist,但它不能在设备上工作。仅来自模拟器的本地。不确定我是否设置了错误的路径或者它以错误的顺序运行。
    • ako89,我很久没用AppCenter了,也没有脚本。但是,脚本应该非常简单。如果是文本文件,您需要使用 API 密钥填充它。像echo $API_KEY_VALUE > mytextfile 这样的东西就足够了。对于 plist 文件,它有点棘手,因为您不想重写文件的全部内容。但是,您可以用占位符值填充 plist 并用真正的键替换 plist 中的占位符值。我认为sed 命令可以解决问题:sed s/PLACEHOLDER_VALUE/$API_KEY_VALUE/g -i -- path-to-plist-file
    【解决方案2】:

    编辑当前方案(产品 -> 方案 -> 编辑方案)

    在此处添加环境变量:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 2022-06-18
      • 1970-01-01
      相关资源
      最近更新 更多