都不知道这篇应该将其分类为iOS还是归ReactNative。
打包步骤:
因为打包的iOS App是完全用React Native写的,所以先检查React Native中的版本和网络地址信息。
1. 打开React Native项目中的网络配置NetUtil.js文件修改URL_ADDR为生产环境的网络地址
2. 在 React Native 根目录找到index.ios.js文件修改React Native项目中的一些全局变量。
正常情况是通过React Native 桥接原生iOS来获取。这个项目直接设置在全局变量中。坑。
3. 将React Native生成bundle文件给iOS使用
由于我在package.json 配置了bundle-ios
"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/"
所以打开终端在React Native项目根目录直接执行:
npm run bundle-ios
生成的bundle文件在React Native 项目根目录下的release_ios文件夹中
4. 将bundle文件导入iOS项目中
用Xcode打开iOS项目,Xcode的项目根目录是否有以前导入的旧bundle包,如果有删除。注意选择
选择Remove References
然后将React Native.根目录下的release_ios文件夹中的assets文件夹和main.jsbundle拖入Xcode的项目根目录中。注意:选择下图中的Create folder references
到这里 React Native 的事情就做完了。下面开始iOS打包了。
5. 修改iOS bundle包指向。
在Xcode中搜索AppDselegate.m文件
6. 由debug状态改成release状态
在Xcode中 product—> Scheme—>Edit Scheme—>info
7. 修改iOS更新版本号:
在xcode中选中项目——》General
8.检查证书配置:
主要检查证书是不是发布证书。
由于我的Xcode 版本大于11,所以我的选择的是Apple Development和Apple Distribution
9. 配置.entitlements
OK,iOS打包前的准备工作终于搞完了,心里不由的想说一句wc,这比Android 打包麻烦了一万倍,而且这个还不包括创建证书和配置等问题。要钱的东西真麻烦。后面在补一篇iOS发布流程。