[iOS/Swift] CocoaPods와의 전쟁

Changhyun Kang·2023년 1월 26일
0

해커톤 주제를 최종 프로젝트로 이어서 진행을 하면서 기존 기획에 대한 디테일한 부분들을 전면 수정하였다.

그러면서 도입하게 된 네이버 지도 API!

네이버 지도 공식문서 상 CocoaPods만 있고 SPM은 존재하지 않아 아쉬웠다.
(비공식 네이버 지도 SPM이 있긴 하던데 뭔가 불안해서...)

내가 네이버 지도 API 적용할 뷰를 맡아 혼자 진행할 때는 나름(?) 잘 구현이 되었는데 문제는 깃헙에 업로드하는 과정과 협업 과정에서 발생하였다.


첫번째 이슈 - Github

Github에 푸시하는 과정에서 네이버지도 API 용량이 100MB를 초과하여 업로드가 되지 않았다.

아래는 구글링을 통해 시도해본 방법들이다.

1. 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

2. 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처리를 해주기로 했다🥲


두번째 이슈 - CocoaPods

github 레포 안에서 .gitignore처리를 해서 팀원들이 pull을 받은 이후 pod install을 진행해야 했었는데 여기서도 정말 다양한 오류들이 발생했다...

1. 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

2. 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에 대해 완벽하게 숙지하지 못했던 부분이 많았는데,
팀원들 이슈를 도와주며 해결해나가는 과정에서 정말 많이 배울 수 있었다.

profile
iOS Developer🍎

0개의 댓글