美文网首页
私有库问题总结

私有库问题总结

作者: 老急急 | 来源:发表于2020-08-10 10:38 被阅读0次

    问题一 : 关于第三方库支持 的cpu的框架

    or/App.build/Objects-normal/i386/Binary/App
        Undefined symbols for architecture i386:
          "_OBJC_CLASS_$_HMDBUToBCrashTracker", referenced from:
              objc-class-ref in BUAdSDK(BUByteFinder.o)
          "_OBJC_CLASS_$_HMDBUToBCrashTrackerRestrict", referenced from:
              objc-class-ref in BUAdSDK(BUByteFinder.o)
          "_OBJC_CLASS_$_HMDBUToBAddressRange", referenced from:
              objc-class-ref in BUAdSDK(BUByteFinder.o)
        ld: symbol(s) not found for architecture i386
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
    
    
    cup的框架 : arm64 x86_64 armv7 armv7s i386
    解决方案
    s.xcconfig = { 'VALID_ARCHS' => 'arm64 x86_64 armv7 armv7s', }
    

    问题二 第三方含有 静态库(.a) 和 动态库(.framework)

    解决方案
    ///添加
    s.static_framework = true
    

    问题三 自己引进 静态库(.a) 和 动态库(.framework)

    解决方案
     s.vendored_libraries  = 'UC_IM/Classes/Lib/*.{a}' /// 该目录下 .a
     s.vendored_framework  = 'UC_IM/Classes/Framework/***.framework'  ///Framework目录下的***.framework动态库
    
    验证静态库和动态库时需要的命令

    --allow-warnings --skip-import-validation --use-libraries --verbose

    如果依赖自己的私有库 需要的命令是

    --sources='http://git.hnbangyao.com/TT/ttspecs.git,https://github.com/CocoaPods/Specs.git'

    问题四 私有库使用子模块

    如果你想引用一个私有库里面的一小部分功能,但是又不想把整个库导入,那么私有库的子模块 ,外部单独依赖这个子模块
      子模块的定义,也还是在.podspec文件中
      #子模块 —— 头文件
      s.subspec 'Header' do |ss|
          ss.source_files = 'UC_IM/Classes/Header/*.{h,m}'
      end
      使用子模块时只需在podfile中添加  pod 'UC_IM/header' 
    

    问题五 使用私有的技巧

    使用私有库的分支和本地库

    主工程podfile
    pod 'Ucoupon',:git => 'http://git.hnbangyao.com/ios', :branch => 'dev' #直接使用远程库的branchName最新提交,而不是通过XXXRepo索引库中的tag标签
    使用本地的仓库
     pod 'Ucoupon',:path => '/Users/MacBook/Project/UC_IM' #直接使用本地库, '/Users/MacBook/Project/UC_IM' 是私有库在本地的目录,这种更方便于开发。
    

    问题六 直接使用头文件 像PCH文件一样、

       s.prefix_header_contents = '#import <Masonry/Masonry.h>','#import "header.h"'
    

    问题七 公共库需要多人操作

    //添加管理者
     pod trunk add-owner xxx_Mediator xxxxxxxxxxx@qq.com
    //删除管理者
    pod trunk remove-owner xxx_Mediator xxxxxxxxxxx@qq.com
    

    问题八 关于c文件 和c++文件

    引入c文件会遇到引用 或者 Unknown type name ‘NSString’等问题

    解决方案一:

    修改文件的引用类型


    WeChatd959af0a856d6c4c280d776bf6061bf3.png
    解决方案二:

    把.c文件修改成.m文件!

    WeChatb7848dfb08d05c74185e49f7d1e1278d.png

    问题九 私有库含有swift文件

    验证私有库不能使用 --use-libraries  
    不能使用静态库的验证
    

    相关文章

      网友评论

          本文标题:私有库问题总结

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