iOS从证书申请到打包发布
参考链接:
申请证书:http://blog.csdn.net/jingyipo/article/details/51596135
上架流程:http://blog.csdn.net/yjxommm2005/article/details/72842249
证书必备:
首先要准备好“苹果全球开发者关系证书”(我的电脑上已有)
在苹果开发者后台申请证书之前,还需要准备CSR文件,(我之前在弄真机调试时已经在桌面保存的有0816CertificateSigningRequest.certSigningRequest)
生产证书(未获取)由于有申请个数限定,要用时再申请吧
已申请ios_development.cer
App ID (也就是Xcode中的boundle ID)这个我也有com.aidongsports.gmfClient
授权文件(没弄)
已弄aps.cer
distribution(名字:GMFProfileDistribution.mobileprovision)
科普相关证书概念:
Cirtification证书:是对电脑开发资格的认证,分为两种:
Developer Certification(开发证书):安装在电脑上提供权限,开发人员通过设备进行真机调试,可以生成副本供多台电脑安装。
Distribution Certification(发布证书):安装在电脑上提供发布iOS程序的权限,开发人员可以制作测试版和发布版的程序
打包步骤:
一、导出js bundle 包和图片资源
在根目录新建release_ios文件
执行命令
其中我们常使用的一线命令选项:
--entry-file ,ios或者android入口的js名称,比如index.ios.js
--platform ,平台名称(ios或者android)
--dev ,设置为false的时候将会对JavaScript代码进行优化处理。
--bundle-output, 生成的jsbundle文件的名称,比如./ios/bundle/index.ios.jsbundle
--assets-dest 图片以及其他资源存放的目录,比如./ios/bundle
react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output release_ios/main.jsbundle --assets-dest release_ios/
生成了这样的目录
二、将js bundle包和图片资源导入到iOS项目中
这一步我们需要用到XCode,选择assets文件夹与main.jsbundle文件将其拖拽到XCode的项目导航面板中即可
拖动的时候选择这个。。。
修改AppDelegate.m文件:
注意对应自己的jsbundle的名字
//jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil];
jsCodeLocation = [[NSBundlemainBundle]URLForResource:@"main"withExtension:@"jsbundle"];
到目前为止呢,我们已经将js bundle包和图片资源导入到iOS项目中,接下来我们就可以发布我们的iOS应用了。
三、发布iOS应用
设置release模式,在Xcode左上角
在release下,运行,控制台就不会打印语句,项目上线可节约内存。
Archive 时报错
ld: bitcode bundle could not be generated because '/Users/steven/Projects/gmfPro/gmfPro/gmfPro/node_modules/react-native-baidu-map/ios/lib/BaiduMapAPI_Radar.framework/BaiduMapAPI_Radar(BMKRadarOption.o)' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build file '/Users/steven/Projects/gmfPro/gmfPro/gmfPro/node_modules/react-native-baidu-map/ios/lib/BaiduMapAPI_Radar.framework/BaiduMapAPI_Radar' for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决办法: