iOS 개발 시, 외부에 노출되면 안 되는 API Key를 안전하게 관리하기 위해 Secrets.plist 파일을 사용하고, 이를 Git에 커밋하지 않도록 설정하는 방법을 설명합니다.
Secrets.plist 파일 생성<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>GOOGLE_API_KEY</key>
<string>YOUR_API_KEY</string>
</dict>
</plist>
import Foundation
class Secrets {
static let shared = Secrets()
private var secrets: [String: Any] = [:]
private init() {
if let url = Bundle.main.url(forResource: "Secrets", withExtension: "plist"),
let data = try? Data(contentsOf: url),
let plist = try? PropertyListSerialization.propertyList(from: data, options: [], format: nil),
let dict = plist as? [String: Any] {
secrets = dict
}
}
func value(for key: String) -> String? {
return secrets[key] as? String
}
}
사용 예시
let apiKey = Secrets.shared.value(for: "GOOGLE_API_KEY")
.gitignore 파일에 아래 라인 추가
/Secrets.plist
이렇게 하면 Secrets.plist는 Git 추적 대상에서 제외됩니다.