1. 生成打包所需的jsbundle文件
$ react-native bundle --entry-file index.ios.js --platform ios --dev false --bundle-output ./ios/bundle/index.ios.jsbundle --assets-dest ./ios/bundle
2. 在xcode中添加assets和index.ios.jsbundle【必须用Create folder references的方式添加,添加完是蓝色文件夹图标】
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"index.ios" withExtension:@"jsbundle"];
3. xcode中进行打包
– 在Xcode中设置发布使用的 Signing ;
– 选择“Product”->”Edit Scheme…”打开界面,在“Run” – “Info” – “Build Configuration” 中选择“Release”,单击”close”;(也可以不设置,发布正式版本,会自动切换到 Release)
– 选择菜单栏中的”Product”->”Archive”进行打包;
4. 打包成功会出现ipa安装包的列表,选中要导出的包名,“export”导出 ipa 文件。
– 选择 ipa 安装包的发布方式,不同的发布方式,在打包的时候选择的 Signing 的 Provision ProfileProfile 是不一样的
– – App Store 是要上传到 iTunes Connect 中到,需要注意:
在“我的App”中,添加创建的App信息,上传的屏幕快照需要设置成“不透明”和“没有使用 alpha 通道的” 在“用户和职能”中,添加用户,开发人员选择“开发人员”类型,添加邮箱,这样上传过程中有什么提示信息就会发送到你的邮箱,方便快速发现问题处理问题。 App Store Icon 和屏幕截图,需要设置成“不透明”和“没有使用 alpha 通道的”,否则提示上传成功但是在 iTunes Connect 中不显示。
– – Ad Hoc 是用来导出真机测试生产版本的
导出后,可以使用 pp助手 安装到真机上进行测试
5. 查看 Archive 成功的 ipa 文件列表,在 “Window” – “Organizer”
如果要打包或者在真机上运行一个APP,一般要经历以下三步:
- 首先,需要指明它的 App ID,并且验证 Bundle ID 是否与其一致;
- 其次,需要证书对应的私钥来进行签名,用于标识这个APP是合法、安全、完整的;
- 然后,如果是真机调试,需要确认这台设备是否授权运行该APP。
苹果开发者中心 设置证书 和 profile 和设备信息。
iTunes Connect 设置要上传的 App 的信息。
名词解释:
- 开发者账号
分为个人(Individual)、公司组织账号(Company/Organization)、企业账号 (Enterprise)、教育账号(University)。
个人账号只能有一个开发者。100个苹果的iOS设备UDID测试。
公司组织账号比个人多一些帐号管理的设置,可以设置多个AppleID,分4种管理级别权限,详细见备注。100个苹果的iOS设备UDID测试。但是申请时需要填写公司的邓白氏编码(D-U-N-S)。
企业账号不能发布到App Store,只能企业内部应用,苹果的iOS设备UDID数量不限制。
教育账号只能教育机构或学院内部使用。必须是苹果iOS开发者计划授权机构。
- App ID
App ID应该和Xcode中的Bundle Identifier是一致(Explicit)的或匹配(Wildcard)的。
- Device
Device就是运行iOS系统用于开发调试App的设备。每台Apple设备使用UDID来唯一标识。
iOS设备连接Mac后,可通过iTunes->Summary或者Xcode->Window->Devices获取iPhone的UDID(identifier)。
- iOS证书(certificate)
分为两类:Development和Production(Distribution)。
Development证书用来开发和调试应用程序;
Production主要用来分发应用程序(根据证书种类有不同作用)。
通过钥匙串(Keychain)来管理证书,添加证书后会新增一对非对称密钥对 Public/Private Key Pair,keychain将生成一个包含开发者身份信息和公钥的CSR(Certificate Signing Request)文件——CertificateSigningRequest.certSigningRequest。
私钥 private key 始终保存在Mac OS的Keychain Access中,用于签名(CodeSign)对外发布的App;公钥public key一般随证书(随Provisioning Profile,随App)散布出去,对App签名进行校验认证。
- Provisioning Profile
在网站上手动创建一个Provisioning Profile时,需要依次指定App ID(单选)、证书(Certificates,可多选)和设备(Devices,可多选)。
Provisioning Profile决定Xcode用哪个证书(公钥)/私钥组合(Key Pair/Signing Identity)来签署应用程序(Signing Product),并将在应用程序打包时嵌入到.ipa包里。
安装应用程序时,Provisioning Profile文件被拷贝到iOS设备中,运行该iOS App的设备通过它来认证安装的程序。
Provisioning Profile分为Development和Distribution两类,有效期同Certificate一样。Distribution版本的Provisioning Profile主要用于提交App Store审核,其中不指定开发测试的Devices(0,unlimited)。