패키지 목록에 개발용 파일이 남아 있는 화면
패키지 목록에 개발용 파일이 남아 있는 화면

사건 자체는 한 줄입니다

0.2.0 패키지에 개발용 테스트 파일 하나가 들어가 있었습니다. 검증기가 그걸 발견하고 패키지를 거부했습니다.

이 사건은 Ren'Py 프로젝트에서 나왔지만 Unity에서도 자리만 바뀝니다. StreamingAssets에 넣어 둔 테스트 데이터, Resources 아래 남은 더미 프리팹, 에디터 전용 폴더 규칙을 안 지킨 스크립트가 같은 경로로 빌드에 들어갑니다.

Forbidden development entries found:
  after_hours_blue_harbor-0.2.0-pc/game/testcases_l10n.rpyc

손으로 지우면 규칙이 그대로 남습니다

파일을 지우고 다시 압축하면 그 빌드는 통과합니다. 다음 빌드도 같은 파일을 다시 넣습니다. 문제는 파일이 아니라 그 파일을 포함시킨 규칙이라, 고칠 자리는 빌드 단계입니다.

  1. 테스트 데이터를 Assets/Editor 아래나 에디터 전용 어셈블리로 옮깁니다.
  2. 런타임에서 읽어야 하는 픽스처는 테스트 전용 씬이나 별도 폴더로 분리하고 빌드 대상에서 뺍니다.
  3. 빌드 전 콜백에서 금지 목록을 검사하고, 걸리면 빌드를 세웁니다.
class BlockTestAssets : IPreprocessBuildWithReport
{
    public int callbackOrder => 0;

    public void OnPreprocessBuild(BuildReport report)
    {
        var strays = AssetDatabase.FindAssets("testcases", new[] { "Assets" });
        if (strays.Length > 0)
            throw new BuildFailedException($"test asset would ship: {strays.Length} found");
    }
}

검사를 빌드 뒤에 두면 보고만 됩니다

빌드 후 콜백은 산출물을 볼 수 있지만 이미 만들어진 것을 고치기에는 늦습니다. 게이트는 컴파일 전에 있어야 막습니다.

같은 빌드 명령을 두 번 돌려 두 번 다 금지 파일이 없으면 규칙이 고쳐진 겁니다. 한 번만 통과했다면 사람이 손으로 지운 결과일 수 있으니 깨끗한 클론에서 다시 확인합니다.

검증 범위

공식 문서 대조

검증일

Unity 공식 문서와 본문의 코드·절차를 대조해 공개 준비 상태로 전환했습니다. 별도 Unity 프로젝트나 실기기에서 직접 재현한 결과는 아니며, 특정 버전·기기 문의가 들어오면 해당 환경에서 후속 확인합니다.