Swift Variable Injector 使用教程
项目介绍
Swift Variable Injector 是一个简单的项目,旨在将 CI 管道环境变量的值注入到 Swift 代码的静态值中,以便在编译之前进行持续部署到特定环境(如开发、测试或生产)。该项目使用 SwiftSyntax 进行可靠的静态字符串替换,确保环境变量值的安全性和灵活性。
项目快速启动
安装
-
手动安装:
git clone https://github.com/LucianoPAlmeida/variable-injector.git cd variable-injector make install
-
使用示例:
// 在你的 Swift 文件中定义环境变量 struct CI { static var serviceAPIKey: String = "$(SERVICE_PROD_KEY)" static var otherAPIKey: String = "$(OTHER_PROD_KEY)" }
-
在 Xcode 中添加 Run Script 阶段:
if which variable-injector >/dev/null; then variable-injector --file ${SRCROOT}/YourProject/YourGroupFolderPath/File.swift --verbose else echo "Warning: Swift Variable Injector not installed, download from https://github.com/LucianoPAlmeida/variable-injector" fi
注意事项
- 确保在 Compile Sources 阶段之前添加 Run Script 阶段,以便变量替换后进行编译。
- 使用
--verbose
选项查看日志,但请注意,这会打印环境变量值,仅用于调试目的。
应用案例和最佳实践
应用案例
假设你有一个 iOS 项目,需要在不同环境中使用不同的 API 密钥。你可以使用 Swift Variable Injector 来管理这些密钥,而不必将它们硬编码在代码中。
最佳实践
-
环境变量定义:
struct CI { static var serviceAPIKey: String = "$(SERVICE_PROD_KEY)" static var otherAPIKey: String = "$(OTHER_PROD_KEY)" }
-
在 CI/CD 管道中定义环境变量:
export SERVICE_PROD_KEY="h344hjk2h4j3h24jk32h43j2k4h32jk4hkj324h" export OTHER_PROD_KEY="dsa76d7adas7d6as87d6as78d6aklre423s7d6as8d7s6"
-
使用
--ignore
选项忽略某些变量:variable-injector --file ${SRCROOT}/Environment/CI.swift --ignore OTHER_PROD_KEY
典型生态项目
Swift Variable Injector 可以与其他 CI/CD 工具和 Swift 项目集成,提供灵活的环境变量管理。以下是一些典型的生态项目:
- Fastlane:用于自动化 iOS 和 Android 应用的发布流程。
- Jenkins:一个开源的自动化服务器,用于构建、测试和部署项目。
- GitHub Actions:GitHub 提供的 CI/CD 平台,用于自动化软件开发工作流程。
通过这些工具的集成,你可以更高效地管理不同环境下的变量注入,确保代码的安全性和可维护性。