直接在Xcode7中導入ReactNative工程(免init)

默認開發環境:node: v4.2.1? npm: 2.14.7? Xcode:7.1

給大眾一個鏈接,這個適合剛初始化的新項目

http://react-native.cn/bbs/post/35

但是,如果是加入已經建好的老項目呢?ReactNative官方是推薦我們用pod React的,但是這個有時也難免會抽風。例如:我昨天在家pod的時候是沒問題的,但是早上回公司pod一個新項目又不行,這個很令人沮喪,這個我就想到不如自己手動加入ReactNative的組件,不用pod了

1、新建一個ReactNativeDemo項目,默認是一個老項目

可以下載以下鏈接(其實就是我上面介紹各位下載免init初始化的ReactNative包),將里面這3個文件復制出來到自己項目根目錄上一層處,放在上一層純粹是為了方便以后Android的拓展,參考官方存放路徑而已,各位自行參考

http://react-native.cn/bbs/post/35

2、在node_modules/react-native/React/Base/和node_modules/react-native/React/Libraries/導入這三個工程文件

3、在General中添加依賴

4、在Build Settings中搜索header?search,在里面添加以下2段:

$(SRCROOT)/../node_modules/react-native/React

$(SRCROOT)/../node_modules/react-native/React/Base

5、最重要一步!!!在Build Settings搜索other linker,看到Other Linker Flags,添加以下一句話

$(OTHER_LDFLAGS)?-ObjC

為什么要這樣做呢?

不加這句話RCTBridge會奔潰報錯,具體原因找到一個外國大神的合理解釋:

具體地址:

http://stackoverflow.com/questions/32775481/rctbatchedbridge-perfstats-unrecognized-selector-sent-to-instance

相關鏈接:https://developer.apple.com/library/mac/qa/qa1490/_index.html

各位自行查看吧

6、在ViewController里面引入頭文件

#import

在viewDidLoad中寫入:


NSURL*jsCodeLocation = [NSURLURLWithString:@"http://localhost/index.ios.bundle?platform=ios&dev=true"];

RCTRootView*rootView = [[RCTRootViewalloc]initWithBundleURL:jsCodeLocationmoduleName:@"MyProject"initialProperties:nillaunchOptions:nil];

rootView.frame=self.view.frame;

[self.viewaddSubview:rootView];

7、因為Xcode7默認是沒有開啟http的,自己打開設置,這里不詳細說明

做到這里我們就大功告成,我們可以盡情用js寫原生iOS APP了

8、之前我們不是導入一個叫index.ios.js的文件嘛,這里隨意寫js就可以了

這里MyProject是OC端注冊的名字,Ace是js端注冊的組件

效果:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容