2012-03-17 2 views
7

내가 작업중인 프로젝트에 프레임 워크 (정적 라이브러리 필요)를 만들어야했습니다. this tutorial을 사용하여 프레임 워크를 만든 다음 정적 라이브러리를 프로젝트에 복사하면 효과적입니다.iOS의 동적 프레임 워크에 정적 라이브러리 포함

프레임 워크를 iOS 프로젝트로 드래그하면 오류가 많이 발생합니다.

`Undefined symbols for architecture i386:"_OBJC_CLASS_$_SomeClassFromTheStaticLibrary",referenced from:_OBJC_CLASS_$_AnotherClass in MyFramework` 

는 내가 무슨 일이 일어나고 생각하는 것은 정적 라이브러리를 찾을 수 없기 때문에, 아이폰 OS 프로젝트는 프레임 워크를 다시 컴파일하고 싶어하고 할 수없는 것입니다. 정적 라이브러리를 iOS 프로젝트에 추가하면 모든 오류가 사라집니다. 이것이 내가 피하기를 원하는 것입니다.

기본적으로 프로젝트와 프레임 워크 모두에 라이브러리가있는 대신 iOS 프로젝트 -> 프레임 워크 -> 라이브러리가 필요합니다.

정적 라이브러리를 프레임 워크의 리소스로 추가하려고 시도했지만 작동하지 않았습니다.

+0

문제의 해결책은 무엇입니까? 나는 여기 비슷한 문제에 직면하고있다 .. –

+0

나는 그것을 풀었지만, 나는 속임수를 사용했다. 세 프로젝트의 소스 코드에 액세스 할 수 있으므로 정적 라이브러리를 프레임 워크로 다시 컴파일했습니다. 이렇게하면 iOS 프로젝트 -> 프레임 워크 -> 프레임 워크가 있고 하나의 프레임 워크 만 가져와야했습니다. – OlivaresF

+0

실제 솔루션이 아직 없습니까? iOS 프로젝트에 정적 라이브러리를 포함 시키면 그 문제를 해결할 수도 없습니다 ... – b00tsy

답변

0

나는 이것이 가능하다고 생각합니다. 무슨 일이 일어나고 있는지 생각할 때 문제가 나타날 것입니다.

  1. 프레임 워크는 컴파일 및 추가 문자 같은 것들이
  2. 을 제거되도록 정적 라이브러리가 처리되는 응용 프로그램은 이제 컴파일하고 또는 응용 프로그램의 기호를 가지고있을 수도 있고 없을 수도 있습니다 프레임 워크에 링크

를 요구하고 나는 단지 프레임 워크는 정적 라이브러리 (논리)를 사용하는 경우이 작업을하지만 프레임 워크를 통해 & 응용 프로그램을 코드를 공유 할 수있는 방법을 찾을 수 없습니다 얻었다. 정적으로 라이브러리를 연결하는 경우, 그러나 동적 골격을 연결하지 않을 때는 기호가 숨겨져있는 경우

-2

나는이 link을 따라 사용자 지정 프레임 워크를 만들었습니다. 내 프레임 워크 안에 정적 라이브러리가 있고 그걸로 잘 작동합니다.

저는 보편적으로 만들기위한 스크립트와 함께 그의 이해를 돕기 위해 그의 단계를 my blog에 복사했습니다.

+0

정적 라이브러리는 어디에 있습니까? 빌드 단계 탭에서 링크 했습니까? – OlivaresF

0

(어느 특정 심볼에 적용되는 YES 또는 __attribute__ ((visibility ("hidden"))) 설정되는 기본/GCC_SYMBOLS_PRIVATE_EXTERN 숨겨 심볼을 통해), 그 심볼을 사용할 수 .

정적 라이브러리의 기호가 숨겨져 있지 않은지 확인하고 앱에서 해당 기호에 액세스 할 수 있어야합니다.

관련 문제