React-Native之鏈接原生庫

隨著React Native發(fā)布的所有庫都在倉庫中的Libraries文件夾下。其中有一些是純Javascript代碼,你只需要去require它們就可以使用了。另外有一些庫基于一些原生代碼實現(xiàn),你必須把這些文件添加到你的應(yīng)用,否則應(yīng)用會在你使用這些庫的時候產(chǎn)生報錯。

(ps: 在用Xcode打開AwesomeProject.xcodeproj運行 報錯'React/RCTBundleURLProvider.h' file not found 請將頭文件<React/RCTBundleURLProvider.h> 和<React/RCTRootView.h>更換成"RCTBundleURLProvider.h" 和''RCTRootView.h'')

比如:

從github上面clone一個ReactNative項目,在運行的項目的時候發(fā)現(xiàn)RCTBundleURLProvider.h file not found。下面是解決方法:

添加包含原生代碼的庫需要幾個步驟:

一、自動鏈接

第一步、

首先安裝rnpm:

npm install rnpm -g

注意:rnpm需要node 4.1或更高版本。

第二步、

安裝一個帶原生依賴的庫:

npm install 某個帶有原生依賴的庫 --save

注意:這一步中–save或–save-dev參數(shù)是非常重要的。rnpm需要根據(jù)package.json文件中的dependencies和devDependencies記錄來鏈接庫。

第三步、

鏈接原生依賴:

rnpm link

完成了!現(xiàn)在所有的原生依賴都成功地鏈接到你的iOS/Android項目了。

二、手動鏈接

第一步、

如果該庫包含原生代碼,那么在它的文件夾下一定有一個.xcodeproj文件。 把這個文件拖到你的XCode工程下(通常拖到XCode的Libraries分組里)

第二步、

點擊你的主工程文件,選擇Build Phases,然后把剛才所添加進去的.xcodeproj下的Products

文件夾中的靜態(tài)庫文件(.a文件),拖到Link Binary With Libraries組內(nèi)。

第三步、

不是所有的庫都需要進行這個步驟,你需要考慮的問題在于:

我需要在編譯的期間了解庫的內(nèi)容嗎?

這個問題的意思是,你是需要在原生代碼中使用這個庫,還是只需要通過JavaScript訪問?如果你只需要通過JavaScript訪問這個庫,你就可以跳過這步了。

這一步驟對于我們隨React Native發(fā)布的大部分庫來說都不是必要的,但有兩個例外是PushNotificationIOS

和LinkingIOS。以PushNotificationIOS為例,你需要在AppDelegate每收到一條推送通知之后,調(diào)用庫中的一個方法。

這種情況下我們需要能夠訪問到庫的頭文件。為了能夠順利打包,你需要打開你的工程文件,選擇Build Settings,然后搜索Header Search Paths,然后添加庫所在的目錄(如果它還有像React這樣的子目錄需要包含,注意要選中recursive選項)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實...
    香橙柚子閱讀 24,821評論 8 183
  • 靜態(tài)庫與動態(tài)庫的區(qū)別 首先來看什么是庫,庫(Library)說白了就是一段編譯好的二進制代碼,加上頭文件就可以供別...
    吃瓜群眾呀閱讀 12,339評論 3 42
  • 《粉紅牢房效應(yīng):綁架思維感覺和行為的9大潛在力量》 三種直接影響,甚至決定人們色,思所為的潛在力量。 1:有意思的...
    鄧秋云閱讀 1,865評論 0 2
  • 來上海第一天,就躺在這張床上,那時候心里還是有點忐忑與不安。經(jīng)歷了這十幾天,認識了很多人,學到很多東西,明天即將回...
    FFFFanPei閱讀 189評論 0 0

友情鏈接更多精彩內(nèi)容