오늘 학습 키워드

Git, Github

오늘 학습 한 내용을 나만의 언어로 정리하기

Git

  • Git = VCS(Version Control System) : 버전 관리 도구

VCS로 Github, Git bash, TortoiseSVN, Git Lab, Unity DevOps 등등 있음

VSC를 사용하는 이유

일일히 수정사항을 공유하기 힘들다 보니 나왔음
구글 드라이브와 유사한 시스템
공유가 가능한 원격저장소

Github 사용법

Repository 만들기

  1. Repository를 만듬
  2. Publish를 함 (구름에 올린다는 느낌으로 위로 올라가있는 아이콘)

사람 추가하기

  1. Settings
  2. Collaborators
  3. Add people

수정사항 서버에 반영하기

  1. 수정을 함
  2. commit을 함
  3. push를 함
  • 작업을 나누어 commit 할 수 있음.

수정사항 가져오기

  • pull을 누르면 됨

Checkout

  • 특정 커밋을 확인

Branch

  • 새 타임라인을 만드는 느낌
  • Checkout과 같이 쓰면 특정 커밋에서 분기할 수 있음

Cherry-pick

  • 특정 커밋을 다른데에 붙일 수 있음

충돌 해결하기

<<<<<< HEAD
내 수정사항
=================
다른사람 수정사항 (서버에 올라간 내용)
>>>>>> 어쩌구저쩌구
  • 충돌난 사람이랑 얘기해서 수정 사항을 지우면 됨
  • 해결이 다 되면 꺽쇠부분도 지우면 됨

커밋을 잘못 했을때

  • 히스토리에서 우클릭 후 Undo 하면 커밋 취소 가능

  • 이거는 원격 저장소에 올리기 전에만 가능함

  • 원격 저장소에 올라간 특정 상태로 돌아가고 싶으면 Revert를 해야함

  • 원격 저장소에 올린 상태로 만들기 위해 기존에 있는 내용을 반대로 뒤집어서 커밋하는거임

이미 올라간 커밋의 이름을 바꾸고 싶을 때

  • Amend Commit 하기

학습하며 겪었던 문제점 & 에러

  • 문제&에러에 대한 정의

사전캠프 때 만들어놓은 게임을 그대로 썼는데, 그 때도 나타난 오류가 여전히 남아있어서 왜인지 찾아봄

오류 내용 :

Win32Exception: ApplicationName='게임경로\Temp\PlayServicesResolverGradle\gradlew.bat', CommandLine='--no-daemon -b "게임경로\Temp\PlayServicesResolverGradle\PlayServicesResolver.scripts.download_artifacts.gradle" "-PANDROID_HOME=C:/Program Files/Unity/Hub/Editor/2022.3.17f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK" "-PTARGET_DIR=게임경로\Assets\Plugins\Android" "-PMAVEN_REPOS=https://maven.google.com/" "-PPACKAGES_TO_COPY=com.unity3d.ads:unity-ads:[4.12.0,4.13[" "-PUSE_JETIFIER=0" "-PDATA_BINDING_VERSION=7.1.2"', CurrentDirectory='게임경로\Temp\PlayServicesResolverGradle', Native error= 지정된 파일을 찾을 수 없습니다.
  • 내가 한 시도

chatgpt에게 물어봄..

이 오류 메시지는 Unity에서 Android 빌드 과정 중 Play Services Resolver(구 Google External Dependency Manager, 즉 EDM4U)가 사용하는 Gradle Wrapper 실행 도중, 해당 .bat 파일(gradlew.bat)을 찾지 못해서 발생한 것입니다.

📌 요약 오류 내용:

Win32Exception: ApplicationName='...gradlew.bat' ... 지정된 파일을 찾을 수 없습니다.

즉, 게임경로\Temp\PlayServicesResolverGradle\gradlew.bat 파일이 존재하지 않아서 실행할 수 없다는 의미입니다.


✅ 원인 및 해결 방법

1. PlayServicesResolver 관련 임시 파일이 제대로 생성되지 않았거나 삭제됨

  • Unity가 Gradle 관련 스크립트를 실행하기 위해 임시 폴더(Temp/PlayServicesResolverGradle)에 gradlew.bat 파일을 생성하려 했는데 실패했거나, 백신/보안 프로그램에 의해 삭제되었을 수 있음.

🔧 해결 방법:

  • Unity를 완전히 닫고, 아래 폴더들을 삭제 후 다시 실행:

    • Temp/

    • Library/

    • obj/

  • 그런 다음 Unity 에디터 재시작 → Android 빌드 시도


2. Google External Dependency Manager(EDM4U) 플러그인이 손상되었거나 누락됨

  • 광고 SDK (예: Unity Ads, AdMob 등)를 사용할 때 EDM4U가 외부 라이브러리를 다운로드하는 데 쓰이는데, EDM4U가 비정상일 경우 Gradle wrapper가 설치되지 않음.

🔧 해결 방법:

  • Unity에서 메뉴 바 → Assets > External Dependency Manager > Android Resolver > Force Resolve 실행

  • 그래도 해결되지 않으면 최신 EDM4U 패키지를 재설치:


3. 파일 경로에 한글/공백이 포함되었거나, 너무 길어서 생긴 문제

  • Windows는 특정한 경로 길이 제한(260자 기본)이 있음. 또한 공백/한글이 포함되면 일부 외부 도구(예: Gradle) 실행에 문제 생길 수 있음.

🔧 해결 방법:

  • 프로젝트 경로를 짧고 단순한 폴더로 옮겨서 다시 열기

4. Unity Android Build Tools 설치가 불완전함

  • SDK, NDK, JDK 경로가 잘못되었거나 빌드 도구가 누락되었을 수 있음

🔧 확인 방법:

  • Unity → Edit > Preferences > External Tools 에서 아래 경로 확인:

    • SDK, NDK, JDK가 전부 Unity 설치 경로/PlaybackEngines/AndroidPlayer로 자동 설정되어 있어야 함
  • Android Build Support가 설치되어 있는지 Unity Hub에서 확인


✅ 결론

이 오류는 대부분 다음 중 하나로 해결됩니다:

  1. Temp/Library 삭제 후 재빌드

  2. EDM4U 재설치 및 강제 Resolve

  3. 프로젝트 경로 단순화

  4. Android Build Tools 상태 확인

  • 해결 방법

Temp, Library 삭제 했더니 해결됨

  • 새롭게 알게 된 점

뭔가 코드 내의 오류가 아니고 종속성 등등의 문제가 있다면 Library 한번 지웠다가 재설치 해야겠다.

이 외에 오늘 배운 것

다른 사람이 만든 이펙트, 쉐이더를 가져다가 사용하는 방법

참고자료

내일 학습 할 것은 무엇인지