由于需要將項目作為sdk提供給別的app,故需要將app打包為靜態framework(我們以它為例,也可其他形式)
打包為sdk的過程中遇到了一些,記錄一下,項目是OC和Swift混編
1、資源文件打包為bundle,sdk中的文件使用資源的地方都要改為從這個bundle中獲取
2、靜態framework中不能存在橋接文件(XXX-Bridging-Header.h)
3、在sdk內部,OC代碼引用Swift文件,Swift類需要open或者public來修飾,并且OC文件需要引入頭文件xxx-Swift.h
4、在sdk內部,Swift代碼引用OC文件
? ? ? ①需要將OC頭文件設置為public(選中sdk的target->build Phases>headers)?
? ? ? ②sdk公開的.h文件中暴露OC的.h文件(xxxSDK.h中,#import <xxxSDK/xxxOC.h>)
5、私有庫需要依賴其他私有庫的話,需要在podspec中加入
Pod::Spec.new do |spec|
? spec.name? ? ? ? = 'xxx'
? #其他條件...
? spec.dependency 'SomeOtherPod'
end
未完待續...