私有庫問題總結(jié)

問題一 : 關(guān)于第三方庫支持 的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', }

問題二 第三方含有 靜態(tài)庫(.a) 和 動態(tài)庫(.framework)

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

問題三 自己引進(jìn) 靜態(tài)庫(.a) 和 動態(tài)庫(.framework)

解決方案
 s.vendored_libraries  = 'UC_IM/Classes/Lib/*.{a}' /// 該目錄下 .a
 s.vendored_framework  = 'UC_IM/Classes/Framework/***.framework'  ///Framework目錄下的***.framework動態(tài)庫
驗(yàn)證靜態(tài)庫和動態(tài)庫時需要的命令

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

如果依賴自己的私有庫 需要的命令是

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

問題四 私有庫使用子模塊

如果你想引用一個私有庫里面的一小部分功能,但是又不想把整個庫導(dǎo)入,那么私有庫的子模塊 ,外部單獨(dú)依賴這個子模塊
  子模塊的定義,也還是在.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' #直接使用遠(yuǎn)程庫的branchName最新提交,而不是通過XXXRepo索引庫中的tag標(biāo)簽
使用本地的倉庫
 pod 'Ucoupon',:path => '/Users/MacBook/Project/UC_IM' #直接使用本地庫, '/Users/MacBook/Project/UC_IM' 是私有庫在本地的目錄,這種更方便于開發(fā)。

問題六 直接使用頭文件 像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

問題八 關(guān)于c文件 和c++文件

引入c文件會遇到引用 或者 Unknown type name ‘NSString’等問題

解決方案一:

修改文件的引用類型


WeChatd959af0a856d6c4c280d776bf6061bf3.png
解決方案二:

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

WeChatb7848dfb08d05c74185e49f7d1e1278d.png

問題九 私有庫含有swift文件

驗(yàn)證私有庫不能使用 --use-libraries  
不能使用靜態(tài)庫的驗(yàn)證
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容