Natrium 是 E-sites iOS Suite 的一部分。
一个预构建的 (Swift) 脚本,用于在构建时根据环境和构建配置修改您的 Xcode 项目。
使用 Natrium,您可以将此
#if ENVIRONMENT_STAGING
let apiHost = "mynice.staging-api.com"
#elseif ENVIRONMENT_DEVELOPMENT
let apiHost = "mynice.dev-api.com"
#else
let apiHost = "mynice.api.com"
#endif
Alamofire.request("https://\(apiHost)/items").responseJSON { response in
// ...
}
变成此
let apiHost = Natrium.Config.apiHost
Alamofire.request("https://\(apiHost)/items").responseJSON { response in
// ...
}
"${PROJECT_DIR}/Pods/Natrium/Natrium/natrium" Production
Pods/Natrium/bin/natrium
更改为 Pods/Natrium/Natrium/natrium
Pods/Natrium/Natrium/Natrium.swift
natrium install
已移除.natrium-env
和 .env
文件都可用于环境变量--project
参数对于 Natrium v6.x,您需要手动将 Natrium.swift
文件导入到您的项目中,才能使其在新 Xcode 构建系统中工作。 请阅读安装指南。
Natrium v5.x 不再需要构建阶段脚本。
从目标设置中打开您的 Build Phases
并删除 [Natrium] check
步骤。
否则,您的构建将在脚本步骤中失败
只需将 Natrium.swift
(从指定位置,请参阅安装指南)添加到您项目的目标(不要复制)。
配置文档可以在此处找到。
如上所示的示例 .natrium.yml
将生成以下 Config.swift 文件
import Foundation
/// Natrium.swift
/// Autogenerated by natrium
///
/// - see: https://github.com/e-sites/Natrium
enum Natrium {
enum Environment: String {
case staging = "Staging"
case production = "Production"
}
enum Configuration: String {
case debug = "Debug"
case release = "Release"
case adhoc = "Adhoc"
}
enum Config {
static let environment: Natrium.Environment = .staging
static let configuration: Natrium.Configuration = .debug
static let testVariableDouble: Double = 1.0
static let testVariableString: String = "debugString"
static let testVariableBoolean: Bool = false
static let testVariableInteger: Int = 125
static let testArray: [String] = [ "StagingFoo", "StagingBar" ]
}
}
它可以这样使用
class MainViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print("bundle identifier: \(Bundle.main.bundleIdentifier!)")
print("environment: \(Natrium.Config.environment)")
}
}
结果
bundle identifier: com.esites.app.staging
environment: Staging
运行
make xcodeproj
并打开 Natrium.xcodeproj
在 Pods/Natrium/bin/
文件夹中,您可以找到 natrium.log
,其中包含上次构建的日志。 它可能对调试有所帮助。
如果您将 .env
放在项目的根目录中。 Natrium 将使用该填充来将环境变量添加到您已存在的环境变量中。 .env
文件应具有以下格式
KEY=VALUE
例如
PRODUCTION_SECRET_API_TOKEN=3489uierhjkfbnvcx
STAGING_SECRET_API_TOKEN=iujk9qijs41
这样,您就可以在您的 .natrium.yml
文件中使用 #env(PRODUCTION_SECRET_API_TOKEN)
。
对于 CI/CD 管道,您可以简单地将这些环境变量添加到您的构建管道中(例如在 travis 或 buddybuild 中)。
但是,如果您想将其用于本地(调试)构建,则此文件可能会有所帮助。
.env
添加到您的 .gitignore
中