iOS证书申请打包上传App Store审核完整流程(7个步骤)

2023-11-15

上架基本需求资料

1、苹果开发者账号

2、开发好的APP

通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程!

上架App Store审核分7步进行。

1、安装iOS上架辅助软件Appuploader

2、申请iOS发布证书(p12)

3、申请iOS发布描述文件(mobileprovision)

4、打包ipa

5、上传ipa到iTunes Connect

6、TestFlight方式安装到苹果手机测试

7、设置APP各项信息提交审核

一、下载安装iOS上架辅助软件Appuploader

Appuploader下载链接

Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!

配合本教程使用,可以快速掌握如何真机测试及上架!

下载软件包后解压直接使用,无需安装。

java环境安装教程

Windows32位电脑 Mac电脑 linux电脑 需要点击appuploader.jar启动

二、申请iOS发布证书(p12文件)

发布证书用于上架,证书有p12及mobileprovision两个文件,配套使用,先申请p12!

2.1、用苹果开发者账号登录appuploader软件后,选择证书进入,点击右下角+ADD选择

类型:下拉选择 发布证书  ios distribution (app store and adhoc) 

证书名称:不要中文、不要太长了、随意设置

邮箱:随意

密码:证书的密码、比如设置123这样,不用很复杂,记好、打包时要用、很重要

应用ID:这里不用选

点击ok创建。

注意:iOS发布证书最多能申请3个,如果账号已经有3个发布证书了,将申请报错(如下图)

p12有数量限制,但可以公用! 也就是一个p12可以对应无数个描述文件(mobileprovision)组成无数套证书上架不同的APP!

可以使用之前申请的,也可以删掉之前的发布证书,重新创建,不会影响已上架的app。

2.2、创建成功后,找到刚创建的发布证书(iOS Distribution这个类型的就是发布证书,如果之前创建过看过期时间或者ID就知道哪个是新创建的了)!

点击p12 文件,下载保存.p12证书文件到电脑。

三、创建iOS发布描述文件(.mobileprovision文件)

3.1、点击右下角BACK、返回Appuploader首页,选择描述文件进去。

3.3、点击右下角+ADD,进入申请界面!

Type:下拉选择发布版profile

应用id:下拉选择对应的应用id(又称套装id,appid,BundleID,包名

新APP上架需要先添加一个新的应用id(每个APP对应一个应用id),如果已经加过了直接选择。

点击查看应用id添加教程(添加后返回本教程,继续上架流程)

证书:选中全部就行

Devices:发布版不用选设备

输入名称:不要中文,随意,123之类的就行,注意不要跟之前申请过的名称一样),点击ok创建。

3.4、选择刚创建的发布版描述文件(iOS Distribution这个类型的就是发布描述文件,找刚创建的输入的名称),点击Download下载,保存到电脑

申请到p12及mobileprovision这两个iOS证书文件即可去打包了!

四、iOS打包IPA

各开发者工具打包教程,根据自己使用的平台去打包,证书都是一样用。

这里介绍了几个平台的打包教程,对应自己使用平台的看看,没有写的平台如果不会可以问下技术支持。

开心App平台打包网站教程

HBuilder打包教程

APICloud打包教程

phonegap打包教程

xcode打包教程

APPcan打包教程

变色龙打包ipa教程

这里以HBuilder平台为例

4.1、打开HBuilder工具,选择开发好的项目,点击发行,选择发行为原生安装包。

4.2、选择iOS打包,支持的设备类型(可以选择支持iPhone和支持ipad),选择使用苹果证书

AppID:跟申请证书描述.mobileprovision时选择的要一致(又称套装id,appid,BundleID,应用id,包名)

profile文件:选择上传配置文件.mobileprovision

私钥证书:上传.p12文件

私钥密码:输入创建p12自己设置的密码。

然后点击打包。

4.3、打包成功后,下载保存ipa到电脑,进行下一步上传ipa到App Store后台。

五、上传ipa到App Store

5.1、上传ipa前先登录iTunes Connect,点击我的APP进入创建一个APP

https://itunesconnect.apple.com/login

5.2、进入点击左上角+号选择新建APP,选择平台iOS,

应用名称:APP的名称

语言:APP的语言,中文还是英文。

套装ID:(应用id、appid、包名,跟申请证书使用的要保持一致)

sku:不能写中文,自己用拼音随便编一个,好识别就行,如app叫淘宝,就输入taobao。

用户访问权限:选完全访问权限

创建APP,先进行下一步上传IPA文件,其他相关信息暂时不用填写

5.3、上传ipa之前先、配置上传专用密码

APP专用密码app-specific password是专门用于上传ipa文件的一种密码,是一种苹果的安全机制!

现在苹果开发者账号开启了双重认证,提交ipa文件时候都需要这个密码!

特点:

不会失效

可以生成多个(忘记了可以重新申请)

不同的APP上架通用(无需重复生成)

下面是生成步骤

1、首先打开apple id管理中心

管理你的 Apple ID

登录苹果开发者账号

2、登录进去后找到安全项目,点击生成专用密码。

密码标签随便输入,123,app等之类的都行。

点击创建生成,(注意密码标签不是专用密码,是由苹果系统生成的一串密码)专用密码就是下面这个样子的密码,把这个密码复制,打开Appuploader

如果是Appuploader软件进行上传ipa(Appuploader软件可以帮助在Windows电脑直接申请iOS证书和上传ipa)

打开AU软件点击右上角(下图箭头处),进入设置,把上传专用密码复制上去,同时勾选上保存密码点击Save保存,然后再回去提交ipa上传就可以正常上传了。、

5.5、选择刚打包的ipa包

5.5Appuploader将自动上传你的IPA,包如果很大需要上传一段时间,当出现以下提示时(packages were  uploaded successfully 进度条蓝色),说明上传成功。

如果进度条红色说明上传失败,通过下面的链接,找解决方案,或者加技术支持解答。

上传ipa常见错误解决方案

5.6上传成功后到后台查看上传的版本

packages were  uploaded successfully 进度条蓝色,ipa上传成功后,登录iTunes Connect  https://itunesconnect.apple.com/login后台查看上传的ipa

进入APP,点击活动,所有构建版本选项(下图所示)查看,有两种情况!

1、ipa包符合要求,显示正在处理,这种就是成功上传,等待处理即可,往后看教程进一步操作(根据包大小,一般处理几分钟到十几分钟)

2、ipa不符合要求,没有出现正在处理,或者刷新页面正在处理的版本消失

出现这种情况说明你上传的这个ipa包有问题,苹果会发送具体原因到邮箱(开发者账号就是邮箱地址,)

登录邮箱去查看反馈邮件(反馈邮件也可能在垃圾箱),修改错误重新再打包上传。

点击查看成功上传ipa但iTunes Connect后台没有构建版本详细说明

六、TestFlight方式安装到苹果手机测试

如果上架前之前打包测试过,可以不用测试了,跳过测试直接进行下一步提交审核!

测试的意义就是要自己先看下APP运行情况,是否有bug,各项信息有没有完善!

测试没问题再提交审核,不然提交审核通过不了也是浪费时间!

iOS真机测试因为篇幅过长单独写了教程,测试后返回本教程继续下一步提交审核!

TestFlight测试,直接测试刚上传到App Store后台的ipa版本!(需要在苹果手机安装TestFlight软件,并在App Store后台添加相关测试的苹果账号)

TestFlight真机测试安装教程

七、设置APP各项信息提交审核

7.1、ipa上传及测试后,配置App Store后台各项信息!

在App Store项,先选择第一项APP信息、需要设置两个地方。

隐私政策网址:可直接填写我们官网链接http://blog.applicationloader.net/blog/zh/3721.html或者自己的网站!

也可参考这个教程,做一份正规的隐私政策链接。

隐私政策链接模板教程

副标题:可写可不写

类别:根据自己APP类型选。

7.2、再选择左边的第二项价格与销售范围

价格时间表:免费APP就设置为免费、收费的app就根据情况设置价格。

销售范围:如果只是上架到中国就选中国、也可以全选所有地区,影响不大,设置好储存。

7.3、选择左边第三项准备提交进入、这个页面需要设置几项信息、一步一步来

先设置APP截图

打开真机测试时安装的app,截图你想展示的app页面(最多可以传10张,一般截图个三四张就行了)!

6.5寸(必须要)是x系列刘海屏iPhone手机截图(iPhone X、iPhone XS、iPhone XS Max、iPhone XR这些机型任选一个截就行,),尺寸为1242*2688,小屏x刘海屏手机截图的尺寸如有差别用ps调整下尺寸再上传!

如果没有苹果手机看下面教程p图上传

如果没有iPhone真机通过ps制作iPhone系列手机截图教程

5.5寸(必须要)则不是刘海屏的iPhone手机截图(iPhone5、6、7、8这些机型),尺寸为1242*2208,尺寸如有差别用ps调整下尺寸再上传!

12.9寸ipad截图(如app没支持ipad不用上传!),第二代、第三代尺寸都是2048 *2732!

app预览是视频的意思,可以不上传。

7.4、往下拉、设置app的宣传语、描述、关键词

宣传文本:APP的一句话介绍(如不知道怎么写,到App Store搜索同行的app参考)

描述:APP的详细介绍

关键词:搜索你app的关键词、可以设置多个,多个关键词用英文状态下的逗号隔开

技术支持网址:可以设置为公司网站个人网站,没网站直接设置我们的官网也行 http://www.applicationloader.net

7.5、点击构建版本旁边+号选择之前上传的版本、(如果没有出现+号请看下面的教程查看问题)

AU上传ipa成功但后台无构建版本问题

如果之前选择过版本了,要选新上传的包、移动鼠标到(下图红色圈圈处),点击红色删除键,重新点击+号选择版本。

7.6、App Store图标一般选择了ipa构建版本就会自动出现,不用设置!

版权按照格式设置,可以参考格式写。© +APP名称或者公司名称   如 ©  钜惠之家

版本是设置上架后显示的版本号,跟你上传的ipa版本号可以不用保持一致。

比如上传的ipa版本是2.1.0,版本那也是可以设置为1.0

然后点击分级的编辑按钮进入下一步设置

7.7、分级选项根据自己的app情况选择。

7.8、如果app有登录功能的一定要提供个账号给苹果审核测试,如果app没有登录的去掉打钩,

填写联系信息,注意电话格式前面加+86后面再写手机号。

7.9、各项信息如此就设置好了,存储好、点击提交以供审核、进去下一步。

7.10、这里出现的信息根据app的类型不同、有不同的选项、根据自己的app的情况选择

一般会出现3个选择

出口合规信息:一般选否

内容版权:一般选否

广告标识符:如果APP有投放广告的选是,没有选否

然后提交、显示为正在等待审核、耐心的等苹果公司那边审核了,初次提交1到2天出结果。

7.11提交审核回到我的APP查看会提示正在等待审核,审核有时很快一两天,或要几天时间,常登陆看看审核情况,或看邮件提示。

如果变成可供销售,恭喜你~上架成功了!

7.12、上架审核后续问题处理

当苹果返回审核结果后,如果是可供销售,说明上架成功了,刚上架的APP会在48小时内同步到App Store,如果暂时搜索不到耐心等下!

成功上架实例APP

https://itunes.apple.com/cn/app/id1388232144?mt=8

苹果APP上架成功后如何获取下载链接及二维码

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

iOS证书申请打包上传App Store审核完整流程(7个步骤) 的相关文章

  • 如何在 Xcode 8 中更改应用程序显示名称以添加空格

    我试图在 Xcode 8 中的应用程序名称 独立贴纸包 中添加一个空格 我在这里看到的解决方案是更改产品名称 在包装中 或更改 捆绑显示名称 我更改了产品名称 但没有起作用 我清理 重建 重置模拟器中的内容和设置 并注销 xcode 重新登
  • apple-app-site-association 从 azure 请求返回为 application/JSON

    我有以下要求 当在 Azure 网站中请求文件的 URL 时 根文件夹中的可用文件必须返回到 application JSON 举例来说 我有一个名为 apple app site association 的文件 它是一个文本文件 在 az
  • Xcode UI 测试 UIKeyInput typeText

    在 Xcode UI 测试期间 我该如何insertText for a UIView符合UIKeyInput 我创建了一个CodeInputView https github com acani CodeInputView符合UIKeyI
  • AVAudioPlayer 在 iPhone 5 中无法工作

    我正在开发一个 iPhone 应用程序 在这个应用程序中 我使用 AVAudioPlayer 来播放音频 这是我播放声音的代码 NSString resourcePath NSBundle mainBundle resourcePath r
  • iOS 版本中的 Twitter 个人资料屏幕是如何构建的?

    我想知道 Twitter 是如何实现其个人资料屏幕的 起初我以为它是一个带有标题 个人资料信息 和部分标题 用于选择推文 媒体 收藏夹的分段控件 的表格视图 这对我来说是有意义的 因为当用户向下滚动时 配置文件信息消失 但分段控件保留 而这
  • 越狱的 iOS 从后台应用程序截图

    我正在为自己构建一个实用程序应用程序 当该实用程序在后台运行时 它可以截取前台运行的任何内容的屏幕截图 该实用程序将在越狱设备上运行 因此它可以访问私有 API 而不受沙箱的限制 由于实用程序应用程序在后台运行 作为守护程序或使用后台程序
  • IOS - ObjC Google 地图 Api 密钥

    我只是按照上面提到的做对了一切here https developers google com maps documentation ios start adding the google maps sdk for ios to your
  • 如何分发我的应用程序的多个版本?

    我想分发我的应用程序的两个版本 稳定分支以及当前的开发主干 使用试飞 http testflightapp com 而且 如果可能的话 我只想邀请测试人员一次 我可以在一个 TestFlight 团队中拥有一个应用程序的两个版本吗 或者也许
  • WatchOS 应用程序未检测到配套的 iOS 应用程序

    我正在制作一个独立的Apple Watch应用程序 但有一个配套的iPhone应用程序 这对于手表应用程序的运行来说不是必需的 该应用程序使用手表连接如果安装了 iPhone 配套应用程序 则可以在设备之间同步数据 我可以打电话sessio
  • Gmail 应用程序中指向特定邮件的深层链接

    我成功地从 gmail api 获得了消息网址 https mail google com mail email protected cdn cgi l email protection all 155134b5e66a9b06 然而 当我
  • 如何设置 NSUserDefault Key 的初始值?

    我想为 NSUserDefault 键设置一些初始值 以便应用程序的第一次运行具有一些合理的初始设置 我以为我在应用程序包 plist 中遇到了一种简单的方法来执行此操作 但现在我找不到它 有任何想法吗 您应该使用registerDefau
  • iOS - 确保在主线程上执行[重复]

    这个问题在这里已经有答案了 我想知道如何打电话给我function on the 主线程 我如何确保我的function被称为主线程 这是继之前的question https stackoverflow com questions 1105
  • 模态转换风格就像邮件应用程序中一样

    我试图实现模态呈现效果 其中呈现的视图仅部分覆盖父视图 如下图所示 我知道我可以通过使用实现自定义转换来实现这一点UIPresentationController 我不想重新发明轮子 所以在继续开发之前我想问一下 API 中是否有对这种转换
  • 使用 'vendored_frameworks' 和 'source_files' 对于 cocoapod 使用 'use_frameworks!'

    我正在构建一个 cocoapod 它基本上包含一个框架 私有源 和一个依赖于该框架的视图 开源 所有这些都是用 Objective C 制作的 在 podspec 中我有以下几行 spec vendored frameworks MyPod
  • 如何在 iOS 模拟器上打开开发者工具?

    我想打开开发者工具在 iOS 模拟器上 我在 2016 款 MacBook 上执行了以下步骤macOS 塞拉利昂 10 12 1并且不知道如何进一步 我已经安装了 Xcode 我创建了一个新的游乐场 右键单击 Xcode 停靠栏图标 然后单
  • iOS 11.x 系统颜色

    我读过很多关于如何自定义视图颜色的文章 但没有任何关于检索标准控件 如 iOS 11 x 或以前版本中的导航栏 状态栏和选项卡栏 的系统颜色的文章 UIColor 类有 3 种系统颜色 但它们几乎没有用 例如 调用 UINavigation
  • Apple IOS 上的 C# 应用程序 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有基于 C Net 的应用程序 有什么方法可以在 Apple IOS 上运行这些应用程序吗 我没有资
  • 在 Xcode 9 上切换分支

    我无法找到使用 Xcode 9 切换分支的菜单项 工作副本菜单似乎已经消失 有任何想法吗 Xcode 9 Xcode 8 Press 2 to open the new Source Control Navigator 右键单击master
  • 当现有的转换或演示正在进行时;导航堆栈不会更新

    我遇到过这个警告 PushViewController animated 在现有转换或演示文稿运行时调用 发生 导航堆栈不会更新 当试图打电话时navigationController popViewControllerAnimated f
  • MacOSX 下 libpng 的链接器错误

    我正在使用 MacOSX 10 7 2 和 Xcode 4 2 1 我安装了libpng使用端口 我试图在我的应用程序中加载 PNG 图像 但出现链接器错误 Undefined symbols for architecture x86 64

随机推荐

  • C语言入门--3x3转置矩阵

    题目 答题思路 我这里使用的是两个多维数组 因此此段代码仅需修改输入部分既可用于多种对称矩阵的转置 第一个多维数组用于记录原始的矩阵排列 第二个多维数组用于记录转置后的矩阵排列 我的思路很简单 先将右上角的数交换到左下角 本人非数学专业 专
  • Redis学习;Redis主从复制

    主从复制 是指将一台Redis服务器的数据 复制到其他的Redis服务器 前者称为主节点 Master Leader 后者称为从节点 Slave Follower 数据的复制是单向的 只能由主节点复制到从节点 主节点以写为主 从节点以读为主
  • QAnimation的介绍

    QAnimation的介绍 QAnimation是Qt框架中提供的一个动画类 用于实现GUI控件的各种动画效果 可以通过QAnimation实现如平移 旋转 缩放等动态效果 同时还支持动态添加或删除控件等操作 基本用法 创建和启动动画 通过
  • Libsvm:脚本(subset.py、grid.py、checkdata.py)

    1 脚本 This directory includes some useful codes 1 subset selection tools 子集抽取工具 subset py 2 parameter selection tools 参数选
  • c#基础之WPF

    学习平台 微软开发者博客 DevBlogs Microsoft Developer Blogs 微软文档与学习 Microsoft Learn 培养开拓职业生涯新机遇的技能 微软开发者平台 Microsoft Developer WPF基础
  • Java-String类

    Java String类 1 概述 String 字符串 使用一对 引起来表示 String声明为final的 不可被继承 String实现了Serializable接口 表示字符串是支持序列化的 实现了Comparable接口 表示Str
  • Iptables封禁IP,记录地址

    前言 前段时间开了台国外的vps 以前机房的物理防火墙有十年网工大佬维护 我们对外访问的nginx上就没遇到过这种攻击 毕竟有问题的IP全被防火墙那层直接拦截了 而我这通过安全组把其中2个web端口放开了所有网段 而nginx再限制网段 导
  • 疫情日记(01)

    时间 2022年12月16日15 01 14 天气 阴天 地点 西安 12月8日全面放开以来 确诊这个词语也再是谈之色变了 似乎一旦 规定 疫情没有了 就真的没有了一样 两天前知道了ljc可能是确诊了 再后来就是办公室两个小兄弟 jc和qy
  • FAT文件系统初识

    最近在阅读 现代操作系统 的时候看到了fat32系统的讲解 在这里记录一下 我觉得fat32文件系统首先是基于链表分配的机制的 首先有一个基础知识 就是文件是由一系列的块组成的 想要访问完整的文件 就必须知道这个文件的所有的块的位置 链表分
  • Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

    前言 XCharts是开源且比较强大的插件 在Unity3d中搭建UI时常常使用的数据图表的制作插件 特别是当下的数字沙盘 数字孪生等项目中应用较广 笔者公司也一直在使用该插件 本文主要是在开发过程中的一个小需求引发的整理分享 在项目中需要
  • 前端自动化测试精讲

    单元测试 端对端测试 持续集成方案 在项目中落地前端自动化测试 作者介绍 祯民 字节跳动前端开发工程师 掘金小册 SSR实战 官网开发指南 作者 公众号 祯民讲前端 作者 曾负责 抖音前端技术团队官网 和 字节官网中文版 的开发 现维护抖音
  • git撤销加入暂存区(git add)的文件

    直接使用git reset加对应的文件或 来撤销 这个命令可以理解为git add的反向操作 可以撤销单个文件 也可批量 如 git reset xxx xxx xxx 或 git reset
  • C语言常见问题——++i与i++详解

    目录 一 i与i 1 引例 2 i i i 与 i i i 3 总结 二 函数中的 1 printf中的 2 作为函数的参数 3 总结 一 i与i 1 引例 对于如下程序 其输出结果是什么 include
  • 《算法导论》15章-动态规划 15.1 钢条切割(含有C++代码)

    一 引入 动态规划方法通常用来求解最优化问题 optimizationproblem 这类问题可以有很多可行解 每个解都有一个值 我们希望寻找具有最优值 最小值或最大值 的解 我们称这样的解为问 题的一个最优解 an optimal sol
  • 蓝桥杯2023年第十四届省赛真题python A组 (个人的做题记录,没有全对,可以通过部分测试点)

    试题 A 特殊日期 本题总分 5 分 问题描述 记一个日期为 yy 年 mm 月 dd 日 统计从 2000 年 1 月 1 日到 2000000 年 1 月 1 日 有多少个日期满足年份 yy 是月份 mm 的倍数 同时也是 dd 的倍数
  • 【ElasticSearch(五)进阶】两种_search检索方式,match_all检索,Query DSL基本使用...

    ElasticSearch 五 进阶 两种 search检索方式 match all检索 Query DSL基本使用 一 导入测试数据 ElasticSearch官方为我们准备了一部分测试数据供调试使用 我们可以Kinaba内进行数据导入处
  • SSH 整合Swagger2

    之前用的是springboot整合swagger2 新公司这边的系统是之前开发的 用的是SSH框架 这里记录一下 整合过程 以及遇到的坑 1 导入依赖
  • 华为OD机试 - 字符串分隔(C++ & Java & JS & Python)

    目录 描述 输入描述 输出描述 示例1 C 实现 Java实现 python实现 描
  • 如何提高oracle数据库的性能,关于提高Oracle数据库性能的四个误区

    为了提高性能 我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试 主要包括 共享服务器模式 MTS 集群技术 Clustering RAC 分区 并行处理 主要是并行查询 Oracle提供的这些特性确实是用来进行性能改善的 但
  • iOS证书申请打包上传App Store审核完整流程(7个步骤)

    上架基本需求资料 1 苹果开发者账号 2 开发好的APP 通过本篇教程 可以学习到ios证书申请和打包ipa上传到appstoreconnect apple com进行TestFlight测试然后提交审核的完整流程 上架App Store审