SwiftDotenv

CI

一个用于在 Swift 程序中处理环境变量的一站式工具。

概述

SwiftDotenv 是一个小型且紧凑的 Swift 脚本库,允许您在运行时加载和保存 .env 文件,并通过 ProcessInfo 查询这些值以及系统提供的环境变量。它是一个用于处理运行时本地配置文件中的环境变量的单一抽象,而不是将字符串硬编码到您的应用程序或框架中,并且该配置文件不会提交到版本控制。

重要提示:请注意,将密钥或其他敏感信息存储在 .env 文件中不一定会使您的应用程序安全。有关更多信息,请参阅 NSHipster 的这篇精彩文章

什么是 .env 文件?

.env 文件最常用于服务器端应用程序,在开发期间将环境变量注入到应用程序中。它们可以包含 API 密钥、秘密和其他敏感信息,因此不应提交到版本控制。环境文件应仅存在于开发机器本地;在 TravisCI 或 CircleCI 等持续集成系统中,环境变量通过各自的 UI 添加,而不是使用 .env 文件。

我应该何时使用此库?

SwiftDotenv 主要用于脚本用例,而不是在应用程序内部使用。这是因为为了从您的应用程序访问 .env 文件,它必须与您的应用程序捆绑在一起,这违背了最初将它们分开的目的。但是,您仍然可以使用 Dotenv 作为一种更 Swift 化的方式来与系统环境变量进行交互,它将仅代理到 processInfo.environment

安装

SwiftDotenv 支持 Swift Package Manager,可以通过将此条目添加到您的 Package.swift 清单文件中来添加

.package(url: "https://github.com/thebarndog/swift-dotenv.git", .upToNextMajor("2.0.0"))

您还可以使用 swift-sh 等解决方案来实现更简洁的脚本设置。

用法

import SwiftDotenv

// load in environment variables
try Dotenv.configure()

// access values
print(Dotenv.apiSecret)

Dotenv

要使用环境文件中的值配置环境,请调用 Dotenv.configure(atPath:overwrite:)

try Dotenv.configure()

它可以选择提供路径

try Dotenv.configure(atPath: ".custom-env")

以及不覆盖当前现有环境变量的能力

try Dotenv.configure(overwrite: false)

读取值

let key = Dotenv.apiKey // using dynamic member lookup
let key = Dotenv["API_KEY"] // using regular subscripting

设置新值

Dotenv.apiKey = .string("some-secret")
Dotenv["API_KEY"] = .string("some-secret")

// set a value and turn off overwriting 
Dotenv.set(value: "false", forKey: "DEBUG_MODE", overwrite: false)

Dotenv 结构也可以被赋予自定义分隔符、文件管理器和进程信息

Dotenv.delimeter = "-" // default is "="
Dotenv.processInfo = ProcessInfo() // default is `ProcessInfo.processInfo`
Dotenv.fileManager = FileManager() // default is `FileManager.default`

贡献

如果您发现错误、有功能请求的想法或想提供帮助,请打开一个 issue 描述您的问题或一个包含您的功能的 pull request。请始终遵守行为准则

用 Swift 和 ❤️ 制作。