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

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

ios開發(fā)自己的sdk,iOS開發(fā)吧

iOS開發(fā):SDK依賴第三方庫及其踩過的坑

公司開發(fā)的SDK,是集成了各個平臺的商品,包括購買、分享、提現(xiàn)等功能,為了加快進度,我是使用了一些第三方。但是有些需求,比如分享到微信朋友圈或者還有,必須用到微信的SDK。考慮到后期的維護成本和集成,筆者采用了cocoapods管理第三方庫。

創(chuàng)新互聯(lián)公司服務(wù)項目包括久治網(wǎng)站建設(shè)、久治網(wǎng)站制作、久治網(wǎng)頁制作以及久治網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,久治網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到久治省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

筆者有片文章專門介紹SDK的開發(fā)步驟的,大家可以參考,我這里就直接進入主題了。

首先,你創(chuàng)建一個靜態(tài)的framework工程MyTestSDK,把這個工程集成cocpapods,至于如何集成cocpapods,網(wǎng)上有教程,自己搜索。這個時候把你項目中所用的第三方庫添加到Podfile文件中,然后 pod install。這個時候你command + B 編譯運行,如果你的第三方庫中還有Bundle資源,那么編譯后,第三方庫的bundle資源會被編譯,一起放到Products文件下的framework文件中,右鍵Show in Finder就會看到。如下圖所示的MBProgressHUD文件夾,里面都是MBProgressHUD第三方的資源文件。

然后把你的項目放入SDK工程中,編譯運行一下,看看有沒有錯誤。之所以先把SDK工程選用cocoapods管理,就是怕你的項目放入SDK中運行報錯。沒有任何問題,直接編譯即可。

由于SDK中的第三方是通過cocoapods管理的,所以接入者的項目也要用cocoapods管理。

1:把SDK工程中,Products文件夾下的framework文件copy到項目中,最好項目中建立一個文件夾,專門放SDK和bundle。我是放到了一個文件夾中,方便分類尋找。如下圖所示:

2:打開終端,cd到SDK所在的文件夾下,執(zhí)行如下命令,回車,創(chuàng)建spec文件。

其中,MyTestSDK是你的SDK名稱。

創(chuàng)建出來的spec文件,是個很長的文件,但是大部分都是注釋的,我這里只提取了有用的信息展示出來:

然后把spec中依賴的第三方庫,逐個加入到項目中的Podfie文件中。然后 終端打開,cd到自己的項目中,pod install即可。

本人親自測試過的,No Problem。當初感覺SDK如果依賴了第三方庫,接入的項目中也有同樣的第三方庫,會不會沖突啊,感覺好難搞啊。事實證明,通過spec進行依賴,可以很好的解決這個問題,也就沒有那么麻煩了。

首次開發(fā)SDK還是遇到了很多問題,運行出現(xiàn)很多bug,但是最后還是一一解決了,就是沒有記錄下bug和解決發(fā)的方法。

1;path路徑不對,就會報錯 ,如下

是因為我把路徑寫成了:

其實正確的寫法是:把“/”放在前面

2:SDK中有第三方,但是項目中的Podfile里面沒有這個第三方,報錯如下所示:

解決辦法是就是在項目中的 Podfile里面加入缺失的第三方庫,重新 pod install。

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

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

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

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

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

把Release-iphoneo和Debug-iphonesimulator復制到桌面新建的文件夾

最后使用命令lipo -create xxx.a xxx2.a -output xxx3.a

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

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

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

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

更新github上的release版本

驗證是否通過,通過上傳至github

上傳至cocopods

最后使用cocopods安裝使用

iOS 自制SDK包流程

【原文】( )

圖1:

圖2:

圖3:創(chuàng)建成功效果

圖4:

圖5:

圖6:

圖7:

圖8:成功效果圖

圖9:

圖10:

圖11:成功效果圖

圖12:

圖13:

圖14:

圖15:

6.選中目標SDK設(shè)置支持的架構(gòu)(一般模擬器環(huán)境是x86_64 真機環(huán)境是armv7 armv64)

7.最后編譯,command + B,編譯通過在finder中找到framework,拷貝出來

編譯之前設(shè)置工程為release環(huán)境

8.獲取真機環(huán)境下的可執(zhí)行文件

9.獲取模擬器環(huán)境下的可執(zhí)行文件

10.使用lipo -create /Users/suning/Desktop/未命名文件夾/FDDTestSDK.framework/FDDTestSDK /Users/suning/Desktop/未命名文件夾/FDDTestSDK1.framework/FDDTestSDK -output /Users/suning/Desktop/未命名文件夾/FDDTestSDK.framework/FDDTestSDK. 合并導出可以在真機和模擬器環(huán)境下的SDK文件。

最終的SDK文件目錄,可以拖拽到項目中進行使用了。

打包資源文件的方式可以參考 此文章

IOS SDK制作

IOS開發(fā)有些時候通過制作SDK進行組件化, 封裝化開發(fā)很方便, 那么怎么制作一個可用的SDK呢? 直接上干貨

當前環(huán)境:

MacOS 12.3.1

Xcode13.4.1

Intel Core i9

xcode → File → New → Project

Frame Library → Framework → Next

Product Name 中填寫SDK名字 → Next 之后選個自己能找的到的地方保存工程

創(chuàng)建好了最終是這個樣子

先修改 Deployment info 部署信息, 這個要根據(jù)自己的 目標工程 配置。例如 我加入的目標工程支持到 ios10.0, 不支持iPad, Mac, 那么我創(chuàng)建的SDK也要對應(yīng)修改

其實自己隨便一個項目加進去即可, 留意下版本號對應(yīng)即可

接下來 Command + N 創(chuàng)建一個類便于后面調(diào)用

例如我這邊創(chuàng)建一個 SpriteFactory 類, 類型是 NSObject , 并寫入一個實例方法 factoryProductSprite

建好之后, 在公共文件 ProductSprite.h (第一個, 你自己建的那個名字), 引入頭文件. 留意下引入文件格式即可

接下來我們需要修改一下 Build Settings 中部分內(nèi)容

接下來我們建立個組群, 管理下SDK

建完之后如下, 多了一個這個

添加 framework 的腳本文件, Build Phases 點擊 + 選擇 New Run Script Phase

把這個復制進去

上方選擇新加的 Targets 選擇 Any iOS Device 運行

由于我們剛才已經(jīng)寫腳本了, 所以會自動生成模擬器真機的SDK, 并且自動彈開, 如下

其他項目如果想使用, 把 .framework 拖進去或者復制項目再 add 進去即可

加入之后如下, 留意下 General 中 Frameworks, Libraries, and Embedded Content 這快, 如果沒有(老版本), 需要手動加進去 .framework

在合適地方調(diào)用, 引用頭文件格式 #import "ProductSprite/ProductSprite.h" , 下面寫進去對應(yīng)方法

運行可看到

動態(tài)庫如果正常按上面方式處理會報錯, 例如

Targets → Build Settings → Mach-O Type 為 Dynamic Library

運行時候會這樣Crash

目標文件: Build Phases 點擊 + , 選擇 New Copy File Phase

點擊 + , 選擇對應(yīng)動態(tài)庫加進去, Destination 留意選擇 Frameworks

修改 Targets → Build Settings → Build Options → Validate Workspace 為 Yes

配置完之后再運行, 正常打印

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

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

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

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

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

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

創(chuàng)建完成后

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

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

因為我們封裝的SDK有的數(shù)據(jù)涉及到網(wǎng)絡(luò)請求,所以我們封裝的時候,順便把需要用到的網(wǎng)絡(luò)請求也封裝進去。

1).使用cocoapods導入第三方庫AFNetWorking

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

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

3.做完想要封裝的文件后,開始進行封裝

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

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

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

在build Phases --- headers 中添加需要暴露的類,將Project里面想暴露的文件.h拖動到Public里面進行文件暴露

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

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

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

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

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

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

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

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

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

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

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

Demo鏈接:


文章題目:ios開發(fā)自己的sdk,iOS開發(fā)吧
文章轉(zhuǎn)載:http://weahome.cn/article/dscjsog.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部