Google map, Firebase, kakaoAuth를 동시에 사용하려다 보니 시뮬레이터 지원 아키텍쳐에서 문제가 생겼다. Google map은 arm64를 excluded에 추가해서 사용하면 됐지만 kakao를 이용하는 과정에서
Alamofire는 시뮬레이터를 arm64로 돌리게 되어있어서?(추측)Google map을 arm64 바이너리파일을 지원하는 Carthage를 이용해서 재다운로드하는 방법을 선택했다.
=> 근데 intel 사용자도 잘 사용하는 걸 보면 alamofire의 바이너리파일 지원 문제는 아닌 것 같은데.. 아직 잘 모르겠다
=> 바보같이 Project, Target 둘 다 excluded arch에 arm64를 추가하지 않아서 발생한 문제였다..ㅋㅋㅋ 먼저 target을 수동으로 변경해버리면 project setting을 변경했을 때 target은 바뀌지 않는 것을 간과해서 벌어진 삽질이었다!
잘 몰라서 발생한 문제였기 때문에, 덕분에 다양한 자료를 찾아보고 공부할 수 있는 좋은 시간이었다고 생각한다..ㅎㅎ
=> 다른 에러때문에 다시 설치해야할 일이 있어서 저 문제로 인식하고 해봤는데 안되네..? 뭐야 도대체 이제는 모르겠다..
brew install carthage
현재 작업중인 프로젝트에 Cartfile을 생성
- Google Map : binary "https://dl.google.com/geosdk/GoogleMaps.json" == 6.2.1-beta
- Google Places : binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
Cartfile이 포함된 디렉토리에서 carthage update 명령어 실행
위 폴더 및 추가 framework들을 아래와 같이 추가 (프레임워크목록은 https://developers.google.com/maps/documentation/ios-sdk/config#install-the-xcframework 참고)
- Embed = Do Not Embed로 하지 않으면 에러 발생
Build/GoogleMaps.xcframework/ios-arm64_x86_64-simulator/GoogleMaps.framework/Resources/GoogleMaps.bundle을 프로젝트 최상단에 드래그 (필요한 경우 항목 복사 선택 x)
Other Linker Flag에 -ObjC 추가
Frameworks, Libraries, and Embedded Content에 GooglePlaces.xcframework폴더 추가
위와 같이 Places의 bundle파일을 프로젝트 최상단에 드래그
이번 프로젝트에서 다양한 framework를 사용하려고 하는데, 이런 지원 아키텍쳐를 확인하며 선택해야겠다는 것을 고통스럽게 배울 수 있었다... 이런 에러의 직면을 통해 앞으로 새로운 아키텍쳐가 등장하고 지난 버전과 최신버전의 혼종을 사용하는 과정을 또 경험할 때 어느정도 방어할 수 있을듯 싶다..
https://developers.google.com/maps/documentation/ios-sdk/config#install-the-xcframework