2012-12-31 7 views
19

CocoaPods : 나는 (FWKs http://www.blackjaguarstudios.com/blog/programming/2012/11/22/xcode-45-creating-ios-framework-and-hold-my-hand-im-3-years-oldhttps://github.com/bclubb/iOS-Framework를 만드는 두 튜토리얼을 기반으로)을 내부 정적 라이브러리와 함께 번들 프레임 워크, AFNetworking에 따라 및 자원 번들을 만든CocoaPods/Podspec 및 * .framework 질문

포드 (podspec)를 만들어 사람들이 단지 포드 파일 (podfile)에 라인을 추가하기를 원한다. 포드 설치시 필요하다면 내 프레임 워크와 AFNetworking을 추가하면된다.

이것이 가능합니까?

+0

무엇이든 가능합니다. ;) –

답변

24

저는 실제로 제 사무실에서이 작업을 많이 수행했습니다. 우리는 많은 양의 개인 소스 코드를 재사용합니다. CocoaPod는 새로운 프로젝트가 훨씬 빨리 시작되도록 도와 주었고 업데이트하기가 훨씬 쉬워졌습니다.

프레임 워크를 podspec에 추가하는 것이 가능하지만 프레임 워크에 대한 걱정보다는 CocoaPods를 통해 정적 라이브러리와 헤더를 전달하는 것이 훨씬 쉽다는 것을 알았습니다. 당신은해야합니다

프로젝트에 따라 podspec를 업데이트 할 수 있지만, 여기에서 중요한 부분은 다음과 같습니다

s.source_files = 'StaticLib/Headers/*.h' 
s.preserve_paths = 'StaticLib/libYourLibrary.a' 
s.library = 'YourLibrary' 
s.xcconfig = { 'LIBRARY_SEARCH_PATHS' => '$(PODS_ROOT)/ProjectFolder/LibraryFolder' }  

s.dependency = 'AFNetworking' 

이 위로 정적 라이브러리를 복사 할뿐만 아니라 너무 귀하의 포드와 AFNetworking 이상 가져올 것이다. 이렇게하면 정적 라이브러리가 훨씬 작아지고 (빌드하지 않아도 됨) 사용자가 포드를 가져올 수있는 속도를 빠르게 할 수 있습니다.

프레임 워크를 사용해야하는 경우 위와 동일한 내용이 적용되지만 약간의 조정이 필요할 수 있습니다. 모든 프레임 워크는 어쨌든 정적 라이브러리와 헤더를위한 예쁜 폴더 구조입니다. 그래서 왜 여분의 것들을 신경 써야합니까? 어쨌든 소스는 여전히 lPods.a 정적 라이브러리에 내장되어 있습니다. 희망이 당신을 도와줍니다.

+0

고마워, 더 이상 조사 할 필요가 없다는 것을 알게 된 덕분에) – Pasta

+0

https://github.com/BugsterIO/BugsterIO-iOS와 podfile의 다음 줄에서이 repo를 사용해 보았습니다. pod 'BugsterIO' , : podspec => "https://raw.github.com/BugsterIO/BugsterIO-iOS/0.8/BugsterIO.podspec" . 하지만 작동하지 않습니다. 어떤 생각? – Pasta

+0

오류는 : 아키텍처 i386에 대한 정의되지 않은 기호 : "_OBJC_CLASS _ $ _ Bugster"에서 참조 된 : – Pasta