yja

[IOS] xcconfig 설정을 통해 협업하기 본문

개발 +/개발 도구와 환경

[IOS] xcconfig 설정을 통해 협업하기

유진진 2025. 12. 3. 01:49

같은 프로젝트라도 다른 개발자라면 다른 development team과 bundle identifier로 앱을 빌드하게 된다. 

따라서 다른 개발자와 협업할 때, 리뷰한 코드를 머지하고, 그 코드를 내가 받아서 사용할 때마다 나는 xcode에서 새로 development team과 bundle identifier를 설정해줘야 한다. 

빌드할 때마다 이걸 매번 설정해줘야하니 번거로웠고, 설정하는 걸 까먹고 빌드 먼저 했다가 이로 인한 오류가 뜨는 일도 많았다. 

 

또한 DEBUGRELEASE와 같은 빌드 구성(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

https://bulmang-ios.tistory.com/109