2016-08-05 2 views
4

메소드 중 하나에서 프리 프로세서 플래그를 사용하는 프레임 워크를 구축 중입니다. 다음과 같은 코드가 :Cocoapod podspec의 프리 프로 세서 플래그

public func heyStuck(overflow: String) { 
    #if DEBUG 
     print(overflow) 
    #else 
     print("¯\\_(ツ)_//¯") 
    #endif 
} 

요점은 내가, 나의 프레임 워크를 가져 체제의 플래그 DEBUG를 정의하기 위해 할 Cocoapods을 사용하고 있다는 것입니다, 내 응용 프로그램 Podfile이 같은 뭔가를해야 :

post_install do |installer_representation| 
    installer_representation.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      if config.name != 'Release' 
       config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'DEBUG=1'] 
     end 
     end 
    end 
end 

애플이이 정보를 Podfile에 정의하지 않도록하려면이 정보를 podspec 파일에 추가 할 방법이 있습니까?

답변

0

prefix_header_contents으로 시도해 볼 수 있습니다. 예를 들어 :

s.prefix_header_contents = #define DEBUG 1 
+0

감사합니다 @ 아담을하지만 #ifdef와이 없기 때문에 신속한 작동하지 않습니다. 드디어 디버그 용 조건부 컴파일 플래그를 추가했습니다. 나는 답을 대답으로 추가했다. 다시 한 번 감사드립니다. –

7

나는 결국 내 podspec 파일에 다음과 같은 마법을 사용하여, 그것을 가지고 :

s.pod_target_xcconfig = { 
    'OTHER_SWIFT_FLAGS[config=Debug]' => '-DDEBUG', 
} 
관련 문제