저는 프레임 워크 개발의 새로운 제품입니다. 여기 제 경우입니다. 개인용 정적 라이브러리를 구축하여 공급 업체에 링크를 제공합니다. #iOS # Objective-C컴파일러는 제품 바이너리 파일의 종속 정적 라이브러리에서 관련이없는 아치 기호를 제거합니까?
현재 arch armv7 및 arm64 만 사용하여 라이브러리를 구축합니다. 이는 iOS 기기에서 디버깅하고 앱을 보관하지만 iOS 시뮬레이터에서 디버깅하기위한 것은 아닙니다. 시뮬레이터에는 x86_64가 필요합니다 (iPhone 5 Simulator에서 i386도 필요함). 시뮬레이터에서 디버깅하는 기능을 비활성화하는 것은 친숙하지 않습니다. 나는 그들을 위해 정적 라이브러리의 뚱뚱한 아키텍처를 제공하기 위해 고려 중이 야. 여기
병합 작업 후에 action
lipo -create libSignatureLibary_armv6.a libSignatureLibary_armv7.a libSignatureLibary_i368.a -output libSignatureLibary.a
이고, 출력 라이브러리는 하나보다 두 배의 크기를 갖는다.
컴파일러/Xcode가 최종 응용 프로그램 제품 바이너리에서 i386 및 x86_64 아치 기호를 제거 할 것인가? 그렇지 않다면 팻 아치 라이브러리는 제품 응용 프로그램의 크기를 직접 증가시킬 것입니다. 맞습니까? 공급 업체 용으로 두 가지 버전의 라이브러리를 구축해야합니까? 하나는 디버깅 용이고 다른 하나는 보관 용입니까? 이 사건에 대한 올바른 해결책은 무엇입니까?
Google에서 어떤 키워드를 사용해야할지 모르겠지만이를 확인하기 위해 기존 제품 앱을 연결하지 않았습니다. (아마도 나중에 새로 만들어야 할 것입니다.)
감사합니다.
감사합니다. :) – Itachi
재배치 가능한 객체 파일은 모든 소스 파일 (.m)에 대해 생성됩니다. 즉, 해당 소스 파일의 심볼을 사용하지 않으면 사용되지 않는 클래스 소스 파일을 제거합니다. – Itachi
정적 라이브러리에있는 사용되지 않은 재배치 가능 객체 파일을 제거합니다. 실행 파일을 생성 할 때'Build Phases-> Compiled Sources'에 포함 된 모든 소스 파일이 실행 파일에 링크됩니다. – KudoCC