真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開發(fā)靜態(tài)庫(kù),iOS靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)

iOS 之.a靜態(tài)庫(kù)創(chuàng)建、打包以及靜態(tài)庫(kù)之間的引用

實(shí)際開發(fā)中離不開靜態(tài)庫(kù)的使用,記錄一下

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),什邡企業(yè)網(wǎng)站建設(shè),什邡品牌網(wǎng)站建設(shè),網(wǎng)站定制,什邡網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,什邡網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

.a是一個(gè)純二進(jìn)制文件,.framework中除了有二進(jìn)制文件之外還有資源文件。

.a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

.a + .h + sourceFile = .framework。

創(chuàng)建

配置如下

加到主工程

配置路徑

導(dǎo)入頭文件 使用

targets-Build Phases-Copy Files-"+"你需要公開的頭文件

所有流程都跟上面的一樣,只是我們運(yùn)行打包時(shí)要選擇真機(jī)運(yùn)行,你可以選擇自己插上去的真機(jī),也可以選擇Generic ios Devices。當(dāng)然不要忘記了設(shè)置支持所有真機(jī)機(jī)型架構(gòu): Build Active Architecture Only 設(shè)為NO。

分別使用真機(jī)或者Generic iOS Device 和 隨便一個(gè)模擬器運(yùn)行靜態(tài)庫(kù) 得到模擬器靜態(tài)庫(kù)和真機(jī)靜態(tài)庫(kù) 然后在Finder 中打開

Show in Finder

通過命令行合并 (注意 庫(kù)的名稱要一致)

lipo -create 第一個(gè).a文件的絕對(duì)路徑 第二個(gè).a文件的絕對(duì)路徑 -output 最終的.a文件路徑

然后在工程中將這個(gè).a 替換就支持真機(jī)和模擬器了

workspace里 Argos是主工程 LJNetwork是一個(gè)靜態(tài)庫(kù)工程 AGFramework.framework是打包好并導(dǎo)入到主工程的靜態(tài)庫(kù)

現(xiàn)在LJNetwork要引用AGFramework.framework庫(kù)

只需要在LJNetwork的Build Setting — User Header Search Paths 中 拉入AGFramework.framework中的Headers文件夾的路徑

靜態(tài)庫(kù)LJNetwork引用 靜態(tài)庫(kù)LJFoundation的文件

配置如下

靜態(tài)庫(kù)LJNetwork要引用pods中的AFNetworking 如下設(shè)置

個(gè)人博客地址:

iOS底層原理 - 動(dòng)態(tài)庫(kù)、靜態(tài)庫(kù)

Q1:什么是庫(kù)(Library) ?

Q2:靜態(tài)庫(kù)和靜態(tài)庫(kù)的區(qū)別?

靜態(tài)庫(kù)

動(dòng)態(tài)庫(kù)

Q3:framework為什么既是靜態(tài)庫(kù)又是動(dòng)態(tài)庫(kù)?

Q4:.a 與 .framework有什么區(qū)別?

Q5:swift使用動(dòng)態(tài)庫(kù)?

Q6:swift使用靜態(tài)庫(kù)?

Q7:CocoaPods中靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)?

Q8:可以在runtime時(shí)加載動(dòng)態(tài)庫(kù)嗎?

Q9:在使用靜態(tài)庫(kù)時(shí),某些Pod不支持module怎么辦?

iOS 封裝靜態(tài)庫(kù)(SDK)的詳細(xì)過程

最近公司由于業(yè)務(wù)需求,需要提供一個(gè)SDK以供第三方公司的集成開發(fā),之前沒有這方面的開發(fā)經(jīng)驗(yàn)有點(diǎn)迷茫。然后就在網(wǎng)上查看了一些相關(guān)的資料,自己研究了一天,成功的封裝出了自己iOS開發(fā)過程中的第一個(gè)SDK包。同時(shí)也是為了以后開發(fā)SDK留下一個(gè)比較完整的筆記。

SDK的英文全名是:software development kit,翻譯成中文的意思就是“軟件開發(fā)工具包”,我個(gè)人的理解就是一個(gè)工具包,完全可以理解成開發(fā)中我們的一個(gè)公共類。

二、怎么實(shí)現(xiàn)SDK的封裝呢?

1.打開Xcode開發(fā)工具創(chuàng)建我們的工具類

注:本文中使用的開發(fā)工具為xcode9.3

創(chuàng)建完成后

創(chuàng)建完成后,我們新建兩個(gè)繼承于基類的文件,一個(gè)用于封裝網(wǎng)絡(luò)請(qǐng)求一個(gè)用于封裝我們需要提供給他人使用的方法以及需要?jiǎng)討B(tài)改變的參數(shù)。

2.網(wǎng)絡(luò)請(qǐng)求添加到SDK中一起封裝

因?yàn)槲覀兎庋b的SDK有的數(shù)據(jù)涉及到網(wǎng)絡(luò)請(qǐng)求,所以我們封裝的時(shí)候,順便把需要用到的網(wǎng)絡(luò)請(qǐng)求也封裝進(jìn)去。

1).使用cocoapods導(dǎo)入第三方庫(kù)AFNetWorking

具體使用 見印象筆記內(nèi)容,包含了使用cocoapods遇到的問題以及解決方法: ??

2).在封裝的SDK中如果涉及到使用第三方的庫(kù)引用的時(shí)候,一定要在.m文件中進(jìn)行引用

3.做完想要封裝的文件后,開始進(jìn)行封裝

先進(jìn)行編輯設(shè)置,在product --Scheme---Edit Scheme

此處必須是release,不能用debug模式,選擇SDK是在iOS 、tvOS還是watchOS 4上面運(yùn)行的SDK,在這兒我們選擇iOS

在build Setting里面 搜索linking 設(shè)置Mach-O Type 為 static library

在build Phases --- headers 中添加需要暴露的類,將Project里面想暴露的文件.h拖動(dòng)到Public里面進(jìn)行文件暴露

完成所有設(shè)置后,我們進(jìn)行真機(jī)編輯和模擬器編輯最后合并成一個(gè)可以在真機(jī)和模擬器上運(yùn)行的第三方SDK,

4.到這一步我們的SDK封裝就差最后一步了,合并成能在真機(jī)和模擬器上運(yùn)行的SDK

選中編輯好的包,我這兒是Demo_SDK.framework然后右擊顯示文件內(nèi)容

找到這兩個(gè)文件后,我們開始合并,得到我們想要的SDK

1).打開終端---輸入lipo -create 加上文件路徑

1.為真機(jī)的文件,2為模擬器的文件,3為合并后輸出問的地址

注意:我們所合并的文件是Demo_SDK,并不是所有的文件

合并到處文件為lipo結(jié)尾的

更改合并和的文件名稱和合并前文件名稱相同,并且去掉后綴。用合并和的文件替換掉和并前的文件

合并完成后拷貝處我們封裝的SDK,在其他項(xiàng)目中引用就可以了

總結(jié):截圖比較多,為了照顧像我這樣的小白,希望大家理解。第一次寫,不喜勿噴,這只是作為自己的個(gè)人筆記,如果有什么不對(duì)的地方,希望大家指出一起交流學(xué)習(xí),Thanks?(?ω?)?

Demo鏈接:


新聞標(biāo)題:ios開發(fā)靜態(tài)庫(kù),iOS靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/hoeeie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部