0
현재 건물 구성 (dev, production)을 기반으로 내 앱의 API 기본 경로를 정의하는 데 전역 변수를 사용하고 싶습니다. 이 현재의 접근 방식은 다음과 같습니다Swift에서 조건부 컴파일로 전역 변수 정의하기
1) 여기서
struct ApiSettings {
static let API_DEV_BASEPATH = "http://dev.myapp.com"
static let API_PRODUCTION_BASEPATH = "http://prod.myapp.com"
// Return the basepath for the current app runtime mode
static var API_BASEPATH:String {
var bPath: String!
#if DEBUG
bPath = API_DEV_BASEPATH
#else
bPath = API_PRODUCTION_BASEPATH
#endif
return bPath
}
}
2) (나는 너무 스테이징 환경을 정의)
#if DEBUG
let API_BASEPATH = "http://dev.app.com"
#elseif STAGING
let API_BASEPATH = "http://staging.app.com"
#elseif RELEASE
let API_BASEPATH = "http://production.app.com"
#endif
하지만 난 내 응용 프로그램에서 API_BASEPATH를 사용하려고 할 때 컴파일러가 "확인되지 않은 식별자"에 대해 불평합니다
나는 가장 우아한 해결책이 어떤 것인지 잘 모르겠습니다. PS. Swift3을 사용하고 있습니다.
모든 환경 의존 변수를'plist' 파일로 추출하는 것이 훨씬 더 나은 설계가 될 것입니다. – Alexander
.plist 파일에서 동일한 변수를 정의하고 코드를 사용하지 않고 빌드 구성 (디버깅, 준비, 릴리스)을 기반으로 추출하는 방법은 무엇입니까? 답변에 제공된 코드를 .plist로 추출한 상수로 확장하려고합니다. – Claus
예, 빌드 구성 당 하나의 plist를 만들고 어느 것이 각 패키지에 포함되는지 변경합니다. – Alexander