2014-11-05 6 views
3

CocoaPods를 통해 라이브러리 (RestKit)를 사용하는 iOS 프레임 워크를 만들었습니다. 내 프레임 워크를 사용하는 응용 프로그램 프로젝트에서 CocoaPods를 사용하여 다른 라이브러리를 포함시킵니다. 프로젝트가 달리 컴파일되지 않았으므로 프레임 워크의 라이브러리를 포함해야했습니다.프레임 워크에서 코코아포드 사용하기

모든 것이 제대로 작동하지만 예상대로 응용 프로그램을 시작할 때 얻을 수 있습니다. 클래스 X는 /private/var/mobile/Containers/Bundle/Application/[...]/Application.app/Frameworks에서 모두 구현됩니다. /Framework.framework/Framework 및 /private/var/mobile/Containers/Bundle/Application/[...]/Application.app/Application. 이 중 하나가 사용됩니다. 어느 쪽이 정의되어 있지 않습니다. "라이브러리에서 여러 클래스에서.

가 CocoaPods 또는 그들이 이미 사용하고있을 때 중복 라이브러리를 가진 방지하기 위해 빌드 프로세스에 어떤 방법이 있습니까?


좀 더 . 내 질문에 대한 컨텍스트 여기에 내가했던 일이야 :

  1. 는 코코아 터치 프레임 워크와 같은 프레임 워크 프로젝트를 만든 처음에 나는 다음과 같은 RestKit에 대한 종속성과 단지 Podfile을 추가했습니다.
    을 10
    그런 다음 Podfile을 제거하고 @Paula Chavarría의 주석 에서처럼 podspec을 추가했습니다.

  2. 앱 프로젝트를 만들었습니다. @pula Chavarría가 언급 한 것처럼 다른 의존성을 가진 Podfile과 프레임 워크에 대한 종속성을 추가했습니다.

나는 그것이 올바른 헤더를 찾을 수 없기 때문에 프레임 워크가 구축 실패 응용 프로그램 프로젝트를 빌드 할 때. 프레임 워크의 헤더 검색 경로가 변경되었지만 빌드가 성공하는 데 충분하지 않은 것 같습니다.

프레임 워크에 Podfile도 있어야합니까? 원래 질문에서 말했듯이, 처음에는 그렇게했고 중복 라이브러리가 생겨 결국 제가 피하려고했던 것입니다. Podfile 또는 Podfile에 의해 생성 된 구성을 조정할 수있는 방법이 있습니까? 응용 프로그램의 헤더를 사용하고 응용 프로그램의 라이브러리와 링크 할 수 있습니까? 내가 무엇을 놓치고 있습니까? ... 미리 감사드립니다! :)

+0

프레임 워크에 RestKit과 같은 외부 라이브러리를 연결하면 안됩니다. 프레임 워크는 모든 외부 종속성을 의존하거나 요구해야하지만 포함하지 않아야합니다. - 나머지 사람과 함께 RestKit을 추가 할 사람은 중복 된 심볼을 갖게됩니다 –

+0

답장을 보내 주셔서 감사합니다. @AndreiShender! 그렇다면 앱 프로젝트는 자체 라이브러리에 필요한 모든 라이브러리를 보유해야합니까? –

답변

3

응용 프로그램 프로젝트에서 Cocoapods를 사용하는 경우 iOS 프레임 워크 용 개인 창을 만들 수 있습니다. 이렇게하려면 충돌하는 종속성을 추가하기 위해 .podspec 파일을 만들어야합니다. Restkit 위해 .podspec 파일은 다음과 같습니다

Pod::Spec.new do |s| 

s.name   = "MyFramework" 
... 
s.dependency 'RestKit', '~> 0.23' 

end 

현재이 파일에 대한 자세한 내용을보실 수 있습니다 : http://guides.cocoapods.org/making/specs-and-specs-repo.html

를 그냥 응용 프로그램 프로젝트 Podfile에 프레임 워크의 종속성을 추가해야 할 그 후. 로컬 경로 또는 버전 제어 시스템을 통해 그렇게 할 수 있습니다.

pod 'MyFramework', :path => './../my-framework' 

pod 'MyFramework', :git => 'https://url/to/my-framework.git', :tag => '0.0.1' 
+0

의견을 보내 주셔서 감사합니다. 그것은 총체적인 감각을 만든다!비록 프레임 워크를 구축하는 데 여전히 문제가 있습니다. 올바른 헤더를 찾지 못했습니다 .. –

+0

포드 프로젝트에서 모든 프레임 워크의 파일을 볼 수 있습니까? Podspec에서 소스 파일의 경로와 관련하여 매우 구체적이어야합니다. 예 : s.source_files = "path/to/classes/**/*. {h, m}" –

+0

확인을 누릅니다. 또한 빌드 설정에서 헤더 검색 경로를 수정해야했습니다. 도와 주셔서 감사합니다! –

관련 문제