私有CocoaPods库使用二

作者: Archerlly | 来源:发表于2017-02-25 00:08 被阅读320次

    目的

    优先于Masonry的编译定义宏

    使用场景

    由于项目原因, 必须使用动态库, 所以Podfile文件中添加了use_frameworks!
    . 在使用use_frameworks!后, Masory的编译链接优先于PCH, 所以导致就算在PCH中加上了这个宏#define MAS_SHORTHAND也无法使用Masonry提供的精简写法

    场景补充1

    use_frameworks!

    • CocoaPods导入swift框架到swift项目和OC项目都必须要 use_frameworks!
    • 使用 dynamic frameworks,必须要在Podfile文件中添加 use_frameworks!
    场景补充2

    只要添加了#define MAS_SHORTHAND这个宏,就不用带mas_前缀
    只要添加了#define MAS_SHORTHAND_GLOBALS这个宏,equalTo就等价于mas_equalTo
    所以项目中一般这么写

    // 只要添加了这个宏,equalTo就等价于mas_equalTo 不用@()
    #define MAS_SHORTHAND_GLOBALS
    // 这个头文件一定要放在上面两个宏的后面
    #import <Masonry/Masonry.h>
    

    Masonry源码

    源码

    解决方法

    podspec提供了相应的配置
    GCC预编译头参数GCC_PREPROCESSOR_DEFINITIONS

    #pod中的macro
    s.pod_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MAS_SHORTHAND_GLOBALS=1'}
    #项目中的macro
    s.user_target_xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => 'MAS_SHORTHAND_GLOBALS=1'}
    

    相关文章

      网友评论

        本文标题:私有CocoaPods库使用二

        本文链接:https://www.haomeiwen.com/subject/ixdgwttx.html