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

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

iossdk開發(fā),ios sdk開發(fā)

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

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

建網(wǎng)站原本是網(wǎng)站策劃師、網(wǎng)絡(luò)程序員、網(wǎng)頁設(shè)計師等,應(yīng)用各種網(wǎng)絡(luò)程序開發(fā)技術(shù)和網(wǎng)頁設(shè)計技術(shù)配合操作的協(xié)同工作。成都創(chuàng)新互聯(lián)專業(yè)提供成都網(wǎng)站制作、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站制作(企業(yè)站、成都響應(yīng)式網(wǎng)站建設(shè)公司、電商門戶網(wǎng)站)等服務(wù),從網(wǎng)站深度策劃、搜索引擎友好度優(yōu)化到用戶體驗的提升,我們力求做到極致!

筆者有片文章專門介紹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 五款SDK工具

盡管App store里存在眾多種類繁雜,服務(wù)各異的應(yīng)用,但所有App都有一個共同的目標:提供 極致的用戶體驗。

好的用戶體驗是由許多因素構(gòu)成的。我們需要知道,一款好產(chǎn)品背后必定是經(jīng)過團隊多方面打磨、迭代而成。產(chǎn)品迭代必不可少的一項內(nèi)容,就是取決于你所使用的工具,比如iOS SDK(軟件開發(fā)工具)開放的通用模塊,從beta測試和錯誤監(jiān)控到用戶行為分析和A/B測試,都有相應(yīng)的產(chǎn)品,可以大大縮減金錢、時間成本,從而提高應(yīng)用整體運營的敏捷性。

這里列出了幾款iOS必備軟件開發(fā)工具,直接根據(jù)需要配置即可。

地址:

UserTesting的按需測試平臺由一個超過一百萬測試者的座談小組組成,可以在移動設(shè)備上測試網(wǎng)站、App甚至是原型。在這里幾小時內(nèi)就可以得到人工的反饋意見,包括一段記錄測試過程的視頻和一份完整的文字報告。開發(fā)者可以通過這些內(nèi)容詳細地了解用戶的使用習(xí)慣,以及產(chǎn)品在使用過程中遇到的各種問題。

主要特點:

超過百萬的用戶網(wǎng)絡(luò)

可直接面試

視頻模式和自動轉(zhuǎn)錄信息

地址:

openinstall SDK能提供多種服務(wù),包括最讓開發(fā)者頭疼的iOS多渠道統(tǒng)計,相對iTunes Connect 的“營銷活動”統(tǒng)計維度更豐富,且實時靈活,適合多渠道推廣使用。同時提供免填邀請碼安裝、一鍵拉起(Deeplink)、攜帶參數(shù)安裝、地推統(tǒng)計、CP結(jié)算、廣告投放統(tǒng)計等多個使用場景以及應(yīng)用優(yōu)化功能,讓App用戶體驗更佳,拉新轉(zhuǎn)化率更高。

主要特點:

多渠道攜帶參數(shù)統(tǒng)計

免填邀請碼等優(yōu)化用戶體驗

提高拉新轉(zhuǎn)化率

地址:

另一個具有多種功能的SDK是Instabug?,它包括了bug報告工具,讓您的用戶可以將bug發(fā)送給您;還有崩潰報告工具,可以向您發(fā)送所需的堆棧跟蹤信息,甚至不用導(dǎo)航。您還可以對比當前版本和前一個版本,觀看用戶操作的屏幕記錄。Instabug 可以與您的工作流程集成,然后通過Slack和JIRA發(fā)送提醒給整個團隊。

主要特點:

bug屏幕記錄

交互式用戶反饋

Bug的建議和類型分析

地址:

Optimizely?的試驗平臺給web網(wǎng)站、移動端網(wǎng)頁和移動端App提供解決方案。移動工具可以讓您很流暢地對應(yīng)用的各個部分進行即時實驗??焖俚沁@個工具的特點,您不需要等待應(yīng)用商店的審核即可更新應(yīng)用。同時,Optimizely 還可以讓您根據(jù)精準化的目標市場創(chuàng)造個性化的體驗。

主要特點:

即時推出和分階段推出

視覺編輯

自定義受眾以及精準化目標定位

地址:

Foresee?提供了一套多渠道的“用戶體驗”工具,其中包括自助用戶反饋工具。通過Foresee的反饋工具,您可以鼓勵用戶填寫簡單的調(diào)查問卷,讓他們提出問題,以避免問題擴大化。此外,您還可以為核心用戶快速部署評級和審核提示。此外,F(xiàn)oresee還可以重播整個會話,提供App用戶體驗的全貌。

主要特點:

簡單,自助化

個性化評分和評審

提醒會話重播

相比于采購需要大量定制化開發(fā)或自研的產(chǎn)品,使用標準化通用的SDK,可以大大縮減金錢、時間成本,從而提高公司整體運營的敏捷性。

這就像你需要用電,但并不需要從頭建發(fā)電廠,更明智地做法是主動關(guān)注哪些能力是市面上的SDK廠商已可提供的,哪些還不成熟;做好SaaS、定制化軟件和自研工具之間的分配,為那些需要“拼速度”的一線業(yè)務(wù)準備好“利器”。

組件:制作SDK

因為公司的組件化開發(fā)的深入,雖然自己只是使用不需要去處理組件(組件模塊是另外的小伙伴+大佬架構(gòu)師負責(zé)的),還是需要自己造輪子。就屢屢了...花了點時間整理了下簡單的,這些都是為組件做基礎(chǔ),后續(xù)會持續(xù)更新并實現(xiàn)組件。

廢話就不多說了,關(guān)于SDK可以自行百度這邊就不扯了,開始下面的正文。

靜態(tài)庫: .a 和 .framework

動態(tài)庫: .dylib 和 .framework

選擇 Cocoa Touch Static Library :

Build Active Architecture Only 設(shè)置為YES,表示只編譯當前的 Architecture 版本,為了適配各種機型需要關(guān)閉當前的設(shè)置。

可以在編譯完成后查看生成的靜態(tài)庫支持的系統(tǒng)架構(gòu),終端命令:

結(jié)果如下:

一般第三方只提供 release 的版本。

這邊就不多講了,國際化語言跟平時設(shè)置是一樣的,具體的就附上個通道吧 iOS之SDK開發(fā)的總結(jié) ,查看上面介紹的第四點即可。

真機、模擬器各需要運行一次生成對應(yīng)的靜態(tài)庫,根據(jù) 第4點 切換環(huán)境編譯生成對應(yīng)的靜態(tài)庫,編譯快捷鍵 cmd + B 。

如何查看編譯是否成功,查看工程目錄如下圖紅色框里面的名字,如果是紅色的則未編譯,下圖是已經(jīng)編譯后的顏色:

編譯完成后可以點擊上面紅色框 Show In Finder 進入該文件目錄。

終端命令

注 :格式如上,上面的空格不是為了美觀,而是格式

舉個例子:

靜態(tài)庫制作完成,將靜態(tài)庫拖入工程中,記得導(dǎo)入相應(yīng)需要暴露的頭文件。因為靜態(tài)庫沒有提供相應(yīng)的頭文件,只是單純的一個.a文件。

使用 framework 制作靜態(tài)庫的方法就放到 動態(tài)庫 中一起說明,具體的可以查看 動態(tài)庫--2、配置Mach

在制作動態(tài)庫上跟制作靜態(tài)庫的流程是大同小異,主要介紹不同的。

新建工程,選擇如下:

Mach-O Type 默認為動態(tài)庫,如果需要制作靜態(tài)庫的話在這邊修改 framework 類型即可。

配置完成后, cmd + B 分別編譯生成模擬器、真機 Framework 。

終端命令與制作.a靜態(tài)庫是一樣的,不同的是選擇的文件,需要用來合并的文件如下:

終端命令如下:

別忘了該空格的地方帶上空格。

舉個例子:

輸出的文件是 result.lipo ,它的格式是 .lipo ,將該文件修改成合并文件時的文件名并放入其中一個 framework 中替換,通用的 Framework 制作好了。

圖中紅色框的文件是替換合并后的文件。

將庫導(dǎo)入需要使用的工程中即可。

在工程中新建bundle,iOS-Resource-Setting Bundle 命名bundle,比如Resource.bundle。

創(chuàng)建一個文件夾如:images,將需要放入的圖片拖進去即可,拖進去后Xcode還是未顯示出加入的圖片,可以將bundle取出然后重新添加進去就有了。

項目中導(dǎo)入使用的時候需要配置的編譯參數(shù) Build Settings - Linking - Other Linker Flags ,相關(guān)的介紹附上。

如果靜態(tài)庫中有 category ,那么需要添加 -ObjC 參數(shù)標識,否則可能會報: unrecognized selector sent to instance ,因為鏈接器就會把靜態(tài)庫中所有的Objective-C類和分類都加載到最后的可執(zhí)行文件中。

會讓鏈接器把所有找到的目標文件都加載到可執(zhí)行文件中,但是千萬不要隨便使用這個參數(shù)!假如你使用了不止一個靜態(tài)庫文件,然后又使用了這個參數(shù),那么你很有可能會遇到 ld: duplicate symbol 錯誤,因為不同的庫文件里面可能會有相同的目標文件,所以建議在遇到 -ObjC 失效的情況下使用 -force_load 參數(shù)。

所做的事情跟 -all_load 其實是一樣的,但是 -force_load 需要指定要進行全部加載的庫文件的路徑,這樣的話,你就只是完全加載了一個庫文件,不影響其余庫文件的按需加載

iOS-SDK從無到有(學(xué)有所出,有所記)

配置和使用靜態(tài)庫

iOS之SDK開發(fā)的總結(jié)

iOS 庫.a 和 framework的區(qū)別和創(chuàng)建


新聞標題:iossdk開發(fā),ios sdk開發(fā)
本文網(wǎng)址:http://weahome.cn/article/dscicoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部