iOS 靜態庫.a制作以及打包bundle文件

好久沒有寫文章了,最近公司用到了制作靜態庫相關的知識,在實際應用中總結了一些經驗,寫下來和大家分享一下,有什么不足的地方,望大家提意見以便更好的改進。

文章主要介紹


1、靜態庫制作規范

2、靜態庫制作流程

3、靜態庫打包bundle文件

4、合并靜態庫真機和模擬器文件


靜態庫應用場景

在工作中,我們會集成一些第三方的靜態庫,我們的開發的功能也會提供給其他人使用,提供給別人時,我們不想暴露自己的源碼,那么這就要求我們對自己的源代碼進行處理,Xcode提供了打包靜態庫的功能,下面我給大家一步步介紹下如何制作靜態庫

1、靜態庫制作規范

靜態庫是提供給其他人使用的,最好做到只提供入口方法,做到一句代碼調用的目的,如達不到一句代碼調用目的,只暴露主要方法

2、.a靜態庫制作流程

1>創建一個項目,選擇Cocoa Touch Static Library,如圖所示

圖1-1

2>創建完成如圖所示

1-2

3>將提前準備的項目文件及項目資源導入到SDK制作工程中

1-3

4>添加New Header Phase


1-4

5>添加完成如圖所示

1-5

6>將制作靜態庫需要的.h文件添加到Project中,將靜態庫調用的頭文件添加到Public中

1-6

7><靜態庫打包bundle文件>由于演示制作的靜態庫包含圖片和xib文件,因此為了規范,我們需要把圖片和xib文件添加到bundle中,如圖添加給靜態庫添加bundle資源包

1-7

8>創建好之后,將圖片和xib文件添加到Copy Bundle Resources中

1-8

9>由于.bundle文件屬于macOX類型,所以我們需要改一些配置來適配iOS,如圖所示

TARGETS ->選擇bundle -> Build Settings ->Base SDK ->選擇Latest iOS (iOS 11.2)

1-9

設置Build Setting 中的COMBINE_HIDPI_IMAEGS 為NO,否則Bundle中的圖片就是tiff格式了。

1-10

作為資源包,僅僅需要編譯就好,無需安裝相關配置,設置Skip Install為YES,同樣需要刪除安裝路徑Installation Dirctory的值

1-11
1-12

到此為止bundle文件的設置完成

10> 打包工程和資源文件

<打包bundle文件>選擇"source"項目,直接編譯項目就可以,編譯完成之后去文件源路徑找到文件
<打包工程> 選中"StaticSDK"項目,選則模擬器或Generic iOS Device 分別進行編譯,編譯成功后,去項目根目錄下找到源文件


1-13

11>找到源文件路徑,如下圖所示,到此靜態庫制作完成,將.libStaticSDK.a和source.bundle和頭文件StaticSDK.h導入到項目中即可使用

1-14

3、合并靜態庫真機和模擬器文件

我們在制作靜態庫的時候,編譯會產兩個.a文件,一個適用于模擬器的,一個是用于真機的,為了開發方便我們可以使用終端命令將.a文件進行合并

lipo -create XXX/模擬器.a路徑 XXX/真機.a路徑 -output 合并后的文件名稱.a

4-1、注意點,由于資源文件在Bundle文件中因此在使用時需注意,以下我舉兩個例子,一個是加載圖片,一個是加載xib文件

4-2注意事項:刪除bundle中plist中圖中的兩項,防止影響Appstore上架報錯

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。