저축은행 업무를 하면서 많은 솔루션을 사용합니다.
정말로 앱 하나에 10개 이상은 들어가는것 같습니다.
이게 앱을 만드는건지 솔루션을 합치는건지 모를정도로 다양한 솔루션을 사용합니다.
어느 기업의 솔루션을 받아서 사용하는데 개발사는 하청 업체가 진행하는것이 다반사 입니다.
같은 업체의 솔루션이지만 다른 하청업체에서 개발하기 때문에 서로 충돌도 많이 생기는데요.
이번경우는 다른 기능이지만 같은 기능들이 많아서 충돌이 되는 문제였습니다.
xcode 빌드시 아래처럼 중복된 코드들이 있다는 오류가 보여지고 있었습니다.
같은 회사 솔루션인데 왜 이렇게 만드는지는 모르겠으나.. 병합 처리를 해서 사용하려고 합니다.
duplicate symbol '_OBJC_CLASS_$_xxxxxx' in:
/Users/gigas/Documents/IOS/xxxx/a.a (c.o)
/Users/gigas/Documents/IOS/xxxx/b.a (c.o)
libtool 프로그래밍 도구를 통해 병합을 진행합니다.
Libtool은 GNU 빌드 시스템에서 나온 GNU 프로그래밍 도구이며 포터블 라이브러리를 만드는 사용합니다.
a.a, b.a 파일을 한곳에 모아두고 해당 경로로 들어가서 아래와 같은 명령어를 입력하면 됩니다.
a.a 파일과 b.a 파일을 병합하여 merge.a 라는 파일로 만들어 줍니다.
libtool -static -o ./merge.a ./a.a ./b.a
이렇게 생성된 merge.a 라이브러리 파일을 사용하니 문제 없이 빌드가 잘 되었습니다.
libtool에 많은 옵션들이 있지만 단순 병합하는 용도로 설명을 하였습니다.
'프로그래밍 > iOS' 카테고리의 다른 글
[Swift] PDFKit 사용하기 #2 다중 PDF (0) | 2021.05.18 |
---|---|
[Swift] PDFKit 사용하기 #1 단일 PDF (0) | 2021.05.17 |
[XCode] ENABLE_BITCODE (2) | 2020.08.26 |
[Apple] 던스 번호(D-U-N-S Number) 받기 (0) | 2020.07.03 |
[Xcode] console - [Process] kill() returned unexpected error 1 (0) | 2020.01.30 |