React Native项目Xcode打包发布iOS问题

简介: Xcode打包分布准备对于新手来说,如果是混合开发或者纯RN应用开发好后,想打包上线了,却发现官方文档没有找到详细打包的流程文档,对于完全没有经验的新手真的不太好友。

Xcode打包分布准备

对于新手来说,如果是混合开发或者纯RN应用开发好后,想打包上线了,却发现官方文档没有找到详细打包的流程文档,对于完全没有经验的新手真的不太好友。下面是参考资料总结而成:

1、打包命令 react-native bundle,在RN项目根目录下:
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle
AI 代码解读

参数:
--entry-file :ios或者android入口的js名称,比如index.ios.js
--platform :平台名称(ios或者android)
--dev :设置为false的时候将会对JavaScript代码进行优化处理。
--bundle-output,:生成的jsbundle文件的所在目录和名称,比如 ios/ios.jsbundle。

在当前项目中,输入上面命令,然后在ios/目录下生成2个离线包:


img_02f62c59383e360c7bdac0dbd2733db5.png
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios:ios.jsbundle.png
$ react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ios/ios.jsbundle
[2016-12-25 19:55:01] <START> Initializing Packager
[2016-12-25 19:55:01] <START> Building in-memory fs for JavaScript
[2016-12-25 19:55:01] <END>   Building in-memory fs for JavaScript (88ms)
[2016-12-25 19:55:01] <START> Building Haste Map
[2016-12-25 19:55:02] <END>   Building Haste Map (1091ms)
[2016-12-25 19:55:02] <END>   Initializing Packager (1212ms)
[2016-12-25 19:55:02] <START> Transforming files
[2016-12-25 19:55:15] <END>   Transforming files (13122ms)
bundle: start
bundle: finish
bundle: Writing bundle output to: ios/ios.jsbundle
(node:8023) DeprecationWarning: Using Buffer without `new` will soon stop working. Use `new Buffer()`, or preferably `Buffer.from()`, `Buffer.allocUnsafe()` or `Buffer.alloc()` instead.
bundle: Done writing bundle output
Assets destination folder is not set, skipping...
AI 代码解读

运行上面命令后,在项目的ios文件夹下看到ios.jsbundleios.jsbundle.meta

img_b9ea74074d8f8f0c235b991c7593b34a.png
生成的离线包.png

2、iOS项目中导入包
img_cb792864fed3c464fcb229e93bd18426.png
生成的离线包.png
img_5f5d3ad82ed594e9e195ef76bfddf85e.png
安图选择完成.png
3、修改项目中BundleURL

修改AppDelegate.h的定向URL,需要注意的是名字要跟你生成的jsbundle的名字一致。

//  jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
  
  jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"ios" withExtension:@"jsbundle"];

AI 代码解读
img_8ddffeeab4f982ea33d755c299f964df.png
修改 jsCodeLocationURL.png
  • 如果项目是混合开发,那么用到BundleURL的地方也要改成这个BundleURL地址。
  • 如果修改了项目的js文件,那么就要重新打包一次,或者利用热更新机制更新。

参考


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

目录
打赏
0
0
0
0
845
分享
相关文章
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
311 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
194 1
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
解决Xcode运行IOS报错:redefinition of module ‘Firebase‘和could not build module ‘CoreFoundation‘
解决Xcode运行IOS报错:redefinition of module ‘Firebase‘和could not build module ‘CoreFoundation‘
428 4
解决xcode doesn‘t support iphone’s ios 14.6 (18f72)
解决xcode doesn‘t support iphone’s ios 14.6 (18f72)
419 3
探索Android与iOS开发的差异:平台选择对项目成功的影响
【7月更文挑战第8天】在移动应用开发的广阔天地中,Android与iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发环境、用户界面设计、性能优化以及市场覆盖等方面的根本差异,并分析这些差异如何影响项目的成功。通过比较和分析,旨在为开发者在选择平台时提供更全面的视角,帮助他们根据项目需求和目标市场做出更明智的决策。
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统各自占据着举足轻重的地位。本文深入探讨了这两个平台在技术特性、市场覆盖、用户群体和开发成本等方面的差异,并分析了这些差异如何影响项目的最终成功。通过比较分析,旨在为开发者提供决策依据,帮助他们根据项目需求和目标受众做出明智的平台选择。
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
128 10
|
8月前
|
mac不通过Xcode直接打开IOS模拟器
mac不通过Xcode直接打开IOS模拟器
361 24
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的浩瀚宇宙中,安卓和iOS两大星系璀璨夺目,各自拥有独特的光芒。本文将穿梭于这两个平台之间,探讨它们在开发环境、用户群体、成本效益等方面的差异,以及这些差异如何影响一个项目的航向和终点。我们将从初学者的视角出发,逐步深入,揭示选择合适平台的重要性,以及如何根据项目需求做出明智的选择。无论你是即将启航的新手开发者,还是已经在这片星海中航行的老手,这篇文章都将为你提供有价值的导航信息。
95 2
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等