(iOS) Multiple Configurations 로 Debug, Release 구분해 배포하기 — 1

Hanulyun
6 min readFeb 13, 2020
  • Xcode 11.3.1 기준

Multiple Configurations로 Fastlane으로 자동배포까지..
1 — Multiple Configurations 생성 및 빌드 환경 설정
2 — Fastlane으로 Debug, Release 구분해 자동 배포
- http://bitly.kr/Qs4pABe3

개인 개발 앱이 아니라 실제 사용자에게 배포하는 서비스 앱일 경우 내부 QA 또는 CD(Continuous Delivery) 환경을 구축하기 위해서 Configurations 를 나눠서 관리해야할 경우가 생겨요. 🧐

우선 1부 Multiple Configurations를 생성해 빌드 환경 설정까지를 알아볼거예요. 배포까지 생각해 앱 이름 및 앱 아이콘을 구분해 설정하려고 해요.

Step 1 : Multiple Configurations 생성

우선 Project Info 의 Configurations 부분에 + 버튼을 누른 후 Duplicate "Debug" Configurations 를 눌러서 아래와 같이 Staging 을 생성해요. 이름 및 개수는 개발자가 원하는대로 만들면 되겠죠?

  • Debug : 개발 Debug
  • Staging : Testflight 에 올라가는 Debug 환경
  • Release : Testflight 및 AppStore 에 올라가는 Production 환경

Step 2 : Build Settings 에서 User-Defined Setting 생성

앱 아이콘을 구분해 사용할 때 간편하게 쓰기 위해 Add User-Defined Setting 으로 아래와 같이 만들어요.

이름에서 눈치챘겠지만 Bundle Identifier 뒤에 붙는 부분이 될거예요.

Step 3 : Packaging Setting

Product Bundle Identifier 에서 Bundle Identifier 앞 부분을 입력 후 아까 Custom으로 생성했던 ${BUNDLE_ID_SUFFIX} 를 뒤에 붙여요. 그러면 자동으로 아래처럼 입력되는 것을 확인할 수 있어요.

그럼 이제 앱 이름을 변경해볼까요?

Product Name 만 수정하면 나머지는 자동으로 입력되더라구요.

Step 4 : Multiple App Icon 설정

icon을 검색해서 Asset Catalog App Icon Set Name 에 아까 설정했던 것처럼 차례대로 입력해요.

그 후 Assets 파일에 AppIcon 이름을 지정하고 해당하는 앱 아이콘을 넣으면 끝. 😄

Step 5 : Info.plist Setting

Fastlane 으로 배포 설정하기 전 마지막 단계인데, Bundle Identifier 값을 변경했으니 Info.plist 에서도 변경해줘야해요.

Bundle identifier부분에 Bundle ID 다음 ${BUNDLE_ID_SUFFIX} 를 붙여서 입력한다. com.blahblah${BUNDLE_ID_SUFFIX} 이런식으로. 참 쉽죠? 👏

그 후 Build 해보면 Debug와 Release가 따로 Build 되며, 아이콘 및 이름도 별도로 쓰는 것을 확인할 수 있어요. 앱 아이콘은 이미지가 없어서 적용하지 못했지만 분명히 될거예요. 😿

Conclusion

참고한 글이 몇 개 있는데 영문인데다가 생략된 이미지도 있어서 최대한 초보자도 알아볼 수 있게끔 이미지 위주로 작성했어요.

테스트 하면서 발견한 Xcode 버그인지, 아니면 원래 그런건지 몰라도 Info.plist에서 Bundle name을 지정해도 한두번 Build 하다보면 자동으로 Debug 또는 Release 의 ID로 자동 변경되더라구요. 저만 그런걸지도.. 😱

Testflight에 올리는데는 전혀 문제 없지만, 개발 테스트 할 때 따로 구분해서 보고싶은데 자꾸 하나의 앱으로 Build 되는 현상이.. 물론 테스트 환경은 Debug와 Release 따로 설치되긴 하는데 앱이 두개 설치 되는게 아니라 한개의 앱을 바꿔치기 해서 좀 거슬려요.

Achieve로 올릴 때 Edit Scheme 에서 Staging, Release 변경해가며 올리면 따로 올라가는걸 확인할 수 있어요.

Xcode에서 설정할건 끝났고, 조만간 Fastlane 자동 배포 테스트 후 또 공유할 예정이예요.

--

--

Hanulyun

iOS 주니어 개발자입니다. 개발하면서 막히는 부분을 해결한 후 기록으로 남깁니다. #Swift