记录使用cocopods hook 设置Xcode项目或依赖库的Build Settings

567 阅读1分钟

因为我们app要把核心功能做成sdk开放给公司的其它业务线app使用,为了提高开发sdk的效率就把sdk通过cocopods的本地依赖集成到了我们业务线的app中。然后通过定义全局宏和来区分自己app的业务和其它业务线的业务。这里我们是用了在主工程项目的Build Settings 的Preprocessing 里添加了一个用于区分的标识。然后用iOS预编译指令 #ifdef #else #endif

进行自己app的业务和其它业务线app的业务。但是这里有个问题很不方便,就是每次进行pod install时 Build Settings 的Preprocessing 的值就会被重围,每次pod install 后都要重新的添加前面定义过的宏,这样严重影响了开发的效率。所以就在网上查到了可以在Podfile文件里通过代码进行项目和库的Build Settings设置。

post_install do |installer_representation|    installer_representation.pods_project.targets.each do |target|        if target.name == 'sdk的名称'            target.build_configurations.each do |config|                config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','ISCucProjuct']            end       elsif target.name == 'sdk的名称'                 target.build_configurations.each do |config|                     config.build_settings['ENABLE_BITCODE'] = 'NO'           end        end    endend

因为公司的一个sdk每次pod install时都要手动的设置一下 ENABLE_BITCODE 为NO,因为目前我们的项目pod install比较频繁,所以就对这个库的ENABLE_BITCODE进行了自动的设置。