1.證書引起的錯(cuò)誤
成都創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為淮濱企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、做網(wǎng)站,淮濱網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
控制臺(tái)錯(cuò)誤截圖
在動(dòng)態(tài)庫內(nèi)容沒有問題的情況下,大多是由于沒有對(duì)動(dòng)態(tài)庫簽名導(dǎo)致的。iOS 8以后,蘋果支持使用自定義的動(dòng)態(tài)庫,但不能上架到AppStore。我們的是企業(yè)級(jí)項(xiàng)目,不上架沒關(guān)系。
先查看一下你的動(dòng)態(tài)庫內(nèi)容
解決辦法:在生成動(dòng)態(tài)庫時(shí)選擇一個(gè)Team進(jìn)行簽名即可。
2.Swift版本引起的錯(cuò)誤(注意:下圖問題不一定是由于swift版本引起的,我遇到的問題就是swift版本引起了下面的問題)
解決方法:把下面的設(shè)置為YES
詳細(xì)說明我的問題:在之前,也就是Xcode7.3,動(dòng)態(tài)庫是swift2.3寫的。通過loadAndReturnError加載是沒有問題的,因?yàn)閄code7.3對(duì)應(yīng)的就是swift2.3。swift3.0是Xcode8才推出來的,所以就沒問題。而現(xiàn)在,Xcode升級(jí)到的8.2,而swift也升到了3.0;但是,這個(gè)動(dòng)態(tài)庫還是swift2.3,同時(shí):工程設(shè)置里使用的是最新的swift版本,所以就會(huì)出現(xiàn)這個(gè)問題。
公司開發(fā)的SDK,是集成了各個(gè)平臺(tái)的商品,包括購買、分享、提現(xiàn)等功能,為了加快進(jìn)度,我是使用了一些第三方。但是有些需求,比如分享到微信朋友圈或者還有,必須用到微信的SDK??紤]到后期的維護(hù)成本和集成,筆者采用了cocoapods管理第三方庫。
筆者有片文章專門介紹SDK的開發(fā)步驟的,大家可以參考,我這里就直接進(jìn)入主題了。
首先,你創(chuàng)建一個(gè)靜態(tài)的framework工程MyTestSDK,把這個(gè)工程集成cocpapods,至于如何集成cocpapods,網(wǎng)上有教程,自己搜索。這個(gè)時(shí)候把你項(xiàng)目中所用的第三方庫添加到Podfile文件中,然后 pod install。這個(gè)時(shí)候你command + B 編譯運(yùn)行,如果你的第三方庫中還有Bundle資源,那么編譯后,第三方庫的bundle資源會(huì)被編譯,一起放到Products文件下的framework文件中,右鍵Show in Finder就會(huì)看到。如下圖所示的MBProgressHUD文件夾,里面都是MBProgressHUD第三方的資源文件。
然后把你的項(xiàng)目放入SDK工程中,編譯運(yùn)行一下,看看有沒有錯(cuò)誤。之所以先把SDK工程選用cocoapods管理,就是怕你的項(xiàng)目放入SDK中運(yùn)行報(bào)錯(cuò)。沒有任何問題,直接編譯即可。
由于SDK中的第三方是通過cocoapods管理的,所以接入者的項(xiàng)目也要用cocoapods管理。
1:把SDK工程中,Products文件夾下的framework文件copy到項(xiàng)目中,最好項(xiàng)目中建立一個(gè)文件夾,專門放SDK和bundle。我是放到了一個(gè)文件夾中,方便分類尋找。如下圖所示:
2:打開終端,cd到SDK所在的文件夾下,執(zhí)行如下命令,回車,創(chuàng)建spec文件。
其中,MyTestSDK是你的SDK名稱。
創(chuàng)建出來的spec文件,是個(gè)很長的文件,但是大部分都是注釋的,我這里只提取了有用的信息展示出來:
然后把spec中依賴的第三方庫,逐個(gè)加入到項(xiàng)目中的Podfie文件中。然后 終端打開,cd到自己的項(xiàng)目中,pod install即可。
本人親自測(cè)試過的,No Problem。當(dāng)初感覺SDK如果依賴了第三方庫,接入的項(xiàng)目中也有同樣的第三方庫,會(huì)不會(huì)沖突啊,感覺好難搞啊。事實(shí)證明,通過spec進(jìn)行依賴,可以很好的解決這個(gè)問題,也就沒有那么麻煩了。
首次開發(fā)SDK還是遇到了很多問題,運(yùn)行出現(xiàn)很多bug,但是最后還是一一解決了,就是沒有記錄下bug和解決發(fā)的方法。
1;path路徑不對(duì),就會(huì)報(bào)錯(cuò) ,如下
是因?yàn)槲野崖窂綄懗闪耍?/p>
其實(shí)正確的寫法是:把“/”放在前面
2:SDK中有第三方,但是項(xiàng)目中的Podfile里面沒有這個(gè)第三方,報(bào)錯(cuò)如下所示:
解決辦法是就是在項(xiàng)目中的 Podfile里面加入缺失的第三方庫,重新 pod install。
一般的數(shù)據(jù)量很小的項(xiàng)目,沒必要使用數(shù)據(jù)庫,如果只是保存寫用戶信息,大可以用其他的方法,用keychain或者nsuserdefault或者其他的都可以。任何一個(gè)項(xiàng)目都需要保存一個(gè)使用狀態(tài),不能每次打開項(xiàng)目的時(shí)候都和第一次運(yùn)行一樣,完全新,要給人以使用過的感覺就要存儲(chǔ)一些歷史數(shù)據(jù)。如果怕影響用戶體驗(yàn)的話,可以多開線程在后臺(tái)去對(duì)數(shù)據(jù)操作(數(shù)據(jù)量大的情況下),記得對(duì)線程要回收。如果你對(duì)保存數(shù)據(jù)比較迷茫的話,你可以google一下ios的四種數(shù)據(jù)持久化,對(duì)于sqlite和coredata,我個(gè)人認(rèn)為只是兩種不同的存儲(chǔ)方法,一種是小型輕量級(jí)sqlite數(shù)據(jù)庫,所有移動(dòng)設(shè)備經(jīng)常用到的,還有一種是蘋果針對(duì)ios操作系統(tǒng)開發(fā)的coredata數(shù)據(jù)存儲(chǔ),具體孰勝孰略還有待你自己去了解,一般如果我的數(shù)據(jù)庫要非常多的表格互相關(guān)聯(lián)最后查詢一條結(jié)果那么我會(huì)采用sqlite,如果存儲(chǔ)一些有規(guī)律的數(shù)據(jù)那么我會(huì)采用coredata,沒有哪個(gè)更好的說法,只能說這兩種都各有千秋,而我聽前輩們說,coredata只是蘋果對(duì)sqlite的又一次封裝而已,方便操作但也局限操作
動(dòng)態(tài)鏈接庫是以 .dylib 和 .framework 為結(jié)構(gòu)的文件。
1.把framework封裝進(jìn)另一個(gè)framework中?
首先,蘋果大方的告訴我們他們是不允許這樣做的。。。
其次,實(shí)際上把靜態(tài)庫封進(jìn)另一個(gè)靜態(tài)庫確實(shí)是行不通的;
然而,把動(dòng)態(tài)庫封進(jìn)靜態(tài)庫是可行的:
使用方式:
場(chǎng)景2:
當(dāng)你在靜態(tài)庫中使用了動(dòng)態(tài)庫的方法,當(dāng)你使用此靜態(tài)庫時(shí)也要在project中引入動(dòng)態(tài)庫并且做如下圖操作:
否則,會(huì)報(bào)錯(cuò),錯(cuò)誤如下:
dyld: Library not loaded: @rpath/ZegoAVKit2.framework/ZegoAVKit2
Referenced from: /var/containers/Bundle/Application/0A23D0E0-EE5E-4E18-8020-D9F7D2F3B5CD/ahwx.app/ahwx
Reason: image not found
新聞標(biāo)題:ios開發(fā)庫,iOS系統(tǒng)開發(fā)
URL地址:http://chinadenli.net/article2/phjjic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、定制開發(fā)、虛擬主機(jī)、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)