這裏整理下遇到的問題node
一、指定root入參數未生效,表現形式:沒法獲取index.ios.boundle文件。react
解決方法:其中文檔命令ios
JS_DIR=`pwd`/ReactComponent; cd Pods/React; npm run start -- --root $JS_DIR
沒法正確的設置 root 地址,跟蹤了一下啓動調用版本,最終是調用../react-native/packager/packager.js 。故將啓動方式更改成git
JS_DIR=`pwd`/ReactComponent; cd ../react-native/packager; node packager.js --root $JS_DIR
(1)保證執行腳本的路徑必須在項目的跟路徑。github
(2)保證根據cd命令進入到react-native的packager路徑下。npm
(3)出現問題後要根據本身項目的結構特色去修改腳本,這是一個開發最基本的能力。react-native
二、pods依賴問題。表現形式:沒法再項目使用對應的基本類,在podlib中未正常產生libReact,或者項目出現 RCTRootView not fount。ruby
解決方法:podfile中的正確配置curl
#React now version :0.11.0-rc pod 'React', :path => './react-native', :subspecs => [ 'Core', 'ART', 'RCTActionSheet', 'RCTAdSupport', 'RCTGeolocation', 'RCTImage', 'RCTNetwork', 'RCTPushNotification', 'RCTSettings', 'RCTText', 'RCTVibration', 'RCTWebSocket', 'RCTLinkingIOS', ] #須要的模塊依賴進來即可,這裏是爲了舉例子,列舉全部的模塊
其中須要注意 :path => './react-native' 該路徑對應的是你的podfile的相對路徑,能夠在本地將官網的react-native在pod制定local依賴,通常是在zip包解壓下的../node_modules/react-native (能夠根據官網下載的最新版本,example中找到該文件夾)
其中pod install 過慢的問題解決方法:pod install --verbose --no-repo-update 。
其中沒法正常下載pod install的解決方法(or更新最新的CocoaPods version: 0.39.0 查看方法 pod --version):
gem sources --remove https://rubygems.org/ gem sources -a gem sources -l #注意 taobao 是 https ;gem若是版本太老能夠更新:sudo gem update --system ;更新pod repo:pod repo update
查看CocoaPods 當前 repo中 react-native的版本
pod search React #目前的最新版本:0.11.0-rc #Versions: 0.11.0-rc, 0.10.0, 0.10.0-rc, 0.9.0, 0.9.0-rc, 0.8.0, 0.8.0-rc.2, 0.8.0-rc, 0.7.1, 0.7.0-rc.2, 0.6.0, 0.6.0-rc, 0.5.0, 0.4.4, 0.4.3, 0.4.2, # 0.4.1, 0.4.0, 0.3.11, 0.3.8, 0.3.4, 0.3.3, 0.3.2, 0.3.1, 0.3.0, 0.2.1, 0.2.0, # 0.1.0 [master repo]
三、服務端獲取bundle方式:
NSString *urlString = @" NSURL *jsCodeLocation = [NSURL URLWithString:urlString]; RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"DemoView" initialProperties:nil launchOptions:nil];
四、根據服務端offLine版本獲取bundle方式:
NSURL *jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"DemoView" withExtension:@"jsbundle"]; RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation moduleName:@"DemoView" initialProperties:nil launchOptions:nil];
五、根據服務端生成bundle方式:
curl 'http://localhost:8081/demo/DemoView.ios.bundle?platform=ios' -o DemoView.jsbundle
其餘問題後續慢慢迭代整理。