해커톤 주제를 최종 프로젝트로 이어서 진행을 하면서 기존 기획에 대한 디테일한 부분들을 전면 수정하였다.
그러면서 도입하게 된 네이버 지도 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
에 대해 완벽하게 숙지하지 못했던 부분이 많았는데,
팀원들 이슈를 도와주며 해결해나가는 과정에서 정말 많이 배울 수 있었다.