내 글들이 빈 액자를 걸어 둔 채 배포되고 있었습니다
여러 글에서 개념 그림 자리에 실제 그림 대신 자리표시가 들어가 있었습니다. 영상이 없는 글에도 영상 섹션 틀이 남아 있었습니다. 한 커밋으로 다이어그램 17개를 넣고 빈 영상 섹션을 숨겼습니다. 그래도 한 편은 값싸게 채울 수 없었습니다.
여러 작은 앱을 운영하며 쌓은 캡처, 마스킹, 비주얼 QA, 에셋 제작 기록.
여러 글에서 개념 그림 자리에 실제 그림 대신 자리표시가 들어가 있었습니다. 영상이 없는 글에도 영상 섹션 틀이 남아 있었습니다. 한 커밋으로 다이어그램 17개를 넣고 빈 영상 섹션을 숨겼습니다. 그래도 한 편은 값싸게 채울 수 없었습니다.
앱이 쓰는 언어 코드와 Play 스토어가 쓰는 리스팅 코드는 다른 체계입니다. 그리고 앱은 지원하는데 스토어는 아예 지원하지 않는 언어가 있었습니다.
웹 현황판을 앱으로 이식하면서 수치는 바이트 단위로 맞췄습니다. 눈에 띈 문제는 숫자가 아니라 색이었고, 원본이 이미 피해뒀던 함정이었습니다.
viewBox가 있어도 래스터라이저는 SVG의 intrinsic size를 그대로 지키고 남는 캔버스를 패딩으로 채웁니다. 파일 크기도 해상도도 정상으로 보이므로, 한 번 눈으로 열어 보기 전에는 어떤 검사도 잡지 못했습니다.
모노크롬 레이어는 색이 아니라 알파만 쓰입니다. 전경에 배경 정사각형이 깔려 있으면 칸과 무늬가 사라진 통 사각형이 되고, 태그가 있다는 사실만으로는 아무것도 보장되지 않습니다. 17개 앱 전수 감사.
로그인이 필요한 화면을 독립 뷰로 뽑아 유닛 테스트에서 PNG로 렌더합니다. 완전히 투명한 화면을 렌더했더니 앞 테스트가 그린 그림이 그대로 나왔습니다. 3,676 픽셀이었습니다.
사용자가 '앱스토어 미리보기에 동영상이 안 보인다'고 알려 줬습니다. 자산은 완벽했습니다. 상태 완료, 오류 0건, MD5까지 원본과 동일했습니다. 문제는 커버리지였습니다.
스토어 스크린샷을 로케일별로 찍는데 아랍어 컷에서만 화면 제목이 잘렸습니다. 폭 문제로 보였고 근거도 있었습니다. 폭을 넓혀도 그대로였고, 변수를 하나만 바꿔 네 번 그려 보니 범인은 폰트도 굵기도 폭도 아닌 음수 letterSpacing이었습니다. 라틴 밀도를 위한 개선이 다른 문자 체계에서 글자를 지우고 있었습니다.
파랑 accent 앱인데 선택된 카테고리 칩이 라벤더로 찍혀 스토어에 나갔습니다. 색을 잘못 쓴 게 아니라, 아예 정의하지 않은 슬롯이 있었습니다.
requestAnimationFrame 은 탭 가시성에 묶여 있습니다. 스크린샷 도구는 탭을 활성화하지 않습니다. 그래서 캔버스 연출을 만들어놓고 그게 예쁜지 아닌지를 판정할 방법이 사라졌습니다.
스크린샷 캡션 A/B 실험 5건 중 1건이 2.3.7로 거부됐습니다. 그런데 Apple이 첨부한 문제 이미지는 제가 만든 캡션 컷이 아니라 몇 달째 라이브에 나가 있던 페이월 컷이었습니다. Apple은 '무료 체험'과 '할인'도 가격 언급으로 봅니다. 라이브 스크린샷 267장을 OCR로 훑어 8개 앱에서 같은 위반을 찾은 기록입니다.
16개 로케일 자동 캡처 파이프라인의 스크린샷에 페이월이 섞여 들어갔습니다. 로케일마다 오염되는 탭이 달라 재현 조건이 안 잡혔죠. 원인은 네 개가 겹쳐 있었는데, 가장 중요한 발견은 검증 쪽이었습니다 — 크기 게이트는 '화면이 있느냐'를 볼 뿐 '맞는 화면이냐'를 못 봅니다.
16개 로케일 스크린샷을 launch 인자로 자동 캡처하던 방식이 iOS 26에서 조용히 깨졌습니다. 명령은 성공하고 파일도 생기는데, 폴더명은 'ja'인데 안은 영어입니다. 몇 년 잘 돌던 파이프라인이 어느 날 틀린 결과를 내기 시작했고, 크기 게이트로는 검출조차 안 됩니다.
웹앱 홍보 숏폼은 라이브 페이지를 스크린샷해 만든다. 그 페이지가 404·500이어도 스크립트는 오류 화면을 그대로 영상에 구웠다. 해결은 캡처 전에 HTTP 200을 확인하는 것.
App Store Connect에서 스크린샷을 받도록 바꾼 뒤에도, 파이프라인은 한국어 로케일만 요청했다. 34개 앱은 이미 일본어 스토어 스크린샷을 올려둔 상태였고, 일본어 쇼츠는 한국어 화면 위에 일본어 자막만 얹고 있었다.
Playwright 의존성도, 수동 클릭도 없이. 올바른 뷰포트 폭의 헤드리스 Chrome CLI만으로 — 그리고 2단 결과 카드가 잘리지 않게 하는 그 폭 값 하나.
로컬 폴더에서 앱 스크린샷을 자동 선별했더니 다른 앱의 권한 팝업과 로그인 화면이 조용히 섞였다. 해결은 App Store Connect API로 스토어 정렬 스크린샷을 받는 것이었다.