当我们开发完一个应用,就到了发布到市场的时候,Android的打包比较简单,签名之后可以放在我们自己的服务器上,让用户扫描二维码来下载,而苹果的就比较麻烦了,如果内测可以通过蒲公英等内测分发平台,但是这个时候使用的证书是开发证书,只有在profile里注册过uuid的设备才可以安装。如果想让所有使用苹果的用户都可以安装我们的APP,只有发布到App Store。
发布ionic应用到App Store的步骤:

1:打开Mac电脑的Xcode,注意beta版的Xcode是不能上传应用到app store的。
登录你的apple id开发者账号。如果是企业账号($99),最后的发布只能使用角色为agent的企业账户来发布。如果是个人账户,个人即为agent,team也就是个人的名字。一个开发者账户可以是多个企业账户team的开发人员,同样一个企业账户的team可以有多个角色为admin的开发人员,admin没有agent的权限多。
其实apple的证书并不复杂,就这么几种:identify certificates是带有钥匙串的唯一性证书,provisioning profile是包含identify和app id,device这些信息在一起生成的一个综合信息证书,app id是app的唯一标识。
如果只是发布,打开Xcode的preferences\account,登录agent账户,点击manage certificates,点击+号,选择app store,会自动生成production版本的identify certificates,keychain也会自动生成。

之后在苹果开发者中心网站创建app id:

这个explicit app id应该和你的ionic 项目config.xml文件里的id一致。
然后去生成provisioning profile,非常简单,选择一下app id 和identify certificates,生成之后点击下载,双击下载之后的文件,就会自动打开Xcode,这时候证书就全部在Xcode里面了,或者点击preferences\account的download all profiles也可以自动将证书在Xcode里下载好。

2:在你的ionic项目执行:ionic cordova build iOS –release,如果失败,可以先build一个普通版本,到xcode里把证书选上,之后再回来build。
成功之后在xcode里打开你的项目路径下面的platforms\ios\xxxxx.xcodeproj文件:

Bundle Id应该和你的ionic项目的id一致。
Signing选项下面会自动出现Xcode里面所有可用的profile文件,选择好你刚才创建的那个用于发布的profiles,xcode会自动的找到这个profile对应的signing certificate。
这些信息都填好没有错误之后,点击product\scheme\edit scheme选择release:

然后点击Product\Archive生成.ipa文件:

生成成功之后,选择export,导出.ipa文件到你的mac。在Xcode\Open Developer Tool\Application Loader里登录开发者账号(和你在ITunes Connect里登录的一致),点击Deliver Your App打开这个ipa文件:
这里注意,如果不是发布,而是想在蒲公英等内测分发平台发布,用来内测,将这个.ipa文件上传到蒲公英你的账号就可以了。不过export的时候注意不要选择App Store 模式,而要选择 Ad Hoc模式。而且你在生成开发证书profile选择设备的时候要将声明过udid的设备选择进来才能在这些设备安装内测版本的app。

然后就可以开始上传你的app 到App Store了,大概需要半个小时的时间。

3:在开发者中心(developer.apple.com)登陆开发者账号,选择iTunes Connect,这个iTunes Connect是用来管理app store的app信息和提交,更新,分析的地方
进入之后,选择My Apps

点击+号,新建一个APP,填上所有需要的信息,如果刚才使用Application Loader上传的app成功了的话,你可以在活动里看到你构建版本的记录:

如果这里没有记录,说明上传没有成功。注意在ios10因为苹果加强了用户权限管理,你需要在plist文件里声明你需要用到的camera,contacts,bluetooth等等,最好把基础的全部声明,防止上传失败。

如果有记录,在ios准备提交的页面,构建版本旁边会有+号,点击选择你上传的版本,会出现图标和上传时间。

之后把所有的信息填好,点击存储,提交进入审核就可以进入审核阶段了。

转《发布ionic应用到App Store的完整步骤 》的更多相关文章

  1. 转《在浏览器中使用tensorflow.js进行人脸识别的JavaScript API》

    作者 | Vincent Mühle 编译 | 姗姗 出品 | 人工智能头条(公众号ID:AI_Thinker) [导读]随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升.在 ...

  2. face-api.js:一个在浏览器中进行人脸识别的 JavaScript 接口

    Mark! 本文将为大家介绍一个建立在「tensorflow.js」内核上的 javascript API——「face-api.js」,它实现了三种卷积神经网络架构,用于完成人脸检测.识别和特征点检 ...

  3. TensorFlow.js之安装与核心概念

    TensorFlow.js是通过WebGL加速.基于浏览器的机器学习js框架.通过tensorflow.js,我们可以在浏览器中开发机器学习.运行现有的模型或者重新训练现有的模型. 一.安装     ...

  4. 在Java中直接调用js代码(转载)

    http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...

  5. 第十一章:WEB浏览器中的javascript

    客户端javascript涵盖在本系列的第二部分第10章,主要讲解javascript是如何在web浏览器中实现的,这些章节介绍了大量的脚本宿主对象,这些对象可以表示浏览器窗口.文档树的内容.这些章节 ...

  6. 在Java中直接调用js代码

    JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...

  7. TensorFlow.js入门(一)一维向量的学习

    TensorFlow的介绍   TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着 ...

  8. JavaScript权威指南--WEB浏览器中的javascript

    知识要点 1.客户端javascript window对象是所有客户端javascript特性和API的主要接入点.它表示web浏览器的一个窗口或窗体,并且可以用window表示来引用它.window ...

  9. 解决webkit浏览器中js方法中使用window.event提示未定义的问题

    这实际上是一个浏览器兼容性问题,根源百度中一大堆,简要说就是ie中event对象是全局变量,所以哪里都能使用到,但是webkit内核的浏览器中却不存在这个全局变量event,而是以一个隐式的局部变量的 ...

  10. JS Date当前时间:获取日期时间方法在各浏览器中的差异

    转自:http://www.feiesoft.com/00047/<script type="text/javascript"> // JS Date当前时间获取方法在 ...

随机推荐

  1. 2017-2018-2 20155314《网络对抗技术》Exp2 后门原理与实践

    2017-2018-2 20155314<网络对抗技术>Exp2 后门原理与实践 目录 实验要求 实验内容 实验环境 预备知识 1.后门概念 2.常用后门工具 实验步骤 1 用nc或net ...

  2. ucml JS调用其它页面上的服务端方法

    var params = { _bpoName: "BPO_KH_ED" + "Service", //BPO的名字(拥有那个服务端函数的BPO) _metho ...

  3. LBS

  4. Spark学习之JavaRdd

    RDD 介绍 RDD,全称Resilient Distributed Datasets(弹性分布式数据集),是Spark最为核心的概念,是Spark对数据的抽象.RDD是分布式的元素集合,每个RDD只 ...

  5. zookeeper入门之Curator的使用之几种监听器的使用

    package com.git.zookeeper.passwordmanager.listener; import java.util.ArrayList; import java.util.Lis ...

  6. AI 信息论

    信息论,主要用于量化信息. 事件发生的概率越大,包含的信息就越少.例如“太阳从东边升起”,信息量就很少. 1.自信息(self-information) 两个独立事件发生所包含的信息,等于各自发生包含 ...

  7. ARM架构相关学习归纳总结

    ARM作为一个生态不仅提供了CPU Core,还提供了一系列相关的IP,比如GIC.MMU.AMBA.CoreLink.CoreSight.Mali等等. 其他还包括Debug工具.开发工具.IDE等 ...

  8. LiveCharts文档-4基本绘图-2基本柱形图

    原文:LiveCharts文档-4基本绘图-2基本柱形图 4基本绘图-2基本柱形图 using System.Windows.Forms; using LiveCharts; using LiveCh ...

  9. C# 枚举基本用法及扩展方法

    没什么好说的,都是些基础! 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; usi ...

  10. openMP多线程编程

    OpenMP(Open Muti-Processing) OpenMP缺点: 1:作为高层抽象,OpenMp并不适合需要复杂的线程间同步和互斥的场合: 2:另一个缺点是不能在非共享内存系统(如计算机集 ...