TL;DR. App Store Connect에는 “이전 버전으로 되돌리기” 버튼이 없습니다. 버전 번호는 앞으로만 나아가며, 예전 빌드를 다시 현재 리스팅으로 만들 수는 없습니다. 이에 가장 가까운 기능인 가격 및 사용 가능 여부 하단의 호환 가능한 최근 버전 설정은, 예전 iOS를 쓰는 사용자가 설치할 수 있는 예전 빌드를 제어할 뿐이며 — 신규 사용자나 이미 업데이트한 사용자에게 보이는 화면을 되돌리지는 않습니다. 잘못된 업데이트가 배포됐다면, 실제로 쓸 수 있는 수단은 진행 중인 단계적 출시를 일시정지하는 것과, 필요하다면 빠른 심사를 요청하면서 수정된 버전을 제출하는 것입니다.

잘못된 업데이트가 배포되고 크래시 리포트가 쌓이기 시작하면, 반사적으로 롤백 버튼을 찾게 됩니다. 하지만 App Store Connect에는 그런 버튼이 없습니다. 이 사실을 미리 알아 두면, 이미 사용자가 영향을 받고 있는 와중에 가격 및 사용 가능 여부 화면을 10분씩 뒤지며 시간을 낭비하지 않을 수 있습니다.

App Store에서 이전 버전으로 롤백할 수 있나요?

아니요. Apple의 App Store Connect 도움말도 명확히 밝히고 있습니다. 공개된 버전에 법적 또는 사용성 문제가 있다면 “앱 업데이트를 제출해야 합니다” — 예전 빌드를 다시 현재 리스팅으로 게시하는 방법은 존재하지 않습니다. 버전 번호는 항상 증가해야 하며, 이전 빌드를 선택해 다시 라이브 상태로 만들 수는 없습니다.

즉 잘못된 업데이트에 대한 해결책은 항상 번호를 뒤로 되돌리는 것이 아니라, 더 높은 번호의 새 버전을 내는 것입니다. 다만 새 버전을 만들 때는 기존 메타데이터(키워드, 부제목, 설명)가 시작점으로 그대로 이어받아지므로, 리스팅을 처음부터 다시 만들 필요는 없습니다 — 앞으로 나아가야 하는 것은 빌드 그 자체뿐입니다.

호환 가능한 최근 버전 설정은 실제로 무엇을 하나요?

이것은 롤백이 아닙니다. 가격 및 사용 가능 여부 페이지 하단에 있는 호환 가능한 최근 버전 설정은, 현재 릴리스를 실행하기엔 너무 오래된 iOS를 쓰는 사용자에게 승인된 예전 빌드 중 어떤 것을 계속 설치 가능하게 둘지를 제어할 뿐입니다 — 최신 iOS 사용자나 이미 업데이트한 사용자에게 보이는 화면은 바뀌지 않습니다.

구체적으로는: 가격 및 사용 가능 여부 → 호환 가능한 최근 버전 설정 → 버전 선택 순서로 들어가서, 특정 예전 빌드의 선택을 해제하면 그 빌드는 더 이상 전혀 제공되지 않고, 하나를 남겨 두면 여전히 예전 iOS를 쓰는 사용자는 앱을 설치할 수 없는 대신 그 호환 빌드를 받게 됩니다. 이 목록에는 실제로 App Store에 제출된 적 있는 버전만 나타납니다. 필요한 역할은 계정 소유자, 관리자, 또는 앱 관리자입니다 — 마케팅은 이 페이지에 접근할 수 없으며, 이는 키워드 필드나 부제목과 같은 제한입니다(자세한 내용은 App Store Connect 역할 가이드 참고).

이 설정이 하지 않는 일이 두 가지 있습니다. 이미 현재 버전이 설치된 기기에 업데이트나 다운그레이드를 강제하지 않습니다. 그리고 최신 iOS를 쓰는 신규 사용자가 받는 내용에도 영향을 주지 않습니다 — 이들은 언제나 최신 라이브 버전을 받습니다.

잘못된 업데이트가 배포됐을 때 실제로 해야 할 일

  1. 단계적 출시가 아직 진행 중인 상태로 배포했다면, 먼저 그것부터 일시정지하세요. 단계적 출시는 첫날 사용자의 1%에게 배포되고, 고정된 7일 일정에 따라 비율이 올라갑니다. 일시정지하면 수정을 준비하는 동안 비율이 더 이상 올라가지 않게 막을 수 있습니다. 다만 이미 업데이트를 받은 사용자에게는 그것을 되돌리지 못합니다. 비율 일정과 누적 30일 일시정지 상한 등 자세한 동작 방식은 단계적 출시 가이드에 정리되어 있습니다.
  2. 수정된 빌드를 새 버전으로 준비하세요. 버전 번호를 올리고, 문제를 고친 다음 다시 제출합니다. 키워드 필드, 부제목, 설명은 자동으로 이어받아지므로, 리스팅을 처음부터 다시 만드는 게 아니라 바이너리만 앞으로 나아가면 됩니다.
  3. 버그가 치명적이라면 빠른 심사를 요청하세요. Apple의 App Review 페이지에서는 치명적인 버그 수정 같은 부득이한 사정이 있을 때 빠른 심사를 요청할 수 있으며, 이때는 현재 공개된 버전에서 문제를 재현하는 절차를 함께 제출합니다. 보장된 것은 아니며 — Apple이 승인하거나 거절합니다 — 하지만 실행 시 크래시 같은 버그라면 일반 심사 대기열로 가장 빠르게 돌아가는 방법입니다. 다만 이는 심사 속도만 앞당길 뿐, 승인된 이후 수정본이 실제로 언제 배포되는지는 여전히 릴리스 옵션(자동 출시, 수동 출시, 예약 출시)에 달려 있다는 점을 기억하세요.
  4. 두 방법 모두로도 감당이 안 될 만큼 심각하다면, 앱 판매를 중단하세요. 이렇게 하면 재제출할 준비가 될 때까지 신규 다운로드를 완전히 막을 수 있습니다 — 다만 정상적인 신규 설치까지 함께 막히므로, 가장 먼저 취할 조치가 아니라 최후의 수단입니다.

이 어느 것도 키워드 필드, 부제목, 순위에는 손대지 않습니다 — 잘못된 빌드와 잘못된 리스팅은 서로 다른 문제이고 해결책도 각각 다르며, 둘을 혼동하면 인시던트 대응 중에는 없는 시간을 낭비하게 됩니다.

관련 글