解釋:我們事先假定你已經有了依賴的靜態庫framework,不管自己單獨打包的,還是用cocoapods打包的,或者Carthage打包的,將他們導入到你要製作組件framework的工程中
詳細步驟:
.1 在其他路徑創建新的Swift靜態庫framework類型工程,如取名NoCocoaTest
.2 將一方案中打出的各依賴庫的靜態庫、webRTC庫拷貝到靜態庫工程目錄,類似下圖,从工程名字你就能感受到我对cocoapods的深夜愤怒

.3 打開工程,導入Frameworks中的靜態庫:注意這一步操作先到工程Build Phases目錄下,找到Link Binary with libraries,然後點擊加號,選擇Add Files,然後從上一步的目錄中選中所有framework導入,如下所示


.4 到工程general目錄下,在Frameworks and libraries選項下選中 + 號,再次如上導入所有依賴靜態庫,同時記得將其Embed選項選為Embed & Sign ,操作完成後如下

同時可發現工程Build Phases目錄下也有了embled依賴庫,如下

.5 將工程source導入到工程中,編寫簡單測試代碼

.6 Target檢查:
general 中的:
各種版本設置是否做好
frameworks and libraries 是否導入了依賴的庫,且其embed狀態Embed & Sign
buildSetting中的:
architecture only 为no
bit encode 为 no
Mach-o type 为 Dynamic Library(相信我,这里真的是设置动态,别设置static)
Dead Code Stripping 为NO
Build Libraries for Distribution 设置为Yes,swift 5.0后ABI稳定,设置为Yes后当swift语言更新后不影响输出SDK的使用,如不设置此项,swift语言版本更新后主工程会报错
Other linker flag 加上 -all_load -ObjC
Other c flag 为 -fembed-bitcode
buildPhrases中的:
Headers 是否已经都开放
Link Binary with libraries 是否包含依赖导入的库
embed frameworks 是否包含依赖导入的库
.7 真機或者模擬器build打包,或者兩種版本腳本合併打包,最後得到sdk.framework,下圖為模擬器打包

.8 將第七步的framework導入 實驗測試工程TestSwift,其設置如下圖所示:切记,每次你把打好的包导入到工程里,都要把测试工程这里Embed设置一下

簡單編寫測試代碼,Run