개인 프로젝트를 진행중 카카오맵 SDK를 연동시 아래와 같은 오류가 발생했다.
*참고로 글쓴이의 개발 환경은 아래와 같다.
노트북 : M2 Air 16GB
개발 IDE 및 버전 : Xcode 14.3
빌드 환경 : arm64(default)
In DaumMap.framework/DaumMap(HashUtils.o), building for iOS Simulator, but linking in object file built for iOS, file 'DaumMap.framework/DaumMap' for architecture arm64
특히, 공식문서에서도 이와 관련된 내용은 나와있지 않으며 공식포럼에서조차 질답게시판에 몇개 올라왔지만 해당 답변이 달려있지 않고 오히려 사용자들이 답변을 주는 사례가 더많아 보였다.(관리 잘 안하는듯 하다 --;)
미리 결과를 말하자면, 다행히, 카카오맵의 경우 로제타를 이용하여 카카오맵 빌드시 큰 문제없이 해결이 가능하다.
따라서, 14버전 이상일때 어떻게 설정하는지 보자
(구버전(약 13버전 이하)의 경우 로제타 변경에 관한 블로그 글들이 많이 있음으로 생략)
1)Terminal을 이용하여 sudo softwareupdate --install-rosetta를 이용하여 로제타 설치
2) Xcode실행 - Product - Destination - Destination Architecture를 누르면 바로 변경하여 에뮬레이터의 빌드 환경을 변경
(다만, Rosetta 에뮬레이터로 실행시 렌더링쪽에 문제가 발생하는지 알수없는 렉이며, 터치가 씹히는 현상 등 문제가 발생한다. 따라서 본인은 네이버맵으로 변경.. )
어쨌든 본글의 목적은 간혹 카카오맵처럼 objective-c의 헤더파일을 이용하여 native 코드까지 연동할때 링킹에러가 발생했을 때 대처방안 중 하나로써 링킹에러를 해결하는 방법에 대해 작성하였으며, C/C++의 경우는 32/64비트 모듈간 호환성이 안맞아서 빌드에러 나는경우는 종종봤어도 빌드 아키텍쳐 종류에 따라 안되는건 또 새로운 느낌으로 배운것 같다.