문제 제기
토스의 앱들
테스트 케이스별 앱 버전이 너무 다양함
추가적인 앱을 만들때 (ex. PRO 버전, LITE 버전 / 개발서버버전, 실서버버전)
xcconfig == 프로젝트 설정파일
설정 자체가 상속이 된다.
반영 방식 파악하기
Project → Levels로 띄워놓기(맨 위 분홍색 박스)
왼쪽에 있는 설정일 수록 힘이 세고, 오른쪽으로 갈 수록 힘이 약하다.(영향력 수준)
iOS Default(초록색 박스): 시스템 기본 설정
Config.File(파란색 박스): .xcconfig 파일의 설정
프로젝트명(노란색박스): .xcodeproj 안에 하드코딩 되어 있는 설정
Resolved(빨간색박스): 모든 설정들의 최종결과
config 파일
앞에 prefix로 붙는 것은 다음과 같이 매칭된다.
Project에 대한 xcconfig여서 앞에 Project prefix가 붙음
Target에 있는 설정들은 target의 이름대로 prefix가 붙음
.xcconfig 내부에는 Key-Value와 그에 대한 주석으로 이루어져 있다.
맨위에 #include
를 사용해서 config를 include 가능(상속 가능한 계층 구조!)
Cocoapods을 쓰면 Cocoapods에 대한 것은 알아서 해준다.
New File → Configuration Settings File 생성 ( 우측에 나온 경우의 수만큼 )
Toss에서는 Base에 해당하는 Configuration 파일만 요만큼
Base를 바탕으로 실서버, 알파서버, 개발서버, 스테이징서버에 대한 config들이 쭉 만들어짐
오른쪽의 Config들은 전부 base를 상속해서 사용함