Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Refactoring
- MVVM
- swiftUI
- 애니메이션
- 스위프트
- 리펙터링
- uitableview
- Protocol
- map
- SWIFT
- uiscrollview
- RxCocoa
- clean architecture
- combine
- 리팩토링
- Clean Code
- HIG
- Observable
- 리펙토링
- Human interface guide
- tableView
- ios
- UITextView
- 클린 코드
- collectionview
- swift documentation
- Xcode
- ribs
- rxswift
- UICollectionView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] iOS 프로젝트 배포 환경별 build 세팅(info.plist 방법, 단일 타겟), debug / alpha / beta / release 본문
iOS 앱 배포와 출시
[iOS - swift] iOS 프로젝트 배포 환경별 build 세팅(info.plist 방법, 단일 타겟), debug / alpha / beta / release
jake-kim 2021. 1. 5. 21:09* xcconfig 사용 방법: ios-development.tistory.com/428
xcconfig방법은 .xcconfig파일을 별도로 swift문법과는 다르게 작성하는 번거로움이 있는 단점과 더욱 정밀하게 선언하여 관리할 수 있는 장점이 있지만, info.plist에 configuration을 가져와서 .swift파일에서 동작하도록 하는게 더욱 간편
코드에서 해당 Configuration(debug, alpha, beta, release) 확인 방법
- Build Settings에서 User-Defined에 해당 빌드 configuration을 문자열 key값 정의
- info.plist에 위에서 정의한 key값을 저장하도록 정의
- info.plist에 정의한 key값을 가지고 코드에서 접근
Build setting의 User-Defined에 configuration key값 정의
- Porject -> Build Settings에서 User-Defined setting으로 추가: configuration별로 세팅할 수 있는 옵션 생성
- 생성된 DEPLOY_PHASE에 alpha부터 release까지 기입
info.plist에 deploy정보를 알 수 있도록 세팅
- key(코드에서 이 값을 가지고 접근): "DeployPhase"
- value: $(DEPLOY_PHASE)
Deployment에 맞추어서 세팅할 수 있는 ServiceConfiguration 클래스 생성
class ServiceConfiguration {
enum DeployType: String {
case debug
case alpha
case beta
case release
}
private static let configKey = "DeployPhase"
static func getDeployPhase() -> DeployType {
let configValue = Bundle.main.object(forInfoDictionaryKey: configKey) as! String
guard let phase = DeployType(rawValue: configValue) else {
print("Something wrong in project configurations fot Deployment Phase! Check User Defined Settings.")
return DeployType.release
}
return phase
}
public static func serviceBaseURL() -> URL {
switch getDeployPhase() {
case .debug:
return URL(string: "https://debug.com")!
case .beta:
return URL(string: "https://beta.com")!
case .alpha:
return URL(string: "https://alpha.com")!
case .release:
return URL(string: "https://release.com")!
}
}
}
'iOS 앱 배포와 출시' 카테고리의 다른 글
[iOS - swift] 광고 Google Admob (애드몹) (0) | 2021.01.13 |
---|---|
[iOS Assets icon] Deploy phase, configuration 별 앱 아이콘 설정 방법, 앱 이미지, 앱 이름(Bundle display name) (0) | 2021.01.10 |
[ipa 파일을 디바이스에 설치] Apple Configurator2 (0) | 2020.12.17 |
[iOS - Crashlytics] Firebase Crashlytics 사용방법 (0) | 2020.12.15 |
[fastlane] 4. build_app (빌드, 배포, firebase에 배포, firebase_app_distribution, 빌드 번호 증가) (0) | 2020.12.12 |
Comments