react native之ios打包ipa
2017-11-25 00:00
225 查看
http://www.cocoachina.com/ios/20170511/19250.html
http://reactnative.cn/post/3600
参数:
--entry-file :ios或者android入口的js名称,比如index.js
--platform :平台名称(ios或者android)
--dev :设置为false的时候将会对JavaScript代码进行优化处理。
--bundle-output,:生成的jsbundle文件的所在目录和名称,比如 ios/ios.jsbundle。
在当前项目中,输入上面命令,然后根目录下的release_ios文件中生成了bundle包和assets资源
![](https://static.oschina.net/uploads/space/2017/1226/163614_gn2V_3112095.png)
![](https://static.oschina.net/uploads/space/2017/1226/170045_9Y2F_3112095.jpg)
添加到项目里,如下
![](https://static.oschina.net/uploads/space/2017/1226/170536_5JQj_3112095.jpg)
上述代码的作用是让React Native去使用我们刚才导入的jsbundle,这样以来我们就摆脱了对本地nodejs服务器的依赖。
提示:如果在项目中使用了CodePush热更新,那么我们需要就可以直接通过CodePush来读取本地的jsbundle,方法如下:
http://reactnative.cn/post/3600
第一步:导出js bundle包和图片资源
先进入项目根目录release_ios文件夹react-native bundle --entry-file index.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/
参数:
--entry-file :ios或者android入口的js名称,比如index.js
--platform :平台名称(ios或者android)
--dev :设置为false的时候将会对JavaScript代码进行优化处理。
--bundle-output,:生成的jsbundle文件的所在目录和名称,比如 ios/ios.jsbundle。
在当前项目中,输入上面命令,然后根目录下的release_ios文件中生成了bundle包和assets资源
![](https://static.oschina.net/uploads/space/2017/1226/163614_gn2V_3112095.png)
第二步:将js bundle包和资源导入到iOS项目中
这一步我们需要用到XCode,选择assets文件夹与main.jsbundle文件将其拖拽到XCode的项目导航面板中即可。![](https://static.oschina.net/uploads/space/2017/1226/170045_9Y2F_3112095.jpg)
添加到项目里,如下
![](https://static.oschina.net/uploads/space/2017/1226/170536_5JQj_3112095.jpg)
3、修改项目中BundleURL
修改AppDelegate.m的定向URL,需要注意的是名字要跟你生成的jsbundle的名字一致。// jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
上述代码的作用是让React Native去使用我们刚才导入的jsbundle,这样以来我们就摆脱了对本地nodejs服务器的依赖。
提示:如果在项目中使用了CodePush热更新,那么我们需要就可以直接通过CodePush来读取本地的jsbundle,方法如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURL *jsCodeLocation; #ifdef DEBUG jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; #else jsCodeLocation = [CodePush bundleURL]; #endif ... return YES; }
相关文章推荐
- iOS利用(Shell脚本)自动打包项目工程生成ipa
- iOS 打包ipa~Apple方式
- IOS 如何打包XCODE编译后的APP成IPA格式
- iOS 打包程序生成 .ipa文件, 生成可内部测试的二维码(使用x-code7.0)
- Jenkins学习——将IOS代码打包为IPA文件
- iOS开发_打包ipa_可运行在越狱手机
- ios打包ipa的四种方法
- iOS打包(ipa包)
- 【iOS越狱开发】如何将应用打包成.ipa文件
- ios打包应用程序,生成ipa文件
- Cocos2d-x3.0 iOS 一键编译多个target并打包ipa
- [iOS 自动打包]shell脚本使用-ipa_build 脚本使用
- iOS打包为ipa的两种方式和生成P12证书的方式
- iOS 打包ipa的方法
- iOS 打包ipa后无法收到推送消息的解决方法
- Unity3D研究院之IOS全自动打包生成ipa(六十八)
- iOS打包生成ipa的几种方式
- IOS发布,Archive打包,ipa不用发布安装到任意机子上
- 记一次iOS自动化打包走过的坑-关于React Native-iOS项目
- ios打包ipa的四种实用方法(.app转.ipa)