
해커톤 주제를 최종 프로젝트로 이어서 진행을 하면서 기존 기획에 대한 디테일한 부분들을 전면 수정하였다.
그러면서 도입하게 된 네이버 지도 API!
네이버 지도 공식문서 상 CocoaPods만 있고 SPM은 존재하지 않아 아쉬웠다.
(비공식 네이버 지도 SPM이 있긴 하던데 뭔가 불안해서...)
내가 네이버 지도 API 적용할 뷰를 맡아 혼자 진행할 때는 나름(?) 잘 구현이 되었는데 문제는 깃헙에 업로드하는 과정과 협업 과정에서 발생하였다.
Github에 푸시하는 과정에서 네이버지도 API 용량이 100MB를 초과하여 업로드가 되지 않았다.
아래는 구글링을 통해 시도해본 방법들이다.
Git-lfs 활용1. git lfs 설치
$ git lfs install
2. 100MB 이상 파일 추적
(확장자) 부분에는 파일의 확장자를 적으면 된다.
$ git lfs track "*.(확장자)"
$ git add .gitattributes
3. 기존 커밋 푸쉬 작업 진행
$ git add .
$ git commit -m "메시지"
$ git push origin main
BFG Repo-Cleaner 활용먼저, https://rtyley.github.io/bfg-repo-cleaner/ 로 가서 .jar 파일을 다운로드 받아 명령어를 실행할 위치에 넣어준다.
java -jar bfg-1.14.0.jar --strip-blobs-bigger-than 100M
git pull // github repository에 있는 파일 로드하기
git add * // 변경 파일 추가
git commit -m "커밋내용" // commit 하기
git push -u origin main // main branch에 push 하기
위 두 방법을 통해 대용량 문제는 해결되었으나, 갑자기
fatal: The remote end hung up unexpectedly
라는 에러가 발생했다.
이 에러는 단일 파일당 최대 용량이 1MB로 설정되어있는데 그것을 초과했기 때문이라고 한다.
따라서, 아래 방법으로 postBuffer에 대한 용량을 늘려주었다.
git config --local http.postBuffer = 2048M
git config --local http.maxRequestBuffer.= 2048M
git config --local pack.deltaCacheSize = 2048M
git config --local pack.packSizeLimit = 2048M
git config --local pack.windowMemory = 2048M
git config --local core.packedGitLimit - 2048m
git config --local core.packedGitWindowSize - 2048m
git config --local core.compression - 9
git config --local ssh.postBuffer = 2048M
git config --local ssh.maxRequestBuffer = 2048M
하지만, 이렇게 하면 다시 대용량 이슈가 생기면서 뫼비우스띠 마냥 해결이 되지 않았다.
그래서, 그냥 github 레포 안에서 .gitignore처리를 해주기로 했다🥲
github 레포 안에서 .gitignore처리를 해서 팀원들이 pull을 받은 이후 pod install을 진행해야 했었는데 여기서도 정말 다양한 오류들이 발생했다...
CocoaPods 버전 이슈pod --version으로 확인 결과 1.5.3으로 현재 github에 배포된 버전(1.11.3)과 달라 pod install이 실행되지 않았다.
따라서, 아래와 같이 CocoaPods 재설치를 진행했다.
$ sudo gem list cocoapods
$ sudo gem uninstall cocoapods
$ sudo gem install cocoapods
이후, CocoaPods 버전을 확인해봤는데 경로가 잘못 되었는 지 버전 업데이트가 되지 않았다.
따라서, 로컬에 있는 CocoaPods를 제거 후 재설치하니 해결되었다.
// 설치된 코코아팟 버전 리스트 확인
$ sudo gem list cocoapods
// 개발자 도구 업데이트
$ xcode-select --install
// 코코아팟 설치
$ brew install cocoapods
CocoaPods 경로 이슈또 다른 팀원의 이슈는 CocoaPods의 다운로드 경로가 맞지 않아 발생한 이슈였다.
구글링 결과 이는 최신 MacOS에서 자주 발생하는 오류라고 한다.
따라서, 아래 코드와 같이 개발자 도구를 업데이트한 후,
// 개발자 도구 업데이트
$ xcode-select --install
다운로드 경로를 직접 설정하여 CocoaPods를 설치하니 해결되었다.
$ brew install ruby
$ sudo gem install -n /usr/local/bin cocoapods
이 모든 작업 이후에 대용량 파일 다운을 위한 git-lfs 설치하고, pod install을 진행해주면 끝.
// 로컬 디렉토리
$ brew install git-lfs
// 해당 프로젝트 디렉토리
$ git lfs install
// pod 설치
$ pod install
이렇게 CocoaPods와의 전쟁은 일단 정리되었다.
나도 당시 CocoaPods에 대해 완벽하게 숙지하지 못했던 부분이 많았는데,
팀원들 이슈를 도와주며 해결해나가는 과정에서 정말 많이 배울 수 있었다.