2013-11-26 1 views
1

내 앱에서 네 개의 라이브러리를 사용합니다. 그 중 두 개는 제 3 자 (출처에서 만들어 짐)이고 두 개는 제 자신입니다. 빌드 디버그 및 앱의 릴리스 빌드는 문제없이 작동합니다.라이브러리에서 링크 된 제품을 제외하지 않으면 앱에서 보관시 아키텍처 "armv7에 대해 정의되지 않은 기호"가 표시됩니다.

그러나 앱을 보관하려고 할 때 개인용 라이브러리 중 하나에있는 모든 기호에 대해 "아키텍처 용 armv7에 대해 정의되지 않은 기호"가 표시됩니다 (둘 중 하나만).

해당 라이브러리의 빌드 설정에서 "Strip Linked Product"를 NO로 설정하면 앱을 보관할 수 있다는 것을 발견했습니다.

제 질문은 왜 네 개의 라이브러리 중 하나만 사용해야합니까? 그리고 문제를 해결하기 위해 내가 할 수있는 일이 있습니까?

Xcode 5.0.2를 사용하고 있습니다. 앱과 모든 라이브러리는 iOS 7 및 표준 아키텍처 (armv7 및 armv7)의 배포 대상으로 구축됩니다.

답변

1

문제는 정적 라이브러리에 대해 링크 타임 최적화를 YES로 설정했기 때문입니다.

는 "사실, 문제는 링크 타임 최적화에있다 :

나는 밖으로이 하나의 그림, 그래서보다는 내가 가진 응답 난 그냥 그것을 인용거야 의역을 시도하는 DTS 티켓을 사용 스트립 링크 된 제품을 YES로 설정하고 링크 타임 최적화를 NO로 설정 링크하는 동안 최적화 프로세스를 수행하기 전에 Xcode가 라이브러리를 먼저 스트립하고 (빌드 로그를보고 알 수 있음) 링크가 실패합니다 라이브러리에서 필요한 심볼이 제거되었으므로 링크를 최적화하는 동안 심볼이 제거되지 않기 때문에 [Stripped Link Product를 NO로 설정하면] 성공적인 아카이브가 생성됩니다. 라이브러리에 대한 NO는이 문제를 해결해야합니다. " - Linda Ouandji