diff --git a/internal/download/service.go b/internal/download/service.go index 1ceced9..eecfa7b 100644 --- a/internal/download/service.go +++ b/internal/download/service.go @@ -151,12 +151,12 @@ func (s *Service) Upload(filename string, body io.Reader, baseURL string) (*Info } } - fileHash := hashGameExeFromZip(finalPath) + // game.zip 전체의 해시를 사용하여 업데이트 감지. + // A301.exe만 해시하면 Mono 빌드에서 exe가 안 바뀌어도 + // Data 폴더의 스크립트/에셋 변경을 감지하지 못함. + fileHash := hashFileToHex(finalPath) if fileHash == "" { - if removeErr := os.Remove(finalPath); removeErr != nil { - log.Printf("WARNING: failed to remove file %s: %v", finalPath, removeErr) - } - return nil, fmt.Errorf("zip 파일에 %s이(가) 포함되어 있지 않습니다", "A301.exe") + return nil, fmt.Errorf("파일 해시 계산에 실패했습니다") } info, err := s.repo.GetLatest()