前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React-Native iOS打包

React-Native iOS打包

作者头像
憧憬博客
发布2020-07-21 13:24:29
1.1K0
发布2020-07-21 13:24:29
举报
文章被收录于专栏:憧憬博客分享

打包命令介绍

  • 通过React Nativereact-native bundle命令来进行打包的。

react-native bundle的详细命令选项

其中常用命令选项:

--entry-file ,ios或者android入口的js名称,比如index.ios.js --platform ,平台名称(ios或者android) --dev ,设置为false的时候将会对JavaScript代码进行优化处理。 --bundle-output, 生成的jsbundle文件的名称,比如release_ios/main.jsbundle --assets-dest 图片以及其他资源存放的目录,比如release_ios/

  • 导出js bundle的命令
代码语言:javascript
复制
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/
  • 方便使用,可以把打包命令写到npm script
代码语言:javascript
复制
"scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "bundle-ios":"node node_modules/react-native/local-cli/cli.js bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/"

  },
  • 运行命令直接打包:
代码语言:javascript
复制
npm run bundle-ios

开始打包

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

  • 在React Native项目的根目录下执行打包命令:
代码语言:javascript
复制
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/

或者 执行:

代码语言:javascript
复制
npm run bundle-ios

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

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

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

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

必须使用Create folder references的方式添加文件夹.

xcode资源
xcode资源
  • 修改AppDelegate.m文件,添加如下代码:
代码语言:javascript
复制
- (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;
}

让xcode使用刚才导入的jsbundle摆脱对本地nodejs服务器的依赖。

第三步:发布iOS应用

懒得弄了,等我以后再做rn项目再更新吧。?

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 打包命令介绍
  • 开始打包
    • 第一步:导出js bundle包和图片资源
      • 第二步:将js bundle包和图片资源导入到iOS项目中
        • 第三步:发布iOS应用
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档