React Native发布APP之打包iOS应用

本文详细介绍如何将React Native项目打包成iOS应用,包括导出jsbundle包与图片资源、导入资源到iOS项目及发布应用的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:导出js bundle包和图片资源

和打包React Native Android应用不同的是,我们无法通过命令一步进行导出React Native iOS应用。我们需要将JS部分的代码和图片资源等打包导出,然后通过XCode将其添加到iOS项目中。

导出js bundle的命令

在React Native项目的根目录下执行:

1
react-native bundle --entry-file index.ios.js --platform ios --dev  false  --bundle-output release_ios/main.jsbundle --assets-dest release_ios/

通过上述命令,我们可以将JS部分的代码和图片资源等打包导出到release_ios目录下:

生成jsbundle.png

生成jsbundle

其中,assets为项目中的JS部分所用到的图片资源(不包括原生模块中的图片资源),main.jsbundle是JS部分的代码。

在执行打包命令之前,我们需要先确保在我们项目的根目录有release_ios文件夹,没有的话创建一个。

第二步:将js bundle包和图片资源导入到iOS项目中

这一步我们需要用到XCode,选择assets文件夹与main.jsbundle文件将其拖拽到XCode的项目导航面板中即可。

导入jsbundle.png

导入jsbundle

然后,修改AppDelegate.m文件,添加如下代码:

1
2
3
4
5
6
7
8
9
10
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
 
   NSURL *jsCodeLocation;
  //jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
  +jsCodeLocation = [[NSBundle mainBundle] URLForResource:@ "main"  withExtension:@ "jsbundle" ];
#endif
...
   return  YES;
}

上述代码的作用是让React Native去使用我们刚才导入的jsbundle,这样以来我们就摆脱了对本地nodejs服务器的依赖。

提示:如果在项目中使用了CodePush热更新,那么我们需要就可以直接通过CodePush来读取本地的jsbundle,方法如下:

1
2
3
4
5
6
7
8
9
10
11
- (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;
}

到目前为止呢,我们已经将js bundle包和图片资源导入到iOS项目中,接下来我们就可以发布我们的iOS应用了。

第三步:发布iOS应用

。。。

 

原文链接

转载于:https://www.cnblogs.com/zhangyang17/p/7381956.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值