不使用cocoapod怎么给依赖三方库的静态库打包集成静态库

解釋:我們事先假定你已經有了依賴的靜態庫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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容