React Native 在 Swift 下遇見的問題

之前 RN 在別的工程搞得好好的萌狂,因為另一個項目用了 Swift确憨,Podfile 里加了一行use_frameworks!氧猬,項目突然就不能正常編譯了怀伦,為此是深深地蛋疼了兩天才搞定壁涎。凡恍。。

這兩天主要遇見兩個問題怔球,不知道算不算低級問題嚼酝,也不知道有沒有典型性,但是自己被卡了挺久竟坛,所以記下來以供日后查閱闽巩,若是能夠幫到大家那不勝榮幸。

  1. 第一個是靜態(tài)庫用得好好的項目在使用了 use_frameworks!之后就報錯不能用了流码。
    經(jīng)過多方查探之后最終成功定位問題出在項目的"Other Link Flag"里又官。修正后的樣子如下:
    image.png

在使用靜態(tài)庫時這里是有一些-l"React"樣式的依賴,這些靜態(tài)庫依賴在使用了關(guān)鍵字use_frameworks!之后并沒有被正確的刪除漫试,導(dǎo)致了依賴庫找不到的問題六敬。
刪除那幾個 React 相關(guān)依賴之后工程能夠正常運行。此時可以看到默認(rèn)的$(inherited)關(guān)鍵字自動導(dǎo)入了-framework "DoubleConversion"字樣驾荣,這與能夠正常編譯的其他 React Native Swift 程序如官方教程里的 Swift-2048 是一致的外构。

  1. 第二個問題算是我的項目里特有的奇葩問題。因為大多數(shù)人進(jìn)行 RN 開發(fā)的時候目標(biāo)都是寫出純 RN 或者混編的 app播掷,而我的項目要求的是要開發(fā)混編的庫审编。
    APP 開發(fā)容易,帶 RN 的庫的開發(fā)就有點坑了歧匈。

因為混合開發(fā)項目大多是 Cocoapods + React Native 的組合垒酬,而React Native 的依賴是由 React Native 本地注入的,并非從 GitHub 拉取件炉,所以開發(fā)出來的庫的RN 依賴并沒有寫入到 podspec 中勘究。
在使用這個庫的時候,很有可能報
React/RCTBridgeModule.h file not found 的錯誤
畢竟這里是橫向依賴斟冕,和其他人遇到的 'react/rctbridgemodule.h' file not found 錯誤原因雖然都是找不到文件口糕,但是狀況和解決方法都是不同的。

一般遇到這個問題是因為 build 工程的時候使用了并行模式磕蛇,項目在 React build完成之前嘗試訪問景描,因此出錯十办,按照常規(guī)的取消并行,將 React 作為前置即可超棺。

而橫向依賴并不是常見情況向族,所以 React 再怎么build,它也是不可能找到 React 的说搅。
如果認(rèn)識到了這個問題的所在炸枣,就不難去找到其解決方法。畢竟 React 本身就不只是一個庫弄唧,它還包括了 DoubleConversion适肠、folly、yoga 等庫候引,所以直接去看 React 是怎么進(jìn)行橫向依賴的侯养,就能夠知道這個要怎么寫。
以我自己的項目為例澄干,需要在對應(yīng)的 Pods 中添加 React 的 framework 路徑:

image.png

當(dāng)然逛揩,因為通常 Pods 文件夾都是會被排除追蹤的,所以這么改了也只是本地能用麸俘,如果要在其他設(shè)備上編輯或者多人合作辩稽,那么需要修改 Podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if target.name == 'XXX'
            target.build_configurations.each do |config|
                if config.build_settings['FRAMEWORK_SEARCH_PATHS'] == nil
                    config.build_settings['FRAMEWORK_SEARCH_PATHS'] = ""
                end
                config.build_settings['FRAMEWORK_SEARCH_PATHS'] = config.build_settings['FRAMEWORK_SEARCH_PATHS'] + "\"$PODS_CONFIGURATION_BUILD_DIR/React\"" + " " + "\"$PODS_CONFIGURATION_BUILD_DIR/yoga\""
            end
        end
    end
end

安全起見這里我加了判空,因為沒怎么寫過 ruby从媚,不知道有沒有更簡潔的寫法逞泄。

至于有沒有辦法能把自己開發(fā)的三方庫對 RN 的依賴寫進(jìn)podspec 里讓它自己去操作,我就不知道了拜效,以目前 RN 自己都是沒有使用 podspec 的操作手法來說喷众,估計還是不太方便吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末紧憾,一起剝皮案震驚了整個濱河市到千,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赴穗,老刑警劉巖憔四,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異般眉,居然都是意外死亡加矛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門煤篙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人毁腿,你說我怎么就攤上這事辑奈】撩” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵鸠窗,是天一觀的道長妓羊。 經(jīng)常有香客問我,道長稍计,這世上最難降的妖魔是什么躁绸? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮臣嚣,結(jié)果婚禮上净刮,老公的妹妹穿的比我還像新娘。我一直安慰自己硅则,他們只是感情好淹父,可當(dāng)我...
    茶點故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怎虫,像睡著了一般暑认。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上大审,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天蘸际,我揣著相機與錄音,去河邊找鬼徒扶。 笑死粮彤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酷愧。 我是一名探鬼主播驾诈,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼溶浴!你這毒婦竟也來了乍迄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤士败,失蹤者是張志新(化名)和其女友劉穎闯两,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谅将,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡漾狼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了饥臂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逊躁。...
    茶點故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖隅熙,靈堂內(nèi)的尸體忽然破棺而出稽煤,到底是詐尸還是另有隱情核芽,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布酵熙,位于F島的核電站轧简,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏匾二。R本人自食惡果不足惜哮独,卻給世界環(huán)境...
    茶點故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望察藐。 院中可真熱鬧皮璧,春花似錦、人聲如沸转培。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浸须。三九已至惨寿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間删窒,已是汗流浹背裂垦。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留肌索,地道東北人蕉拢。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像诚亚,于是被迫代替她去往敵國和親晕换。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,055評論 2 355

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