第一步:導(dǎo)出js bundle包和圖片資源
我們需要將JS部分的代碼和圖片資源等打包導(dǎo)出,然后通過XCode將其添加到iOS項目中。
導(dǎo)出js bundle的命令
先在項目目錄下創(chuàng)建 release_ios 文件夾,具體可以自己命名,作為資源目標的輸出文件目錄
在React Native項目的根目錄下執(zhí)行:
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/
通過上述命令,我們可以將JS部分的代碼和圖片資源等打包導(dǎo)出到release_ios目錄下:

生成jsbundle
其中,assets為項目中的JS部分所用到的圖片資源(不包括原生模塊中的圖片資源),main.jsbundle是JS部分的代碼。
第二步:將js bundle包和圖片資源導(dǎo)入到iOS項目中
這一步我們需要用到XCode,選擇assets文件夾與main.jsbundle文件將其拖拽到XCode的項目導(dǎo)航面板中即可。

導(dǎo)入jsbundle
然后,修改AppDelegate.m文件,添加如下代碼:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
//#ifdef DEBUG
// jsCodeLocation = [[RCTBundleURLProvider sharedSettings] //jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
//#else
jsCodeLocation = [CodePush bundleURL];
//#endif
return YES;
}
上述代碼的作用是讓React Native去使用我們剛才導(dǎo)入的jsbundle,這樣以來我們就擺脫了對本地nodejs服務(wù)器的依賴。
到目前為止呢,我們已經(jīng)將js bundle包和圖片資源導(dǎo)入到iOS項目中,接下來我們就可以發(fā)布我們的iOS應(yīng)用了。
第三步:發(fā)布iOS應(yīng)用
接下來就是 發(fā)布iOS 的常規(guī)流程了,具體可以參考官方文檔