Swift의 환경변수 참조
스위프트에서 환경 변수를 어떻게 잡을 수 있는지 아는 사람?
스위프트 3 이상:
import Foundation
if let value = ProcessInfo.processInfo.environment["KEY"] {
...
}
와 함께NSProcessInfo
Oleg가 언급한 기반 방법은 표준 C를 사용하여 환경 변수에 액세스할 수 있습니다.getenv
다음과 같은 기능:
Swift 2.x:
func getEnvironmentVar(name: String) -> String? {
let rawValue = getenv(name)
guard rawValue != nil else { return nil }
return String(UTF8String: rawValue)
}
Swift 3.0:
func getEnvironmentVar(_ name: String) -> String? {
guard let rawValue = getenv(name) else { return nil }
return String(utf8String: rawValue)
}
또한 다음을 사용하여 환경 변수를 설정할 수 있습니다.setenv
함수:
func setEnvironmentVar(name: String, value: String, overwrite: Bool) {
setenv(name, value, overwrite ? 1 : 0)
}
변수 설정 기능을 언급하는 이유는 Xcode Playground에서 작업할 때 변수를 설정하는 유일한 방법이기 때문입니다.
나는 최근에 이상한 것에 대한 역추적을 보고 싶었습니다.CGContext
놀이터에서 "라이브" 보기로 작업할 때 오류가 발생했습니다.기본적으로 백트레이스가 콘솔에 표시되지 않으므로 다음을 설정해야 했습니다.CG_CONTEXT_SHOW_BACKTRACE
설정을 확인할 수 있는 환경 변수:
setenv("CG_CONTEXT_SHOW_BACKTRACE", "1", 1)
그 후, 순조로웠습니다.음, 그 외에는.CGContext
오류가 발생했지만, 그것은 다른 날의 주제입니다.
이것이 도움이 되길 바랍니다!
추신. 위의 기능은 다음을 필요로 합니다.Darwin
가져올 모듈입니다.Foundation
자동으로 가져오기Darwin
그럼에도 불구하고 나는 그것을 언급해야 한다고 생각했습니다.
네, 가능합니다. 사용하세요.ProcessInfo
그것 때문에
간단한 예:
let dic = ProcessInfo.processInfo.environment
if dic["VAR"] != nil {
}
스위프트 3 이후NSProcessInfo
로 이름이 변경되었습니다.ProcessInfo
그리고 방법processInfo()
자산으로 대체되었습니다.processInfo
.
import Foundation
for (key, value) in ProcessInfo.processInfo.environment {
print("\(key): \(value)")
}
또는 Apple 개발자 포럼에 설명된 대로 Info.plist 파일을 사용하여 앱이 런타임에 필요로 하는 빌드 타임 환경 변수를 저장할 수 있습니다.
예를 들어 다음과 같은 MyConfig.xccconfig 파일이 있는 경우:
MY_SECRET_API_KEY = mysupersecretapikeyvaluehere
Info.plist에서 다음과 같은 항목을 추가해야 합니다.
<key>MySecretApiKey</key> <string>$(MY_SECRET_API_KEY)</string>
마지막으로 코드에서 변수 값을 다음과 같이 읽습니다.
guard let infoDictionary: [String: Any] = Bundle.main.infoDictionary else { return } guard let mySecretApiKey: String = infoDictionary["MySecretApiKey"] as? String else { return } print("Here's your api key value -> \(mySecretApiKey)")
증기 관련 용액:
Vapor가 프로젝트 템플릿으로 자동 생성하는 코드:
let variable = Environment.get("VARIABLE") ?? "or-the-dafault"
언급URL : https://stackoverflow.com/questions/36219597/referring-to-environment-variables-in-swift
'programing' 카테고리의 다른 글
Git는 Gtk-WARNING을 생성합니다: 디스플레이를 열 수 없습니다. (0) | 2023.08.24 |
---|---|
jQueryForce iframe에 대한 src 속성 설정 (0) | 2023.08.24 |
문자열은 어떻게 전달됩니까?NET? (0) | 2023.08.19 |
2015년 4월 20일(v3 API 없이) 이후 유튜브 채널 RSS 피드를 얻는 방법은 무엇입니까? (0) | 2023.08.19 |
float를 문자열로 변환하고 Java에서 float할 문자열 (0) | 2023.08.19 |