← 노하우 목록

FROM THE WORKSHOP / 노하우

ASC UI '해결되지 않은 문제' ≠ 실제 심사 거절 — API로 정확한 버전 상태 확인

ASC UI의 UNRESOLVED_ISSUES 배너는 reviewSubmission 컨테이너 상태이고, 실제 심사 상태는 appStoreVersions.appVersionState가 truth. Playwright 로그인 없이 JWT API 키로 정확한 상태 확인 가능. 유령 제출(items 0개) 다수 생성돼도 실제 심사에는 영향 없음.

강대종 · 마이너스베타스튜디오

증상

ASC 웹 UI에서 iOS 제출 페이지에 “해결되지 않은 문제(Unresolved Issues)” 배너가 뜨고 “앱 심사에 다시 제출” 버튼이 보임. 개발자가 이미 심사 제출을 눌렀는데 실패한 건지 불명확.

원인

ASC UI가 보여주는 reviewSubmission 의 state(UNRESOLVED_ISSUES)와 실제 앱 버전의 심사 상태(appStoreVersions.appVersionState)는 별개 임.

  • reviewSubmission.state = UNRESOLVED_ISSUES → 제출 컨테이너 자체의 이전 상태 (이미 처리 완료된 케이스도 이 라벨이 남을 수 있음)
  • appStoreVersions.appVersionState = WAITING_FOR_REVIEW → 실제 버전이 Apple 검토 큐에 들어간 상태

UI만 보면 “아직 제출 안 됨”처럼 보이지만, 실제로는 이미 Apple 심사 큐에 들어가 있는 경우가 있음.

해결 — ASC API로 정확한 상태 확인

Playwright 로그인 없이 JWT API 키로 확인 가능. Mac에 이미 키 있음:

  • ~/.claude/secrets/asc-api-key.json (key_id + issuer_id)
  • ~/.claude/secrets/AuthKey_RU7URQ5453.p8
# ~/claude-skills/submit-app/asc_client.py 활용
cd ~/claude-skills/submit-app

python3 -c "
import sys; sys.path.insert(0, '.')
from asc_client import make_jwt
import requests, json

token = make_jwt()
headers = {'Authorization': f'Bearer {token}', 'Content-Type': 'application/json'}

# 1. 앱 ID 조회
resp = requests.get('https://api.appstoreconnect.apple.com/v1/apps?filter[bundleId]=com.daejongkang.wordyo', headers=headers)
app_id = resp.json()['data'][0]['id']

# 2. 최신 버전 상태 확인 (이게 실제 심사 상태의 truth)
resp = requests.get(f'https://api.appstoreconnect.apple.com/v1/apps/{app_id}/appStoreVersions?filter[platform]=IOS&limit=3', headers=headers)
for v in resp.json()['data']:
    print(v['attributes']['versionString'], v['attributes']['appVersionState'])
"

appVersionState = WAITING_FOR_REVIEW → 정상, Apple 검토 큐에 있음. 추가 조치 불필요.

오늘 발생 케이스 (단어요 1.0.1)

  • 사용자가 ASC UI에서 수동으로 심사 제출 → UI에 “해결되지 않은 문제” 표시됨
  • reviewSubmission 목록 조회: UNRESOLVED_ISSUES 1개 + READY_FOR_REVIEW(items 0개) 유령 4개 존재
  • appStoreVersions/1e1e7ba6 조회: appVersionState = WAITING_FOR_REVIEW ✓
  • reviewSubmission state: COMPLETE (처리 완료)
  • 결론: 이미 Apple 검토 큐 진입. 아무것도 할 필요 없었음.

유령 제출(READY_FOR_REVIEW + items 0개) 정리

API 오류로 제출이 여러 번 실패하면 ASC가 빈 reviewSubmission을 자동 생성함. 이것들은 버전 attach가 안 돼 있어서 실제 심사에 영향 없음. 방치해도 무방. 필요 시 PATCH /v1/reviewSubmissions/{id} canceled: true 로 정리 가능 (단, UNRESOLVED_ISSUES 상태는 취소 불가).

참고

  • apple-reject-resubmit-via-cancel.md — 진짜 거절된 경우 cancel 우회 재제출 방법
  • ~/claude-skills/submit-app/asc_client.py — JWT 인증 공통 클라이언트
기록은 다음 시작이 됩니다.노하우 더 읽기 ↗이 작업장의 제품 ↗
작업장 전체 페이지 목적에 맞는 페이지 찾기