monotouch使用第三方framework庫

來源:互聯網
上載者:User

很少寫這東西,今天寫是為了前半個月糾結的心。

剛換了工作,從以前的c++用戶端跑來寫ios,使用的是c#語言開發。開發平台用到了xcode4.5   monotouch平台。

近兩個多星期一直在玩91SDK對接的問題,從不是如何下手到了今天找到了一些感覺了。

第一,monotouch中只能使用靜態庫,如自己在xcode中產生的一個.a檔案, .dylib檔案。

第二,對接91的時候發現了他們只給我們一個framework的檔案(framework是一個動態庫,還好裡面找到了一個類.a的檔案)

第三封裝framework為一個.a的庫。這樣子我們可以在這個.a庫中寫一個中間類去調用91庫。不這樣子做應該也是可以的,但我沒有試過,因為monotouch是用c#寫的,要綁定的東西太多了,所以建議是寫一個中間類,然後在monotouch中去綁定這個類的開放介面.

好了工作開始:

1.找到91framework檔案中的.a檔案吧。

有標出了哪個是.a檔案了別找錯了。

好的我們現在把這種.a的檔案在framework中全找出來。還有哦裡面的標頭檔也要拿出來全部的放在一個檔案夾裡面。

2.現在建立一個xcode工程

3.加入一些要的庫

4.產生的版本

有真機和虛擬機器上面的

真機

虛擬機器

這時候會產生兩個.a的,他們也是可以合成到一個.a裡面的,具體上baidu

這裡就小打個例子  liop -create "檔案1.a路徑" "檔案2.a路徑" -output "產生路徑.a"

查看版本liop -info "檔案.a路徑"

會看到i386  armv7  armv6

(解出.a檔案可以在終端中使用ar命令,NND說是ar命令其實是tar我研究了半天才發現)

1.     tar -x -f 檔案.a

會產生幾個.o的檔案

5.使用這個.a

在monodevelop中建立一個monotouch binding工程

6。引入.a

這個是綁定的代碼,是寫在ApiDefinition.cs,如果有用到enum的綁定或是結構體的綁定定居  structsandenums.cs

7最後建立一個工程用於調用 他們。我這建立的是一個iphone的視圖工程,記的在工程中要在選項中iphone build加入-v -gcc_flags="-lsqlite3  -L${ProjectDir}/lib/libsqlite3.dylib"

這個是串連一下系統的庫。還有把第一張圖中有提示的資源加入到工程中就OK了。

研究了大半個月轉了很多圈子又回到了起點。國內baidu不給力,國外googole常打不開(不過找資料上google沒選錯)我全是在那上面找到的,同時這不是我一個人的研究,還有我的同事和我一起。感謝他們,感謝cctv,最後感謝csdn

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.