問題一 : 關(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)證