iOS APP上架流程详解

2023-11-05

iOS APP上架流程详解

前言:作为一名 iOS 开发工程师, APP 的上架是必备技能.

iOS 上架的流程主要可以简单总结为:

一个包,两个网址,三个证书,

一个包: iPA 包,上架用的.

两个网址:1>https://itunesconnect.apple.com

              2>https://developer.apple.com

三个证书:

1>签名证书.(MAC 电脑钥匙串生成)

2>制作发布证书.(签名证书+开发者账号)

3>制作 PP 证书.(发布证书+ App ID)

详细步骤:

一、在电脑上创建一个证书请求文件(签名证书)

首先,打开应用程序->实用工具->钥匙串访问(KEY CHAIN),如下图所示:

在证书助理中,选从证书颁发机构请求证书:

应用程序-实用工具-钥匙串访问

当然,也可以Launchpad->其他->钥匙串访问

钥匙串访问.png

在证书助理中,选从证书颁发机构请求证书:

钥匙串访问证书助理.png

点击从证书颁发机构申请证书,进入如下界面:

证书信息.png

注意:

1> 电子邮件地址: 填写你申请开发者账号的电子邮件地址

2> 常用名称: 默认就好

3> CA电子邮件地址: 空

4> 请求存储到磁盘(到时可以选择保存到桌面,方便找到使用)

点击继续,来到以下界面

保存.png

点击存储,将请求文件保存到了桌面上

桌面上的签名证书.png

此时,在桌面上就可以看到一个CertificateSigningRequest.certSigningRequest的证书请求文件(CSR文件)。

注意: CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字。

双击CSR文件,安装签名证书

安装证书请求文件.png

点击继续,选择为您自己创建证书

创建证书.png

再点击继续

创建您的证书.png

点击创建,制作自签名根证书

制作自签名根证书.png

点击继续,证书成功创建

成功创建证书.png

签名算法: 带 RSA加密的 SHA-256公共密钥信息: RSA 加密,公共密钥256字节

二. 制作发布证书

2.1 前期准备工作

首先,需要具备以下条件

1> 苹果的开发者账号

2> Mac操作系统

3> Xcode(这里使用的是Xcode7.3正式版)

如果没有账号,可以打开http://developer.apple.com/注册苹果的开发者帐号。开发者帐号具体申请流程,这里不再细述。

如果已经有开发者账号,打开http://developer.apple.com/

开发者网站新首页.png

点击Account,进入到苹果 MemberCenter 的登录界面,如下:

登录界面.png

输入自己的开发者账号,登录,进入如下界面:

开发者账号首页.png

2.2 发布证书的制作

点击Certificates,Identifiers&Profiles,进入如下界面:

添加证书界面.png

点击右上角的加号按钮,然后选择Production -> App Store and Hoc

选择制作发布证书.png

点击Continue

CSR文件.png

由于CSR文件已经创建好,直接点击Continue,然后上传 CSR 文件

生成你的证书.png

点击Choose File,选中在Mac上配置的请求文件

选中请求文件.png

点击Continue,这个时候,发布证书已经制作完毕

发布证书制作完毕.png

点击Download,这时就有了一个 .cer 证书文件`ios_distribution-8.cer

发布证书文件

`

双击安装证书(如果安装不上,可以直接将证书文件拖拽到钥匙串访问的列表中)

证书已经安装到钥匙串.png

三、制作Provisioning Profiles证书(简称PP证书)

到目前为止,上架所需要的证书还不齐全,想提交AppStore,还需要PP证书。

1> PP证书分为 开发用的PP证书 和 发布用的PP证书,这里我们制作的是 发布用的PP证书

2> 制作 PP 证书,需要 App ID 和 发布证书(发布证书在上一步已经做好了)

3.1 申请 App ID

选择 App IDs

选择App IDs.png

然后点右上角的加号,创建一个新的 App ID

Snip20160426_36.png

注意: 这里有两项需要我们自己填:

1> 第一项'Name',用来描述你的'AppID',这个随便填,没有什么限制,最好是项目名称,这样方便自己辨识(不允许包含中文);

2> 第二项'Bundle ID (App ID Suffix)',这是你'App ID'的后缀,这个需要仔细填写。因为这个内容和你的程序直接相关,后面很多地方都要用到,最好是'com.yourcompany.yourappname'的格式,说白了,就是用项目中的Bundle ID(这样是最保险的)。

选择你的app中需要的服务

App Services.png

注意:

1> wildCard格式的证书没有推送,PassCard等服务的应用,慎重选择。

2> 有一个区别,因为PP证书的开发者证书需要真机调试,所以我们需要绑定真机,如果没有的话,需要将真机的udid复制出来在此添加,在发布PP证书中,是没有这一步的。

点击Continue,进入如下界面

确认你的App ID.png

确认 App ID信息,如果无误,点击Register

注册完毕.png

点击Done,这时 App ID就申请成功了

Test888

3.2 制作发布用的PP证书

点击 Provisioning Profiles,然后点击右上角的加号

发布PP证书.png

点击Continue,如图,选择我们自己的 App ID

选择自己的App ID.png

点击Continue,选择发布证书

选择发布证书.png

点击Continue,如图,给PP证书起个名字

给PP证书命名

点击Continue,如图,PP证书制作完毕

PP证书制作完毕.png

点击Download将PP证书下载下来,如图

证书.png

双击PP证书,将其添加到Xcode中

四、配置项目环境

4.1 Account的配置

Xcode ->Preferences->Account,如图

Account配置界面.png

1> 点击+可以选择Add Apple ID;

2> 点击View Details可以查看该Apple Id下的Certificates和Provisioning Profile证书文件,在这里你可以点击下载。

View Details界面.png

4.2 项目配置

在项目Targets下的Identity中,Team选择对应的Apple ID 即可

选择对应的Apple ID.png

在Xcode的项目设置里,Provisioning Profile就可以选择对应的证书。

选择对应的PP证书.png

到此为止,前期的准备工作就做完了。

五、ipa打包

5.1 Archive在线打包

在真机状态下选择Product->Archive(如果不是真机状态下,Archive会是灰色不可用的),成功会弹出如下图:

操作步骤.png

Archive在线打包成功后返回的界面.png

1> Validate表示验证,Export表示导出.

2> 建议先点击Validate进行验证,验证的过程有点慢,但是为了审核顺利点,还是验证下为好。

3> 验证成功后点击Export导出ipa的包用与上传即可。

导出ipa.png

Test888.ipa.png

六、ipa提交App Store

6.1 在 iTunes中创建程序

选择 iTunes Connect

iTunes Connect.png

进入iTunes Connect网页.png

进入 iTunes Connect 网页

iTunes Connect首页.png

打开我的App,然后点击左上角的加号,新建 App

新建App.png

弹出以下界面,设置 App信息

App信息.png

1> 名称:指的是App上架后,显示在App Store中的名称

2> 主要语言:SimplifiedChinese(简体中文)

3> 套装ID: Test888-com.iOS.www.*      就是之前申请的 App ID4> 套装ID后缀: Test888      后缀就是Xcode中的 Bundle Identifier 最后一个点后面的内容(本例中是 Test888)5> SKU: 可以使用项目中的 Bundle Identifier

点击创建

App信息界面.png

价格与销售范围,根据app不同自己填写

价格与销售范围.png

设置完App信息,点击准备提交,进入如下界面

准备提交界面.png

设置App预览和屏幕快照

屏幕快照.png

注意:

1> 这里需要不同屏幕的截图,可以直接用模拟器运行后截图。待模拟器运行开始的时候,按住cmd+S, 模拟器的屏幕截图就直接保存在桌面上了

2> 每种尺寸的屏幕截图必须是在模拟器100%的比例下进行截取。否则会报错。

3> 上传的时候会提示“无法载入文件”的问题。原因是:截图保存的文件名有中文,修改下截图名称即可!

4> 屏幕尺寸大家都可以查到,为了自己方便,简单备注下:4.7英寸 -> iPhone6/s5.5英寸—>iPhone6/s Plus4英寸 —>iPhone5S3.5英寸 —> iPhone4S

设置App描述和关键字

App描述和关键字.png

1> 描述: 对App进行简要介绍,让用户快速了解App的基本功能

2> 关键字: 用户可以通过这些关键字找到App

3> 技术支持网址

4> 营销网址

设置App 综合信息

App综合信息.png

注意:

1> 上传App Icon的时候,需要上传1024*1024的,而且不能有圆角效果和透明效果!

2> 点击编辑,设置分级,需要根据app的实际情况来设置

3> 版权,app的所有者和获利时间

App 审核信息

App审核信息.png

注意: 审核信息,必须填写

设置版本发布选项,本例选择的是手动发布

版本发布选项.png

提交构建版本,打开Xcode,上传应用程序包

上传应用程序包.png

正在上传.png

等上几分钟

上传成功.png

有两种方式:

1> Xcode6或更高版本

2> Application Loader3.0或更高版本提交构建版本

回到 iTunes  Connect网页,选择构建版本

选择一个需要上架的构建版本.png

点击提交以供审核

最后的确认信息.png

1> 出口合规信息: 如果使用了加密,选择『是』,否则选『否』

2> 内容版权: 包含了第三方的东西,就选『是』,否则选『否』

3> 广告标识符(IDFA): 这个一定要选对,选错了会导致二进制文件永久被拒,需要重新提交二进制文件。

点击提交

等待审核.png

到此,整个 App 上架流程就演示完了!

如有不足, 欢迎评论指正.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS APP上架流程详解 的相关文章

  • Shader_Properties参数,开关相关

    Shader的Properties块一般与检视面板打交道 主要分三种类型 属性 Name Display Name type defaultValue options Name Display Name type defaultValue
  • 使用c++实现通讯录管理系统

    使用c 实现通讯录管理系统 系统中主要实现的功能如下 1 添加联系人 2 显示联系人 3 删除联系人 4 查找 5 修改 6 清空 7 退出通讯录 添加联系人 姓名 性别 年龄 联系电话 家庭住址 以下步骤 1 设计联系人结构体 2 设计通
  • C++ 内存共享/软件守护

    功能描述 在无人看守的情况下 防止软件意外退出 接口调用简单 只需要简单声明就行 int main int argc char argv QShareProcess shareProcess 共享内存名称随意 下面实现自己的主体代码即可 类
  • 用python把csv中的数据存入到mysql

    前言 第一次写博客 我也不知道怎么写 想写点东西 就随便写写 0 0 0 0 我在网上搜这个问题的解决办法 给出的答案感觉不是很理想 所以写这篇 随便作为开头 说明 数据 csv文件中 是通过python的faker库 和random随机生
  • C++实现希尔(shell)排序

    先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序 待整个序列中的记录 基本有序 时 再对全体记录进行依次直接插入排序 include
  • 大话设计模式—策略模式

    在策略模式 Strategy Pattern 中 一个类的行为或其算法可以在运行时更改 这种类型的设计模式属于行为型模式 大话设计模式中程杰老师给出的定义是这样的 策略模式 Strategy 定义了算法家族 分别封装起来 让它们之间可以互相
  • 用ATL写简单的ActiveX控件

    我正在做的项目需要用读卡器来读数据 由于系统是B S架构的 所以只能把读卡器的驱动封装成一个无界面的ActiveX控件 这样web页面中的js代码才能访问读卡器 其实做起来也挺简单的 我用的环境是VS2005 步骤如下 打开VS2005后
  • lua中json和table互转

    本文本摘自 GitHub rxi json lua A lightweight JSON library for Lua table转为json json encode 1 2 3 x 10 Returns 1 2 3 x 10 json转
  • python把dataframe回写到mysql和pg库

    def pyWriteToMysql data df db param table name try connect url mysql pymysql db param get username db param get password
  • ofstream和ifstream详细用法

    ofstream是从内存到硬盘 ifstream是从硬盘到内存 其实所谓的流缓冲就是内存空间 在C 中 有一个stream这个类 所有的I O都以这个 流 类为基础的 包括我们要认识的文件I O stream这个类有两个重要的运算符 1 插
  • 树04--从上往下打印二叉树

    树04 从上往下打印二叉树 jz22 题目概述 解析 参考答案 注意事项 说明 题目概述 算法说明 从上往下打印出二叉树的每个节点 同层节点从左至右打印 测试用例 输入 5 4 3 2 1 输出 5 4 3 2 1 解析 参考答案 解析 从
  • 信息学奥赛一本通 1184:明明的随机数

    文章目录 1 排序 手动去重 2 排序 unique去重 3 利用桶的思想 题目链接 http ybt ssoier cn 8088 problem show php pid 1184 1 排序 手动去重 include
  • Linux下安装jdk

    1 检测是否安装了jdk 运行命令 java version 2 查看安装了哪些jdk 运行命令 rpm qa grep java 3 若有需要将其卸载 rpm e nodeps 卸载的包 例如 rpm e nodeps java 1 7
  • Java 的 VO类

    今天 遇到一个操作 要在页面上查看一些固定的信息 用到了VO类和 从内存中加载数据 下面说一下 VO类 首先 java有几种对象 PO VO DAO BO POJO 一 PO persistant object 持久对象 可以看成是与数据库
  • Xcode升级后出现 unable to create '/Users/XXX/Library/Developer/Xcode....'的错误

    今天把Xcode从3 6升到了4 2 但是运行原本没有错误的工程的时候发现出现了N多错误 类型大致如题目所示 解决方法 打开实用工具 shift command U 然后打开终端 输入 sudo chmod R 777 Users XXX
  • 在el-select多选框里面设置input搜索框并能实现搜索功能

    效果 1 当在输入框里面输入内容时就开始进行筛选 下拉框显示筛选之后的数据 2 当没有符合条件时 显示无数据 3 清空输入框里面的内容后 下拉框显示全部的数据 思路 1 通过给搜索框设置oninput事件 oninput 当input的va
  • 在jupyter notebook中安装R核心

    在jupyter notebook中安装R核心 1 从R官网安装R language https www r project org 点击Download下面的CRAN 找到China 中国镜像站 任意选择一个就好 这里推荐第一个清华镜像
  • java.io.IOException: Stream closed解决办法

    1 出现这个bug的大体逻辑代码如下 1 private static void findMovieId throws Exception 2 File resultFile new File C 2016 txt 3 4 OutputSt
  • RESTful 风格详解

    一 什么是Restful风格 1 1 概念 RESTFUL是一种网络应用程序的设计风格和开发方式 基于HTTP 可以使用 XML 格式定义或 JSON 格式定义 最常用的数据格式是JSON 由于JSON能直接被JavaScript读取 所以

随机推荐

  • 任务列表 php,Laravel入门教程实战:任务列表(基础版)

    1 介绍 该快速入门指南提供了Laravel框架的基本介绍 包含了数据库迁移 Eloquent ORM 路由 验证 视图 Blade模版等内容 如果你是Laravel框架或者PHP框架的新手 这将是一个很好的起点 如果你已经在使用Larav
  • <数据结构>单链表基本功能实现

    文章目录 前言 一 单链表实验 二 使用步骤 1 链表基本功能 2 代码功能实现 总结 前言 提示 本篇主要是本小白大学期间对数据结构实验的一些基本代码功能实现 希望对一同数据结构的伙伴有所帮助 提示 以下是本篇文章正文内容 下面案例可供参
  • LINGO求解规划问题代码

    文章目录 线性规划 标量线性规划 矩阵线性规划 非线性规划 无特殊限制 整数规划 01规划 写在开头 LINGO默认所有变量是非负的 LINGO中没有严格的 lt 和 gt lt 代表 lt gt 代表 gt LINGO不区分变量的大小写
  • CentOS7.6 编译安装LNMP+Zabbix5.0

    一 服务器信息 操作系统 CentOS Linux release 7 6 1810 Core 环境 内网环境 无公网出口 YUM源 本地yum MySQL版本 5 7 32 Nginx版本 nginx 1 22 0 PHP版本 php 7
  • 在前端vue项目引入less,使用less,在less引用外部文件,在less中使用变量

    在前端vue项目引入less 使用less 在less引用外部文件 在less中使用变量 一 less是什么 二 操作步骤 1 引入库 2 设置style的lang属性 3 使用less less 中的 calc 总结 一 less是什么
  • 不带头结点的单链表c语言,不带头结点的单链表的实现(C语言)

    不带头结点的单链表的实现 C语言 不带头结点的单链表的实现 C语言 链表中的数据是以结点来表示的 每个结点的构成 元素 数据元素的映象 指针 指示后继元素存储位置 元素就是存储数据的存储单元 指针就是连接每个结点的地址数据 以 结点的序列
  • Zabbix的模板管理与配置

    Zabbix的模板管理与配置 一 查看默认模板的配置项 1 打开客户端信息配置界面 2 选择默认模板的监控项 二 服务端获取客户端的监控项 1 获取客户端系统相关监控项 2 获取客户端硬盘信息等相关监控项 三 创建自定义监控项的key 1
  • unity的lineRenderer

    本文转载自 http blog csdn net zuoyamin article details 8997729 LineRenderer线渲染器主要是用于在3D中渲染线段 虽然我们也可以使用GL图像库来渲染线段 但是使用LineRend
  • MCP2515板级驱动

    MCP2515板级驱动 前言 一 MCP2515简述 二 硬件连接 三 驱动源码 前言 在需要多路CAN接口应用场景 可选方案一般为带CAN接口的协处理器或者是独立的CAN控制器 独立的CAN控制器常用的有SJA1000 MCP2515等
  • 工具、学习网站

    目录 图片处理工具 1 BgRemover 在线图片去底工具 2 Convertio 文件转换器 3 视频转音频 4 视频转 Gif 5 传图识色 6 本地图片在线存储引用 Image Upload 7 RGB CMYK 转换工具 各大工具
  • 单链表实现

    代码 编写程序实现单向链表数据结构 public class Node Object data Node next public class MyLinkedList Node header 添加数据的方法 删除数据的方法 修改数据的方法
  • 【精】【Java8】===两个List集合取交集、并集、差集

    业务场景 根据用户查询权限 入参 UserCode lastQueryTime 上次查询时间 出参 权限变化的列表 oldList 上次查询到的权限列表 currList 当前查询到的权限列表 比对两个list找出 移除和增加的权限加以标识
  • Idea登录Github invalid authentication data. 404 Not Found-Not Foun

    转发地址 点击我
  • 用git拉代码

    1 新建远程仓库 下载和安装git 傻瓜方式next 登录或注册账号 进入界面创建仓库 1 2添加ssh公钥并下载项目 用vscode打开随便建一个文件 1 3git创建分支和切换分支 相当于分支是队员们的一套代码 主支是组长的 队员在分支
  • Springboot Thymeleaf Html转Pdf

    新建项目 说明 用itextpdf写pdf 样式实在是太折磨了 这里选用Thymeleaf模板生成html转pdf html css写样式排版好太多了 引入依赖
  • python爬虫--beautifulsoup使用介绍

    简单来说 Beautiful Soup是python的一个库 最主要的功能是从网页抓取数据 官方解释如下 Beautiful Soup提供一些简单的 python式的函数用来处理导航 搜索 修改分析树等功能 它是一个工具箱 通过解析文档为用
  • 如何解决 Spring JPA @Table 和 @Column 失效的问题

    问题 下面的代码 我们使用 Spring JPA 作为数据库访问层 并且用 Table 和 Column 定义了表和列名 但是 Hibernate 给出的 SQL 语句并没有使用我们定义的名称 节点 Entity Table name No
  • 2021江苏连云港高考成绩查询时间,2021连云港市地区高考成绩排名查询,连云港市高考各高中成绩喜报榜单...

    距离2018年高考还有不到一个月的时间了 很多人在准备最后冲刺的同时 也在关心高考成绩 2018各地区高考成绩排名查询 高考各高中成绩喜报榜单尚未公布 下面是往年各地区高考成绩排名查询 高考各高中成绩喜报榜单 想要了解同学可以参考下 同时关
  • 实现vector--模板

    在这里 我把类函数定义与声明分开了 以下是类定义与类函数的声明 vector h pragma once include
  • iOS APP上架流程详解

    iOS APP上架流程详解 前言 作为一名 iOS 开发工程师 APP 的上架是必备技能 iOS 上架的流程主要可以简单总结为 一个包 两个网址 三个证书 一个包 iPA 包 上架用的 两个网址 1 gt https itunesconne