Live, QA앱에 다른 아이콘 사용하기 (분리된 앱 사용하기)

2018-10-31

앱 개발을 하다보면 Live앱과 Beta앱 혹은 Live앱과 QA앱으로 나눠서 관리하고 싶을 때가 있습니다. 이 포스트에서는 Live앱과 QA앱을 나누는 방법에 대해 알아보겠습니다.

Live앱과 QA앱은 어떤 차이가 있을까요? 이 차이를 살펴보는 것으로부터 구현 전략을 도출해 낼 수 있습니다.

Live앱과 QA앱의 차이

  1. 다른 앱 : 두 앱은 하나의 폰에 다른 앱으로 설치돼야 합니다. -> 즉, 다른 App_ID를 가져야 합니다.
  2. 앱 이름 : Live앱의 이름은 AppName, QA앱의 이름은 AppName QA 형태를 갖습니다.
  3. 앱 아이콘 : 두 앱은 다른 아이콘을 보여줘야 합니다.

구현 방법

위 조건을 만족시키기 위해 QA Configuration을 하나 생성하고 User-Defined Value를 하나 만들어 거기에 설정을 넣고 이 설정을 활용해 1.앱 아이디, 2.앱 이름, 3.앱 아이콘이 Live, QA 설정에 따라 동적으로 변경되게 설정합니다.

그럼 하나하나 설정해 보도록 하겠습니다. 설정 방법은 다음과 같습니다.

Project -> Info 탭 -> Configuration 섹션에서 “+” 버튼을 선택해 기존의 Configuration을 하나 복사합니다.

그리고 이름을 QA로 변경합니다.

이제 Build Settings에서 “+” 버튼을 클릭해 “Add User-Defined Setting” 메뉴를 선택해 저희가 Live앱 / QA앱의 구분에 사용할 변수 를 하나 추가합니다.

변수 이름을 BUNDLE_ID_SUFFIX 라고 짓고 QA configuration에만 .qa라는 접미어를 할당합니다.

아이콘 파일의 추가를 위해 Assets.xcassets파일에서 하단의 “+” 버튼을 눌러 AppIcon파일 타입을 추가하고 이름을 AppIcon.qa라 짓습니다. 이 아이콘은 QA 버전 아이콘으로 사용할 것입니다.

이제 필요한 준비는 끝났습니다. 준비한 변수 이용해 Live <-> QA 버전간 1. 다른 앱 이름 사용, 2. 앱 분리, 3. 다른 앱 아이콘 사용을 설정할 수 있습니다.

Targets에서 검색창에 Product로 검색합니다. 검색하면 Product Name 섹션을 볼 수 있는데 이것을 선택해 QA Configuration의 Product Name을 기본 $(TARGET_NAME)에서 $(TARGET_NAME) QA로 변경합니다. 그러면 QA Configuration에서는 기본 앱 이름에 QA를 붙여 앱 이름으로 사용하게 됩니다.

이제 검색창에 bundle이라고 검색하면 번들 관련 설정 정보들이 나옵니다.

앱 ID를 분리시키기 위해 Product Bundle Identifier 섹션을 선택하고 기본값에 저희가 설정한 변수인 ${BUNDLE_ID_SUFFIX}를 붙입니다. 눈치가 빠르신 분은 감을 잡으셨을 것입니다. 그렇습니다. 저희는 qa configuration에 이 BUNDLE_ID_SUFFIX값을 .qa로 할당했기 때문에 ${BUNDLE_ID_SUFFIX}를 붙인 곳에는 XXX.qa형태로 이름들이 사용 됩니다.

여기 Bundle ID의 경우에는 기본이름 + .qa가 ID로 사용되기 때문에 QA Configuration은 Debug나 Release Configuration을 사용해 빌드한 것과는 다른 Bundle ID를 갖게 됩니다.

Asset Catalog App Icon Set Name에는 AppIcon${BUNDLE_ID_SUFFIX}로 지정합니다. 그러면 .qa configuration의 경우 AppIcon.qa를 앱 아이콘 파일이름으로 사용합니다. 이것은 저희가 앞에서 이런 형태로 아이콘을 지정했습니다.

이제 필요한 모든 설정을 끝마쳤습니다. qa설정 혹은 그외 설정으로 빌드하는 것에 따라서 각각 qa버전, 혹은 Debug/Live 버전으로 빌드할 수 있습니다. Xcode에서 앱 실행시 사용할 configuration 설정은 Edit Scheme 메뉴를 통해 변경할 수 있습니다.

Run 실행시 설정을 QA로 하고 실행하면 QA앱이 Release로 설정하면 Live앱으로 빌드할 수 있습니다. 😎

다음은 앞의 설정대로 빌드해 앱을 설치한 결과 입니다. Live앱과 QA앱이 분리돼 설치 됐습니다.

이상 Live, QA앱을 분리된 앱📱으로 사용하기에 대해 알아보았습니다.👍 다음에 또 만나요~ 😁