2013-03-23 4 views
4

몇 가지 중요한 사전/사후 빌드 단계로 정적 라이브러리 (libfoo.a)를 빌드하는 Xcode 프로젝트 (foo)가 있습니다. 전통적으로이 라이브러리를 다른 프로젝트에서 사용하면 foo.xcodeproj를 주 프로젝트의 하위 프로젝트로 추가 한 다음 주 프로젝트의 빌드 종속성 설정을 연결합니다.정적 라이브러리 타겟이있는 프로젝트의 PodSpec을 만드는 방법은 무엇입니까?

나는 이것을 CocoaPods로 더 쉽게 만들려고 노력하고 있지만, 이것을 위해 고안된 것인지 잘 모르겠습니다. foo 프로젝트의 빌드 설정을 pod 스펙으로 복사해야하는데 CocoaPod가 원하는 방식으로 빌드 할 수 있습니까? 전/후 빌드 단계는 어떻게됩니까?

닫힌 소스 pre-compiled libraries에 대한 포드를 만드는 방법에 대한 정보는 TestFlightSDK와 비슷하지만 라이브러리를 사전 컴파일하지 않으려합니다.

+0

올바르게 이해하면 Xcode 프로젝트가 아닌 .a 및 .h 파일 만 제공 하시겠습니까? –

답변

0

pre_install hook (구문이 약간 변경된 0.17 문서)을 사용하면 필요한 모든 빌드 작업을 수행 할 수 있습니다.

마스터 저장소에는이 훅의 사용이 권장되지 않지만 개인 사양의 경우 지원됩니다.

+0

해킹이 가능하지만 작동 할 것입니다. 감사. – brianpartridge

+0

호기심에서 깨끗한 구현으로 기대되는 부분은 무엇입니까? – Fabio

+0

이상적으로, xcodeproj 파일과 대상을 지정할 수 있으며, Pods 프로젝트를 하위 프로젝트로 가져 와서 해당 대상을 종속성으로 설정합니다. 그렇게하면 libPods.a가 빌드 될 때 내 대상의 결과에서 빌드되고 정적으로 링크됩니다. 모든 빌드 단계가 실행되며 프로젝트 관리자가 추가 작업을 할 필요가 없습니다. – brianpartridge

0

코코아 포드를 사용하면 타겟에 대해 염려 할 필요가 없습니다. 라이브러리의 모든 소스 파일을 사용하여 새 프로젝트를 만들고 모든 Pod 종속성을 포함하는 단일 libPods.a를 만듭니다.

올바른 source_files 및 public_header_files로 Podspec을 작성하면 정상적으로 작동합니다.

+0

네, libPods.a 등에서 어떻게 작동하는지 이해합니다. 제 관심사는 컴파일러 플래그 (코드 생성)와 함께 소스 파일을 컴파일하는 것보다 빌드 프로세스에 더 많은 단계가 있다는 것입니다. 컴파일 만이 아니라 전체 빌드 프로세스를 실행하고 싶습니다. – brianpartridge

0

prepare_command 후크 (documentation)하고 CocoaPods에서 사용되는 루비 보석 xcodeproj (xcodeproj site)를 사용하여 Xcode 프로젝트를 변경에서 사용할 수 있습니다. 확실하지 않지만 빌드 스크립트를 추가 할 수 있습니다.

공공 repo에서 podspec에 대해 이것이 허용되는지 여부가 확실하지 않습니다.

0

당신을 위해 대답이 이미있을 것 같다 : Create podspec to ship static library

가 .framework가 선호하는 방법이라고 생각이 밝혀 두 가지 방법 (AN .A + 헤더 라이브러리 같이, 또는 .framwerork 등) 몫.