RN(0.67)接入現(xiàn)有swift項(xiàng)目及常見(jiàn)問(wèn)題

一、創(chuàng)建RN新項(xiàng)目

1爵卒、創(chuàng)建新項(xiàng)目
在安裝好RN環(huán)境之后堡称,執(zhí)行如下命令

npx react-native init xxx項(xiàng)目名

找到項(xiàng)目的ios目錄,將現(xiàn)有的swift項(xiàng)目拷貝到ios目錄中

2墙贱、修改podfile文件

最新的RN項(xiàng)目中的podfile文件可以在下面這個(gè)鏈接上查看:

RN集成Pod的版本

參考該文件并對(duì)自己的Podfile文件進(jìn)行修改热芹,如:

require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

platform :ios, '11.0'
target 'SFDY_SHIPPER' do

pod 'BSText'
pod 'YYImage',:modular_headers => true                 #富文本
pod 'WechatOpenSDK' #微信SDK
  config = use_native_modules!

  use_react_native!(
    :path => config[:reactNativePath],
    # to enable hermes on iOS, change `false` to `true` and then install pods
    :hermes_enabled => false
  )

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable the next line.
  use_flipper!()

  post_install do |installer|
    react_native_post_install(installer)
    __apply_Xcode_12_5_M1_post_install_workaround(installer)
  end
end

進(jìn)入到ios目錄下,執(zhí)行pod install命令安裝項(xiàng)目所需要的庫(kù)

3嫩痰、加載
在合適的地方加載bundle文件測(cè)試
比如可以放在appdelegate文件

 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {  
            // 測(cè)試RN項(xiàng)目
            
            let moduleName: String = "sfdy_shipper_rn"
            let jsCodeLocation:NSURL
            jsCodeLocation = NSURL(string:"http://192.168.30.39:8081/index.bundle?platform=ios")!
        
            let rootView = RCTRootView(bundleURL: jsCodeLocation as URL, moduleName: moduleName, initialProperties: nil, launchOptions: nil)
            rootView.backgroundColor = UIColor.systemPink
            let rootViewController = UIViewController()
            rootViewController.view = rootView
    
            window = UIWindow(frame: UIScreen.main.bounds)
            window?.rootViewController = rootViewController
            window?.makeKeyAndVisible()
            
            return true
        }

4剿吻、第一個(gè)頁(yè)面


二窍箍、常見(jiàn)問(wèn)題

問(wèn)題1:

RCTStatusBarManager module requires that the UIViewControllerBasedStatusBarAppearance key in the Info.plist is set to NO

解決:
在info.plist中串纺,添加View controller-based status bar appearance并設(shè)置為NO

問(wèn)題2:

[!] /bin/bash -c 
set -e
#!/bin/bash
set -e
 
PLATFORM_NAME="${PLATFORM_NAME:-iphoneos}"
CURRENT_ARCH="${CURRENT_ARCH}"
 
......(省略)
 
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: SDK "iphoneos" cannot be located
xcrun: error: unable to lookup item 'Path' in SDK 'iphoneos'
/Users/galahad/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-e8acf/missing: Unknown `--is-lightweight' option
Try `/Users/galahad/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-e8acf/missing --help' for more information
configure: WARNING: 'missing' script is too old or missing
configure: error: in `/Users/galahad/Library/Caches/CocoaPods/Pods/External/glog/2263bd123499e5b93b5efe24871be317-e8acf':
configure: error: C compiler cannot create executables
See `config.log' for more details

解決:
執(zhí)行下面命令:

$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

輸入mac密碼后重新安裝

$ pod install

問(wèn)題3:

Ensure the following:

- Node server is running and available on the same network - run 'npm start' from react-native root

- Node server URL is correctly set in AppDelegate

- WiFi is enabled and connected to the same network as the Node Server

URL: http://localhost:8081/index.bundle?platform=ios&dev=true Could not connect to the server.)

看手機(jī)的wifi應(yīng)當(dāng)和電腦連接的是同一個(gè)網(wǎng)絡(luò)
打開(kāi)偏好設(shè)置-網(wǎng)絡(luò)-查看當(dāng)前ip地址,將項(xiàng)目中的localhost改為當(dāng)前ip

jsCodeLocation = NSURL(string:"http://192.168.30.39:8081/index.bundle?platform=ios")!

如果直接運(yùn)行xcode無(wú)法運(yùn)行椰棘,可以試試命令行

npm start
react-native run-ios --device "手機(jī)名"

問(wèn)題4: cocopods報(bào)錯(cuò)
一個(gè)很尷尬的事情纺棺。用RN混編swift的代碼 如果加了use_frameworks!會(huì)報(bào)錯(cuò)

而方法是是去掉use_frameworks
但是去掉之后會(huì)報(bào)


解決方法是加上use_frameworks

解決:
先去除掉use_frameworks


# which 指代的 是 YYImage 即依賴的庫(kù)
pod 'BSText'
pod 'YYImage',:modular_headers => true                

問(wèn)題5:react-native命令不生效

配置reactNative(RN)過(guò)程中 出現(xiàn)react-native:command not found 和 zsh: command not found: react-native

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市邪狞,隨后出現(xiàn)的幾起案子祷蝌,更是在濱河造成了極大的恐慌,老刑警劉巖帆卓,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巨朦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡剑令,警方通過(guò)查閱死者的電腦和手機(jī)糊啡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吁津,“玉大人棚蓄,你說(shuō)我怎么就攤上這事。” “怎么了梭依?”我有些...
    開(kāi)封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵稍算,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我役拴,道長(zhǎng)糊探,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任河闰,我火速辦了婚禮侧到,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘淤击。我一直安慰自己匠抗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布污抬。 她就那樣靜靜地躺著汞贸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪印机。 梳的紋絲不亂的頭發(fā)上矢腻,一...
    開(kāi)封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音射赛,去河邊找鬼多柑。 笑死,一個(gè)胖子當(dāng)著我的面吹牛楣责,可吹牛的內(nèi)容都是我干的竣灌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼秆麸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼初嘹!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起沮趣,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤屯烦,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后房铭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體驻龟,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年缸匪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了翁狐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡豪嗽,死狀恐怖谴蔑,靈堂內(nèi)的尸體忽然破棺而出豌骏,到底是詐尸還是另有隱情,我是刑警寧澤隐锭,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布窃躲,位于F島的核電站,受9級(jí)特大地震影響钦睡,放射性物質(zhì)發(fā)生泄漏蒂窒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一荞怒、第九天 我趴在偏房一處隱蔽的房頂上張望洒琢。 院中可真熱鬧,春花似錦褐桌、人聲如沸衰抑。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)呛踊。三九已至,卻和暖如春啦撮,著一層夾襖步出監(jiān)牢的瞬間谭网,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工赃春, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愉择,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親请琳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

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