Play 스토어 비공개 테스트까지 — Unity Android AAB, 서명 키, 버전 코드, 디버그 기호
Unity 6 게임을 Play 스토어 비공개 테스트에 올리기까지의 기록. 빌드 설정을 강제하는 에디터 스크립트, 저장소 밖 서명 키와 환경변수, 한 번 쓰면 다시 못 쓰는 버전 코드, 네이티브 디버그 기호, -version 인자 충돌, 광고 ID 선언과 개인정보처리방침, 결과 이미지 공유까지 정리했다. 연재 마지막 글이다.
애드소프트 기술블로그
애드소프트 박재호입니다. IIS·ASP.NET·Docker·메일서버를 직접 운영하며 겪은 문제와 해결 과정을 기록합니다.
Unity 6 게임을 Play 스토어 비공개 테스트에 올리기까지의 기록. 빌드 설정을 강제하는 에디터 스크립트, 저장소 밖 서명 키와 환경변수, 한 번 쓰면 다시 못 쓰는 버전 코드, 네이티브 디버그 기호, -version 인자 충돌, 광고 ID 선언과 개인정보처리방침, 결과 이미지 공유까지 정리했다. 연재 마지막 글이다.
게임 15개를 만들며 코드보다 규칙을 더 많이 고쳤다. 앞사람을 따라 할 수 없게, 비밀은 방장 폰만 알게, 판이 끝나지 않는 규칙은 뒤집고, 모든 게임이 1등부터 꼴등까지 한 줄을 내게 한 과정을 정리했다.
서버 없이 같은 Wi-Fi의 폰끼리 게임 15개를 돌리면서 정한 규칙들. 판정은 방장 폰만 하는 호스트 권위, 게임마다 같은 모양의 메시지 4종과 규약 버전 1→12, 지난 턴 입력을 버리는 turnSeq, 늦게 들어온 폰의 elapsed 따라잡기, 통신 지연을 봐주는 유예 시간, 토큰으로 같은 자리에 돌아오는 재접속까지.
외부 서버 없이 같은 Wi-Fi나 방장 폰 핫스팟에서 여러 폰이 한 방에 모이게 만든 과정. 방장 폰의 TCP 47801 서버와 UDP 47800 비콘, 비콘이 안 올 때의 서브넷 스캔, IP 대신 「방 번호」, 그리고 PC에서 시험할 때 막힌 방화벽까지 정리했다.
사다리에 한 명만 걸리던 「오늘 누가 쏘냐?」를 등수대로 커피값을 나눠 내는 방식으로 바꾼 기록. 상위 2명 면제·하위 최대 4명 등차 분담·100원 단위 내림과 꼴등 몫의 나머지를 코드와 손계산으로 확인하고, 게임 15개의 등수 기준과 결과 화면을 정리했다.
실기기 없이 테스트하려고 Unity WebGL 빌드를 개발 PC의 IIS에 올렸다. 브라우저에서는 한글이 전부 빈칸이었고, 폰 LTE에서는 40MB wasm을 받다 끊겼다. 한글 폰트 내장과 Brotli 압축 해제 폴백, 스트리핑으로 해결한 과정과 WebGL의 한계를 정리했다.
32x32 픽셀 캐릭터 8종, 효과음 6종, 배경음악, 한글 폰트 서브셋, 앱 아이콘과 스토어 그래픽까지 「오늘 누가 쏘냐?」의 에셋은 전부 직접 작성한 Python 스크립트로 만든다. 스크립트 코드와 Unity 쪽 임포트 설정, 이 방식의 장단점을 정리했다.
프리팹도 씬 편집도 없이 화면 20여 개를 코드로만 만든 구조. 진입점 Bootstrap, UI 헬퍼 UIFactory, 화면 전환 ScreenBase, 그리고 갤럭시 폴드에서 화면 아래가 잘린 문제를 CanvasScaler 한 줄로 고친 이야기.
커피 내기용 파티게임 「오늘 누가 쏘냐?」를 Unity 6로 만든 기록. 사다리 하나로 시작해 게임 15개, 서버 없는 여러 폰 대전, Play 스토어 비공개 테스트까지 온 과정을 연재 첫 글로 정리했다.
블로그에 방문 통계를 직접 만들었다. IP와 User-Agent는 저장하지 않고 무작위 ID 쿠키 하나로 방문자를 구분한다. 요청 처리 중에는 DB를 건드리지 않도록 메모리 큐에 쌓았다가 5초마다 일괄 저장한다. 수집 대상 거르기, 유입 경로 분류까지 설계를 정리했다.