已有react-native項目轉(zhuǎn)換成iOS原生cocoapods集成的一些坑

前言

在工作中遇到一個需求,用原生集成多個react-native項目,關(guān)鍵是react-native項目還在開發(fā),再新建一個原生項目來集成的話又比較麻煩,所以在react-native項目的基礎(chǔ)上改成用cocoapods集成.
如有錯誤,請指出,必定虛心接受,立刻改正!

有關(guān)原生集成多個react-native項目

另外有寫一篇文章,具體操作和內(nèi)容請移駕iOS端實現(xiàn)React Native差異化增量更新

集成到現(xiàn)有原生應(yīng)用

這個就不多講了,react-native中文網(wǎng)里面寫的很完整

現(xiàn)有react-native項目轉(zhuǎn)換成iOS原生

我就拿一個測試項目來給各位試驗一下(版本)


現(xiàn)有RN項目結(jié)構(gòu)

iOS工程結(jié)構(gòu)

那我們現(xiàn)在開始改造

  1. cd 到RN項目工程下的ios文件夾
  2. 執(zhí)行 pod init
  3. 編寫Podfile文件,填入以下內(nèi)容


    新建的Podfile文件內(nèi)容
# 'node_modules'目錄一般位于根目錄中
  # 但是如果你的結(jié)構(gòu)不同,那你就要根據(jù)實際路徑修改下面的`:path`
  pod 'React', :path => '../node_modules/react-native', :subspecs => [
    'Core',
    'CxxBridge', # 如果RN版本 >= 0.47則加入此行
    'DevSupport', # 如果RN版本 >= 0.43西壮,則需要加入此行才能開啟開發(fā)者菜單
    'RCTText',
    'RCTNetwork',
    'RCTWebSocket', # 調(diào)試功能需要此模塊
    'RCTAnimation', # FlatList和原生動畫功能需要此模塊
    # 在這里繼續(xù)添加你所需要的其他RN模塊
  ]
  # 如果你的RN版本 >= 0.42.0醉锅,則加入下面這行
  pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'

  # 如果RN版本 >= 0.45則加入下面三個第三方編譯依賴
  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
  1. 保存后,執(zhí)行 pod install


    成功展示

    5.打開項目工程


    集成cocoapods后的工程

    6.刪除原有RN引用
    image.png

    7.解決報錯信息


    報錯信息

    Edit Scheme

    Build

    我們會發(fā)現(xiàn)這邊的React是missing,因為我們前面剛刪掉,那么這邊我們同時也刪掉,并且添加新的React,并且選中React移到項目之前
    添加pod中的React

    移到項目之前

    之后我們按住command+shitf+k clean一下項目
    p.s.

    存在問題,測試類中會報錯'React/RCTLog.h' file not found,這邊我們暫時讓測試類不進入編譯,有大佬知道如何解決的請告知,我后期如果知道解決方案的話也會更新文章,解決我留的坑


    去掉測試類

再次run之后可以發(fā)現(xiàn)項目已經(jīng)成功的跑起來了

image.png

而此時的項目結(jié)構(gòu)如下


項目結(jié)構(gòu)

到此時就應(yīng)該說大部分已經(jīng)結(jié)束了,項目結(jié)構(gòu)就跟原生的cocoapods項目結(jié)構(gòu)一樣了.

遇到的坑

做RN項目時,肯定會導(dǎo)入不同的第三方庫,絕大部分三方庫都是支持cocoapods的,那么如果遇到不支持的,或者是公司的私庫,沒有podspec文件,那么是不是就無法用了呢?
比如下方的庫
react-native-yusha-customKeyboard
額,我RN項目做得不多,用到這個庫是沒有podspec文件的,就拿這個做示例吧

  1. 先導(dǎo)入這個庫


    導(dǎo)入成功

    因為沒有podspec文件,那么我們在Podfile中也無法添加庫

  2. 那我們link試一下


    項目工程link之后

    我們發(fā)現(xiàn)原來的Libraries又出來了,然后多了一個CustomKeyboard,是否已經(jīng)成功了呢,跑一下項目試試


    報錯信息

    項目報錯,找不到'React/RCTBridgeModule.h'
    之前再網(wǎng)上查資料,說link 和 cocoapods不能共存,看來是有道理的
  3. 臨時解決方案


    刪除Libraries

    Add FIles to "Pods"

    在nodu_modules中找到這個庫


    添加庫

    添加到React的targets
    如果是還沒升級,或者低版本的xcode,選擇類之后,右邊更改targets,.h和.m文件都要改一下
    更改targets

    image.png

然后再運行項目,我這邊能夠跑起來了,你們那邊呢?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赦颇,一起剝皮案震驚了整個濱河市示惊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轴踱,老刑警劉巖症脂,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異淫僻,居然都是意外死亡诱篷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門雳灵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棕所,“玉大人,你說我怎么就攤上這事悯辙×帐。” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵躲撰,是天一觀的道長针贬。 經(jīng)常有香客問我,道長拢蛋,這世上最難降的妖魔是什么桦他? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮谆棱,結(jié)果婚禮上快压,老公的妹妹穿的比我還像新娘。我一直安慰自己垃瞧,他們只是感情好蔫劣,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著个从,像睡著了一般脉幢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗦锐,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天嫌松,我揣著相機與錄音,去河邊找鬼意推。 笑死豆瘫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菊值。 我是一名探鬼主播外驱,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼育灸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了昵宇?” 一聲冷哼從身側(cè)響起磅崭,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓦哎,沒想到半個月后砸喻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡蒋譬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年割岛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犯助。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡癣漆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出剂买,到底是詐尸還是另有隱情惠爽,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布瞬哼,位于F島的核電站婚肆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坐慰。R本人自食惡果不足惜较性,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望讨越。 院中可真熱鬧两残,春花似錦永毅、人聲如沸把跨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽着逐。三九已至,卻和暖如春意蛀,著一層夾襖步出監(jiān)牢的瞬間耸别,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工县钥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秀姐,地道東北人。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓若贮,卻偏偏與公主長得像省有,于是被迫代替她去往敵國和親痒留。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容