이 글은 작업 당시 급박했던지라 기록을 많이 남기지 않아서 깔끔하게 정리할 수 없습니다.
다른 분들이 보시면 이해하기 어려우실 수 있습니다.
개요
iOS에서 소셜 로그인 기능을 넣기위해 파이어 베이스 패키지를 임포트했는데
이때부터 윈도우에서 빌드하고 Xcode프로젝트를 맥으로 옮겨서 빌드하는 방법이 안통하기 시작
찾아보니
이 순간부터 빌드하는데 CocoaPods가 필요하기 시작
cocoapods?
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 27 thousand libraries and is used in over 1.6 million apps. CocoaPods can help you scale your projects elegantly.
쉽게 보자면 Xcode 라이브러리 의존성 관리 매니저이다.
맥에서만 설치할 수 있으므로 이때부턴 완전히 맥에서 빌드를 해야했다.
문제
그리하여 맥에서 CocoaPods까지 설치하고 겨우겨우 빌드를했더니
패키지 의존성이 맞지 않는다는 뉘앙스의 에러가 등장했다. (이때 해결책 찾느라 촉박해서 캡쳐를 못했다...)
웃긴게 파이어 베이스 웹에서 받은 패키지를 임포트했는데 의존성을 적어놓은게 엉망진창이었다...
그래서 해결방안은
여기 Dependencies가 붙은 xml파일들(라이브러리들의 버전이 정의돼있다.)을 아래와 같이 수정해서
의존성을 적합하게 맞춰주었다.
수정
이렇게 보면 뭐 고친게 많아보이지만 사실
Firebase가 붙은 라이브러리 버전이 10.6.0인걸 전부 8.9.0으로 바꿔주었다.
이 상태로 빌드를 하면 Xcode프로젝트가 나오고 아이폰에 설치할려면 또다른 에러가 반겨준다.
"GoogleSignIn/GIDSignIn.h' file not found"
열심히 구글링을 해보면 이거해봐라 저거해봐라 해결책은 좀 나오긴 하지만
먹히는건 하나도 없었다.
굉장히 멘붕이었는데 의외인 곳에서 고쳐졌다.
이 Unity의 External Dependency Manager를 열고
저기 드롭다운의 디폴트값이 Xcode Workspace인데
Xcode Project로 바꾸고 빌드하니 거짓말처럼 빌드가됐다.
정말 허무하고 이게 맞는방법인지도 사실 확신이 없지만 어떻게든 성공했고
지금은 애플ID로 로그인도 넣고, 앱스토어 인앱결제도 넣고 하는데 아무 문제가 생기진 않았다.
결론
최근들어 겪은 시행착오중 가장 큰 문제였다.
맥을 써본적도없고 파이어 베이스도 연동해본적이 없다보니 정말 어려웠다.
해결이 됐다는게 정말 다행이다.
아쉬운건 에러가 났을당시에 캡쳐를 못해뒀다는것
하지만 또 같은문제가 일어나면 이걸로 기억을 되짚어볼순 있을것같다.
2023-07-28 내용 추가
파이어베이스 Messaging(푸시 알림) 패키지를 넣으면서 또 한번 고장이났는데 찾다찾다보니 애초에 루비 패키지들을 설치할때부터 잘못한거 같았다.
그래서 이참에 깨끗이 지우고 다시 세팅을 해봤다.
1. Homebrew 제거 및 m1환경용으로 깨끗하게 재설치
https://github.com/rbenv/ruby-build/issues/1691#issuecomment-983122764
위 링크를 보면 어떻게 삭제 후 재설치를 하는지 설명을 해줬다.
Homebrew를 통해 설치한 패키지들은 다 날아가고 재설치 해야하니 용기가 좀 필요하다
주의할점은 m1이라면 Homebrew경로가 /opt/homebrew
여야한다.
터미널을 Rosetta로 열면 위 경로가 아닌 /usr/local/homebrew
로 될것이기때문에 Rosetta로 열기 옵션을 꺼야한다.
Homebrew 재설치 이후 Cocoapods
도 재설치해준다.
2. rbenv 2.x.x버전으로 재설치
rbenv를 3버전대를 쓰면 이상하게 여러군데에서 되야할 명령들이 안먹혔었다.
(특히 arch -x86_64
를 붙여야 하는 명령어들)
내 경우에는 2.7.7버전으로 설치했다.
rbenv vsersions
명령으로 설치된 버전들을 볼 수있고
rbenv install -l
명령으로 설치할 수 있는 메이저 버전들을 볼수있다.
rbenv global 2.7.7
으로 설치돼있는 2.7.7버전으로 돌리고
ruby --version
을 쳤을 때 버전이 제대로 나오면 성공
3. 유니티에서 Dependencies가 붙은 Firebase xml파일들의 버전을 통일
파이어베이스 패키지를 받으면 패키지 버전이 명시된 xml파일들이있다.
저 위에서 8.9.0
으로 통일시켰던 그것들이다.
파이어베이스 패키지들의 최신버전들은 현재 기준 10.11.0
이라서 너무 구버전을 쓰기가 껄끄럽기도 하다.
테스트 해보니 10.11.0
으로 쓴다해도 통일만 돼있다면 에러가 사라지는것을 확인했다.
참고로 파이어베이스에서 필요한 패키지들을 임포트한 이후 순정 상태에서는
한개가(아마 Auth였나?) 10.7.0
이고 나머지는 10.11.0
이었고 이상태에서는 Xcode에서 빌드에러가났다.
끝