목록전체 글 (67)
안녕하세요 이번엔 안드로이드 빌드 결과물로 나온 APK의 AndroidManifest를 디컴파일(Decompile)해서 해당 내용을 들여다보고, 분석하는 자동화 배치 파일을 만들어보겠습니다. 규모가 큰 하나의 프로젝트를 여러 플랫폼으로 빌드하다 보면, 플랫폼에 따라 필요한 .aar이나 기타 라이브러리 파일의 관리가 점점 어려워집니다. Google Play Resolver를 사용하고, 직접 aar파일을 관리해주곤 해도 결국 어디선가 실수를 하거나 구멍이 나거나 하면 이유를 찾지 못해 시간을 낭비하곤 합니다. 저는 원스토어, 플레이스토어, 여러 국외 마켓 등 여러가지 플랫폼으로 빌드하는 과정에서 AndroidManifest에 의도치 않은 Permission등이 들어가 중복 설치가 안되거나 하는 것 때문에 꽤..
Windows Batch Command나 젠킨스(Jenkins)등을 이용해 자동화 시스템 등을 만들어야 하는 일이 종종있다. 필자는 비개발자들도 사용할 수 있도록 툴을 제공하기 위해 가장 많이 만들었던 것 같다. 윈도우의 경우 배치 명령어를 통해 .bat 확장자 파일을 만들어 사용해도 되지만, 쉘 스크립트가 익숙하다면 .sh확장자 파일을 만들어 사용하자 아무 폴더에나 .bat혹은 .sh파일을 생성하고 다음과 같이 적는다 "유니티설치경로\Unity\Editor\Unity.exe" -quit -batchmode -logFile "빌드 로그파일이 생성될 위치"\build_log.log -buildTarget win32 -projectPath "프로젝트경로" -executeMethod "클래스명"."함수명" U..
출근 하자마자 클라이언트 앱이 뻗는 이슈를 제보받았다. 발생 시점을 조사해보니 캐릭터가 다리를 지나가면 해당 다리가 뒤따라오며 무너지는 연출이 발생하는 시점에서 간헐적으로 해당 이슈가 발생했다. 에러 구문 중 핵심은 다음과 같다. transform.position assign attempt for 'monster_agent(Clone)' is not valid. Input position is { Infinity, Infinity, Infinity }. UnityEngine.AI.NavMeshAgent:Warp(Vector3) ... ... CalculatePolygonPath: invalid input position(s). Source position { Infinity, Infinity, Infin..