2013-08-29 2 views
2

내 앱에서 일부 날짜 계산을 위해 MTDates 라이브러리를 사용하고 있습니다. 물론 그것은 내 프로젝트에 cocoapod으로 추가되었습니다.Podfile에서 cocoapod에 대한 GCC_PREPROCESSOR_DEFINITIONS 지정

MTDates는 mt_startOfCurrentHour에서 NSDate과 같은 메서드를 추가합니다. 또한 접두어없이 mt_없이 메소드 이름을 사용할 수 있습니다. 그냥 startOfCurrentHour. 이것을 가능하게하기 위해 전 처리기 매크로를 정의해야합니다 MTDATES_NO_PREFIX=1.

는 podscpec 파일에서이를 달성 할 수 있습니다

s.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MTDATES_NO_PREFIX=1' } 

그러나 the released podscpec에 그런 내용이 없습니다. 따라서 짧은 메소드 이름은 기본적으로 활성화되지 않습니다.

짧은 메소드 이름을 사용하고 MTDates를 프로젝트에 추가하고 싶습니다.

pod 'MTDates', :podspec => 'config/MTDates.podspec' 

을 내가 완전히 최우선없이 Podfile에서 포드의 전 처리기 매크로를 지정할 수 있습니다 방법 : 현재

나는 Podfile에서 사용자 정의 podspec에 그 라인과 포인트를 추가, REPO을 투사 podspec 복사와 함께 한 포드 스펙?

미리 감사드립니다.

답변

9

설치 후 Pods.xcodeproj을 수정하려면 Podfile의 post_install hook을 사용하면됩니다. 이 예제는 기본적으로 사용자가 알아야 할 모든 것을 보여줍니다.

+0

고마워요! 약간의 시간을 보낸 후에 나는이 해결책으로왔다. https://gist.github.com/yas375/fef76f737ca88c661311 그러나 이상한 일이 일어나고있다. Pods 프로젝트의 모든 타겟에 대한 디버그 설정을 위해'MTDATES_NO_PREFIX = 1'을 추가합니다. 그것이 맞는지 확실하지 않습니다 ... 저는 거의 그것을 입증 할 테스트 프로젝트를 준비하고 있습니다 ... – yas375

+0

여기 내 설명이 나와 있습니다 : https://github.com/CocoaPods/CocoaPods/issues/1322;) – yas375

2

자살하는 사람들을 위해 README에서이 링크로 연결 하겠지만,이 질문에 대한 대답은 접두사를 사용하는 것이 좋습니다. 제 3 자 라이브러리 정말로은 cocoapods와 같은 것을 통해 대중에게 배포 할 때 자신의 카테고리 메소드에 접두사를 추가해야합니다. 또는 다른 허용되는 방법이 없습니다.

언젠가 MTDates에서 접두사가없는 메소드를 꺼낼 수 있기를 바랍니다.

+0

이것에 대한 정보를 README에 추가하면 나에게 아주 좋은 소리가납니다! :) 확실히 다른 개발자에게 유용해야합니다. – yas375