문서 목차
이 페이지에서목차

런북 — App Store App Privacy (`asc-app-privacy`)

App Store Connect 의 App Privacy(수집하는 데이터 종류·용도·사용자 연결·추적 여부)를 입력하거나 고칠 때. 공개 API 키로는 할 수 없다.

등급 미검증 — 가드 없는 실행에서 원본 앱 답으로 한 번 채워졌다. 가드를 갖춘 첫 실행은 드라이런 뒤에 사람이 지켜보며 한다. 공통 절차는 cc-dev:grok-bot-handoff, 선언 원칙은 SKILL.md §5.

언제#

App Store Connect 의 App Privacy(수집하는 데이터 종류·용도·사용자 연결·추적 여부)를 입력하거나 고칠 때. 공개 API 키로는 할 수 없다.

전제#

  • 답표 — Claude 가 대상 바이너리에서 만든 표(SKILL.md §5). 데이터 종류마다 수집 여부·용도·사용자와의 연결·추적을 적고, 소유 조직이 확정했다(값 시트 store.appPrivacy 가 confirmed)
  • 개인정보처리방침 URL 은 API(appInfoLocalizations)로 먼저 넣었고, 그 방침이 답표의 수집 항목을 다룬다 — 이 런북에서 넣지 않는다
  • 칸 기준 점검(value-sheet.md §3)에 넣을 전제 칸: store.appPrivacy store.privacyPolicyUrl, 봇 절차면 botAccount apple.teamName 도

먼저 — CLI 경로 [문서]#

fastlane upload_app_privacy_details_to_app_store 는 Apple ID 로그인(2단계 인증)으로 답 JSON 을 올린다. Claude 가 확정 답표를 JSON 으로 옮기고, 사람이 자기 터미널에서 실행한다.

# 게시는 미루고(skip_publish) 화면에서 대조한 뒤 사람이 게시한다
fastlane run upload_app_privacy_details_to_app_store \
  username:"<apple-id>" app_identifier:"<ios.bundleIds.prod>" \
  json_path:"<답 JSON 경로>" skip_publish:true
  • JSON 의 형식은 이 액션이 대화형 질문으로 만드는 파일과 같다. 형식을 확신할 수 없으면 한 번 대화형으로 만들어(skip_upload: true, output_json_path) 대조한다.
  • 답 JSON 은 선언 답일 뿐 비밀값이 아니지만, 앱 저장소에 커밋할지는 저장소 공개 범위를 보고 정한다.
  • 올린 뒤 사람이 App Privacy 화면에서 답표와 대조하고 게시(Publish)한다.
  • 이 액션은 username·team_id 만 받고 App Store Connect API 키 옵션이 없다. 사람 없이 돌릴 때는 asc-create-app 「세션으로 무인 실행」의 세션을 같이 쓴다(미검증). 게시는 그때도 사람이 화면에서 한다.
  • CLI 를 쓸 수 없을 때만 아래 봇 절차로 간다.

봇 절차 — CLI 를 쓸 수 없을 때#

  • 봇 계정 역할: App Manager — Apple 역할 표의 "Respond to app privacy questions" 가 이 역할부터다. 이 역할은 심사 제출·가격 변경도 할 수 있으므로 그 동작이 Ask first 에 있는지 확인하고, 작업이 끝나면 역할을 회수한다(SKILL.md §3)

입력값#

답표 — 데이터 종류 → {수집 여부, 용도, 사용자 연결, 추적}. 이미 게시된 답을 고칠 때는 브리프의 고쳐 넣기 표(지금 답 → 바꿀 답)를 쓴다.

순서 — 브리프 §3 에 옮긴다#

  1. App Privacy 화면을 연다. 이미 답이 있으면 고쳐 넣기 표의 "지금 답" 과 같을 때만 바꾼다
  2. 데이터 수집 설문을 답표대로 입력한다. 데이터 종류마다 용도·연결·추적을 답한다
  3. 답표에 없는 데이터 종류나 문항이 나오면 멈춘다
  4. Publish: Ask first — 사람이 요약 화면을 보고 Allow once

멈추고 사람을 부를 때 — 브리프 §4 에 더한다#

  • 답표에 없는 데이터 종류·문항이 나온다
  • 이미 게시된 답이 있는데 고쳐 넣기 표에 없거나 "지금 답" 과 다르다
  • 개인정보처리방침 URL 이 비어 있다 — 봇이 넣지 않는다

기대 결과#

데이터 종류마다 한 행 — type declaration, store appstore, source brief.

검증#

  • 사람: App Privacy 요약 화면을 답표와 대조한다. 이 답은 공개 API 로 읽을 수 없다.
  • Claude: 답표, 앱과 SDK 의 PrivacyInfo.xcprivacy, 개인정보처리방침이 서로 맞는지 본다.

검색어를 입력하면 문서를 찾습니다.

↑ ↓ 이동 · Enter 열기Esc 닫기