iOS 創(chuàng)建自己的SDK靜態(tài)庫(.a文件)并使用cocopods集成

iOS開發(fā)中支持靜態(tài)庫與動態(tài)庫,不過使用動態(tài)庫,上架會有麻煩。這里講到如果創(chuàng)建靜態(tài)庫.a文件,其實很早之前公司要求做wifi的SDK的時候就開始涉及這個東西了,但一直沒寫出來。

創(chuàng)建.a文件

首先新建一個靜態(tài)庫的項目

image.png

命名為CyhLib,再把一些功能代碼放進來,我直接放入一個驗證手機號的類別文件,如下圖
image.png

然后把#import "NSString+checkNum.h"引入到CyhLib.h中。因為方便引用,待會兒我們只暴露出.h。
接下來我們要創(chuàng)建兩個.a文件,一個是模擬器用,一個是真機用的。但在打包之前,我們先要處理暴露文件。
屏幕快照 2019-08-21 下午12.04.17.png

image.png

屏幕快照 2019-08-21 下午12.08.00.png
屏幕快照 2019-08-21 下午12.08.21.png
commad + B
image.png

image.png

注意這里選擇的不是模擬器運行,繼續(xù)

commad + B

這時候就得到了兩個.a文件。


屏幕快照 2019-08-21 下午12.13.32.png
image.png

把Release-iphoneo和Debug-iphonesimulator復(fù)制到桌面新建的文件夾
最后使用命令lipo -create xxx.a xxx2.a -output xxx3.a

lipo  -create /Users/chenhaige/Desktop/aFile/Debug-iphonesimulator/libCyhLib.a /Users/chenhaige/Desktop/aFile/Release-iphoneos/libCyhLib.a -output /Users/chenhaige/Desktop/aFile/newFile/CyhLib.a
image.png

使用.a文件

新建項目或者隨便找個已創(chuàng)建測試項目,可直接拖進來放在Frameworks目錄下


image.png

再把暴露的.h文件引進來


image.png

下面是我的.a文件的功能測試
BOOL isPhoneNum = [@"15677194567" checkPhoneNumInput];
    if (isPhoneNum) {
        NSLog(@"是手機號");
    }
    else
    {
        NSLog(@"不是手機號");
    }

集成到cocopods中使用

接下來,我把靜態(tài)庫和暴露的.h文件放入cocopods中使用,將靜態(tài)庫和暴露的.h上傳至github上的倉庫。并更新一個release版本。


image.png

但是,這里有個坑,必須先填完,把.a文件的名字加上前綴lib,就像剛生成那時候的名字

image.png

自動生成這個加前綴的名字不是沒有道理的,不加前綴在添加到cocopods的podspec文件里面的時候,會找不到這個靜態(tài)庫,怎么弄都是瞎搞鼓。

image.png

更改cyhCheckphoneNum.podspec版本號,與spec.source_files和spec.vendored_libraries

spec.version      = "1.0.2"
spec.source_files  = "checkphoneNum/**/*"
spec.vendored_libraries = "checkphoneNum/libCyhLib.a"
#spec.vendored_frameworks 引入framework后綴

更新github上的release版本
驗證是否通過,通過上傳至github

pod spec lint

上傳至cocopods

pod trunk push cyhCheckphoneNum.podspec

最后使用cocopods安裝使用


image.png
#import <CyhLib.h>
BOOL isPhoneNum = [@"15777183567" checkPhoneNumInput];
    if (isPhoneNum) {
        NSLog(@"是手機號");
    }
    else
    {
        NSLog(@"不是手機號");
    }

結(jié)束

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容