yja
[IOS] xcconfig 설정을 통해 협업하기 본문
같은 프로젝트라도 다른 개발자라면 다른 development team과 bundle identifier로 앱을 빌드하게 된다.
따라서 다른 개발자와 협업할 때, 리뷰한 코드를 머지하고, 그 코드를 내가 받아서 사용할 때마다 나는 xcode에서 새로 development team과 bundle identifier를 설정해줘야 한다.
빌드할 때마다 이걸 매번 설정해줘야하니 번거로웠고, 설정하는 걸 까먹고 빌드 먼저 했다가 이로 인한 오류가 뜨는 일도 많았다.
또한 DEBUG나 RELEASE와 같은 빌드 구성(Build Configurations) 별로 설정을 분리하여 관리할 수 있다.
release할 때 build identifier를 다르게 정해줄 수 있다는 말이다.
예를 들면 개발자 A의 bundle id = `com.myapp.A`, 개발자 B의 bundle id = `com.myapp.B` 로 설정하고, release할 때에는 `com.myapp` 와 같이 공식 명칭을 사용할 수 있다.
이런 걸 관리해주는 파일이 .xcconfig이며 개발자마다 다른 값을 가져야하므로 .gitignore에 추가하여 관리한다.
.env 파일과 비슷한 역할이라 할 수 있다.
xcconfig ?
.xcconfig는 Xcode 프로젝트의 빌드 설정을 정의하고 관리하는 데 사용되는 텍스트 파일이다.
Scheme이나 Target마다 다른 API 키, Bundle ID, 서명 정보(Development team) 등을 유연하게 관리할 수 있다.
1. `.xcconfig` 파일 생성하기
- xcode > File > New > File from Template 선택

- Configuration Settings File 선택 후, `.xcconfig` 이름을 정하고 Target을 꼭 선택해준다.


- Develop.xcconfig 내용
나의 `DEVELOPMENT_TEAM` 과, 내가 사용하고 싶은 `PRODUCT_BUNDLE_IDENTIFIER`을 적는다.
DEVELOPMENT_TEAM = ABCDEFG123
PRODUCT_BUNDLE_IDENTIFIER = com.myAppName
2. `Develop.xcconfig`을 xcode와 연결하기
Project > Info > Configurations 에서 Debug에 내가 만든 `Develop.xcconfig`을 설정해준다.
release는 다르게 하고 싶다면 `Release.xcconfig`를 만들어서 똑같이 설정해준다.

3. `$(DEVELOPMENT_TEAM)` 을 입력하기
Target > Build Settings 에서 Bundle Identifier가 잘 들어갔는지 확인한다.
Project > Build Settings, Target > Build Settings 에서 Development Team의 초록색 부분에 고정 값이 들어있다면 삭제하고, `$(DEVELOPMENT_TEAM)` 을 입력한다.

제대로 연결이 되었다면, Target > Signing & Capabilities 에도 자동으로 이렇게 들어온다.

4. 앱 빌드해보기
기존에 빌드했었던 bundle id를 가진 빌드는 삭제한 후에 다시 빌드해보자.
// 기존 앱 삭제하기
xcrun simctl uninstall booted com.myPreviousApp
// 다시 빌드
npm run ios
빌드가 성공하면, 내가 Develop.xcconfig에 설정했던 bundle id 로 앱이 설치된 것을 확인할 수 있다.

참고:
https://medium.com/better-programming/working-with-xcode-configuration-files-398cfbe02b64
'개발 + > 개발 도구와 환경' 카테고리의 다른 글
| Redux 상태 관리 라이브러리 (1) | 2025.06.01 |
|---|---|
| 여러가지 패키지 매니저 알아보기 (npm, pnpm, yarn) (2) | 2025.05.29 |