fun*_*oll 5 ios-frameworks cocoapods
我正在开发一个cocoapod。使用我的 pod 的人可以选择是否将此行包含在他们的Podfile:
use_frameworks!
如果他们包含它,我的代码将被编译到一个.framework文件中。如果没有,就会被编译成.a文件。
我想使用预处理器宏根据是否use_frameworks!存在在我的可可豆荚中包含不同的代码。
例如,这样的事情:
#if PODFILE_CONTAINS_USE_FRAMEWORKS
@import My_Library;
#else
#import <My-Library/MyLibrary.h>
#end
Run Code Online (Sandbox Code Playgroud)
当您的 Pod 名称不合规时,就会出现这种情况c99extidentifier。
我已经尝试检查#if defined COCOAPODS,但这两种情况都定义了。
成功了。
这段代码需要放入 Podfile 中:
post_install do |pi|
pi.pods_project.targets.each do |target|
target.build_configurations.each do |config|
unless pi.podfile.defined_in_file.read().include? "\nuse_frameworks!\n"
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'NO_USE_FRAMEWORKS=1'
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
然后在源文件中,代码如下所示:
#if defined NO_USE_FRAMEWORKS
#import <My-Library/MyLibrary.h>
#else
@import My_Library;
#endif
Run Code Online (Sandbox Code Playgroud)
@import如果符号不存在,则默认为语法。
use_frameworks!因此,仅当 Podfile 片段不存在时才需要添加。但无论哪种方式都会起作用。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |