iOS app上架app store流程详解​

news2024/11/20 16:34:48

前提条件​

在有效期内的苹果开发者账号(类型为个人或者公司账号)。还有一种情况,就是你的Apple ID被添加到公司开发者账号团队里面,这样也是可以的,但是需要叫管理员给你开通相应的账号权限,如下截图:​

这里可能有些同学会问,苹果开发者账号是什么?如何申请?那么可以看看我的上一篇文章:iOS苹果开发者账号(公司账号)申请流程详解​

能正常编译打包的iOS工程项目(都不能正常编译谈何出包上架��)​

具体步骤​

1.新测试设备不需要手动到开发者账号里面进行添加,连接设备运行Xcode会弹出提示,选择register device即可自动添加。​

2.开发证书和发布证书到Xcode Account里面都可以生成和管理,不需要到开发者账号里面手动生成。​

登录App Store Connect​

什么是App Store Connect? 官网是这么说的:App Store Connect 是一套以网页为基础的工具,用于管理在 App Store 上销售的面向 iPhone、iPad、Mac、Apple Watch、Apple TV 和 iMessage 信息的 App。作为 Apple Developer Program 的会员,您将使用 App Store Connect 提交和管理 App,邀请用户使用 TestFlight 进行测试,添加税务和银行业务信息,以及访问销售报告等。​

先使用Apple ID登录App Store Connect,登录成功如下截图:(登录的Apple ID是申请苹果开发者账号的Apple ID,或者已经加入到公司开发账号团队的Apple ID,否则是没法登录成功的)​

新建需要发布的APP​

进入App store Connect后,点击我的App,然后点击加号新建app, 最后填写新建app的相关信息。​

需要填写的信息如下:​

选好平台(我开发的是iOS应用,所以选择iOS平台)。​

名称就是最终审核通过显示在app store上面的名称(创建后是可以修改的)。​

语言根据app类型走,我选择的是简体中文。​

套装ID就是应用的Bundle ID,直接下拉选择。(什么?没找到应用的Bundle ID?别搞笑了,没有Bundle ID,怎么开发运行测试呢?)​

SKU不知道有啥用,我用Bundle ID代替了。​

用户访问权限意思就是在这个开发账号团队里面谁可以看到这个app。(有限代表只能自己看到或者指定的人员可以看到,完全代表所有人都可以看到)。​

最后点击创建,创建成功后就会进入如下页面:​

有些同学可能会创建失败,比如名称显示无法使用(其实就是被占用的意思)。那么会存在两种情况:​

开发者账号里面已经存在这个名字的app。这种情况比较幸运,都是自己内部的app,改下就好了。​

排除掉上面的情况,那就是真的被占用了。这意味着你只能换个名称,在准备上线的情况下出现这种情况,真的是非常糟糕。​

除了名称,Bundle ID也会出现无法创建的情况,原因是类似的。所以为了避免这种情况,在app开发需求明确后,先到App Developer创建Bundle ID,然后到App Store Connect新建App,提前查看名称或者Bundle ID是否被占用。​

完善新建app的信息​

这是必须的,否则无法提交审核。必须要填写完善的信息有如下几大类:​

App信息​

审核信息​

App预览和截屏:就是App Store里面app的预览图。​

推广文本、描述:推广介绍app的信息。​

关键词:好的关键词可提高app被搜索率。​

技术支持网(URL):直接填公司官网,个人开发者的话就得自己创建个网页了。​

版本和版权:版本-就是app此次的版本号,版权-公司就写公司的名称,个人就看自己喜好了。​

登录信息和联系信息:这是苹果审核人员需要的,app如果需要登录使用就提供登录账号信息,不需要登录使用就不用管,联系信息是苹果审核人员审核app遇到问题了,联系谁进行解决。​

备注:额外需要声明的信息,没有就不管。​

版本发布:审核通过后是手动发布还是自动发布。​

基础信息​

名称和副标题:名称是app在app store上面显示的名称,副标题是显示在名称下面的灰色字样。​

内容版权、年龄分级和类别:很容易理解,如实填写选择就好了。​

价格与销售范围:如实填写选择就好。​

App隐私: 如下截图,隐私政策网址必填,然后点击开始按钮,选择说明app需要获取用户哪些信息和权限。​

上传app包文件到app store后台。​

方法1.借助辅助工具appuploader,首先按照流程注册登录后,即可直接创建证书,通过hbuilder上传

创建ios(.p12)证书

  1. 点击苹果证书
  2. 新增苹果证书
  3. 输入证书密码:这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。​证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类​
  4. 选择证书类型:带distribution的是发布类型,带development的是开发类型。apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的 ​

5. 选择bundle ID:只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。​

6. 使用appuploader服务同步:如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。​

7. 证书类型说明:IOS开发选择apple development或者ios app development 类型​

ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc)​

开发推送证书选择​

发布推送证书选择​

其他证书不是很常用,可以自行百度各种证书说明。​

8.官遇到问题,首先登录文章开通的苹果开发官网。检查是否有权限/是否被停用/是否过期/是否有协议需要同意。在右上角切换账号检查所关联的账号是否功能正常。Apple邮箱会接收到许多通知消息,如IPA上传,账号发生变化,被停用,都会有消息提示。​

9.上架版本需要使用正式的证书(apple distribution),开发测试用开发证书(apple development)​

  1. 一般都要创建两个证书一个用于开发,一个用于上架,如果有支付内容,还必需要。证书无需创建太多,apple对证书有数量限制,一般3个开发证书就不让创建更多同类型的证书了。​
  2. 点击p12下载到电脑。​

添加测试设备UDID

  1. 点击udid​

2.新增udid​

创建描述文件

  1. 点击描述文件
  2. 点击新增描述文件,在弹出框里面选择要安装测试到的设备,如果是发布类型无需选择设备。选择使用的证书,如果忘记是哪个 了可以选择全部证书。
  3. 描述文件类型说明:带app store类型的是发布类型,带development的是开发类型,push没有描述文件,所以不要问推送选择哪种描述文件类型,os开发选择ios app development类型,发布app的时候选择app store类型。(ps:除了APP Store类型的描述文件外,其他的描述文件都需要选择测试设备)​

4.点击下载按钮下载桌面​

测试安装App

  1. 以HBuilder打包Vue项目为例,打开详细设置进行设置完成后,点击保存。
  2. 官菜单项点击‘发行-> 云打包-打原生包’,出现如下图所示弹框,取消广告勾选,没有错误提示,选择刚才制作的p12和.mobileprovision文件,输入刚才设置的证书密码。点击打包,等待打包未完成(仅以ios为例)
  3. 官打包完成后点击确定“OK”按钮查看打包状态信息,打包完成后,保存安装包到目标文件,发送到手机端安装即可运行。
  4. 测试设备:如果选择的类型是ios app development 类型,则全部测试设备旁边必须有测试设备并且勾选上,如果没有显示测试设备,点击框框下面的添加测试,然后把测试设备的udid输入,把ios设备连接到当前pc,会自动获得设备的udid。 如果app编译后无法安装到设备,可能是因为设备的udid没有添加进入描述文件,则需要添加描述文件后重新编译。​

方法2.Xcode上传,这里简单讲下步骤:

构建打包ipa文件​

打包成功后,选择具体包版本,点击Distribute App。​

选择App Store Connect。(Ad Hoc选项代表出包给测试人员测试)​

点击next,后面几个步骤都点击Next按钮,选项配置不用管都按默认的走。​

最后点击Upload,就开始上传了,耐心等待。我大概6分钟就上传成功了(包文件如果大或者网速慢时间相对会比较长)。这是我上传成功的截图:​

上传成功后,登录App Store Connect,进入app详情页面,点击顶部TestFlight,在构建版本中就可以看到你刚上传的版本,状态一般会显示正在处理。​

如果等了很久(10分钟左右吧)刷新页面还是没看到上传的构建版本,那么就是ipa包被拒绝了,这时候一般会收到拒绝原因的邮件。我就是这种情况��(包含过时的UIWebView),邮件如下:​

解决问题,重新上传就行了。最终上传构建的app版本状态显示为准备提交才能提交审核,状态从正在处理变为准备提交我等待了20分钟左右,这个时间是不固定的,看具体情况,类似那种几百兆的app,时间就会特别长。​

选择APP版本,提交审核​

登录App Store Connect,进入App详情页面,找到构建版本,然后选择一个最新提交的构建版本。​

滑动页面到最顶部,点击存储,然后再点击右边的添加以供审核,确认相关信息后,就提审成功了。​

接下来就是等待审核,苹果审核时间大多集中在晚上凌晨或者第二天早上6-8点, 顺利的话一般2天左右就有审核结果。​

等了2天,“不出意外”,我提交的审核被无情的拒绝了:​

这种情况没办法,只能根据实际情况去进行修改,或者做出必要的解释说明。被拒绝多次也是很常见的,反正耐心的去解决苹果提出的问题,最终都会通过审核的。​

至此,iOS app上架app store流程就结束了。​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/71860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django在线图书销售系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

Vue | 有关Vue2路由知识点的一些总结,以及Vue3路由做出了哪些调整?

目录 Vue2: 1. 路由: 2. 路由规则: 3. 实现切换(active-class可配置高亮样式) 4. 指定展示位置 5. 路由的query参数 6. params传参: 7. 多级路由 8. 路由的props配置 9. 的replace属性 10. 编…

Android databinding之BindingMethod与BindingMethods介绍与使用(五)

一、介绍 前面几篇文章已介绍了很多data binding的用法,今天我将会介绍一个新的方法绑定BindingMethod的用法。 BindingMethod,从名字可以看出是绑定方法的,绑定的一般都是和布局有关,通过绑定来提高布局可扩展性。 二、使用 Bin…

把盏言欢,款款而谈,ChatGPT结合钉钉机器人(outgoing回调)打造人工智能群聊/单聊场景,基于Python3.10

就像黑火药时代里突然诞生的核弹一样,OpenAI的ChatGPT语言模型的横空出世,是人工智能技术发展史上的一个重要里程碑。这是一款无与伦比、超凡绝伦的模型,能够进行自然语言推理和对话,并且具有出色的语言生成能力。 好吧&#xff…

资产扫描神器ARL增强改造

拉取项目首先从GitHub克隆到服务器上。git clone https://github.com/ki9mu/ARL-plus-docker/修改配置文件因为ARL在配置文件里设置了黑名单,有时候项目为GOV或者EDU之类的时候无法进行扫描,所以在这里修改一下配置文件就可以解除限制。cd ARL-plus-dock…

Spring Boot3.0 GA系列全新版本-全新体验-学习案例1

SpringBoot3.0 GA 2022-11-24这是伟大的一天,Spring Boot进入了3.0时代,并会叩开JDK全面升级的浪潮 文章目录SpringBoot3.0 GA技术支持一、新建第一个mode?1.1、打开IDEA,新建项目1.2、选择 版本 和 依赖1.3、查看项目结构1.4、配…

vscode配置remote ssh

1. 安装插件 设置界面 右键最左边tab栏: 主体: vscode 插件: Remote SSH Linux主体: vscode-server 插件: C/C, CMake, CMake Tools, CodeLLDB, Rainbow Brackets, vscode-proto3, SVN 虚拟化主体: multipass linux发行版(比如ubuntu) 补充: multipass实例本地端口…

【C++ unordered_set set 和 unordered_map 和 map】

文章目录前言简单介绍哈希表,哈希结构什么时候用哈希表unordered_map操作likou第一题 两数之和unordered_set 基础操作unordered_set 实现总结前言 今天重新打开力扣,看到以前的签到题两数之和,以前的方法是双指针暴力解法,偶然看…

asp.net校园二手物品交易网站

目录 摘 要 Ⅰ Abstract Ⅱ 第一章 概述 1 1.1网站的开发背景 1 1.1.1学生二手物品交易置换网站的开发背景 1 1.1.2学生二手物品交易活动的现状 1 1.2 学生二手物品交易置换网站的研究方向和内容 2 1.2.1研究方向 2 1.2.2研究内容 2 1.3 学生二手物品交易置换网站的设计目标 2…

transformer中QKV的通俗理解(剩女与备胎的故事)

用vit的时候读了一下transformer的思想,前几天面试结束之后发现对QKV又有点忘记了, 写一篇文章来记录一下 参考链接: 哔哩哔哩:在线激情讲解transformer&Attention注意力机制(上)在线激情讲解transformer&Attention注意力机制(上&…

SpringCloud全系列知识(5)——微服务的部署(Docker)

微服务的部署(Docker) 一 初识Docker 1.项目部署问题 大型项目组件较多,运行环境较为复杂,部署和维护困难依赖关系复杂,容易出现兼容性问题开发,测试,生产环境有差异 2.解决依赖的兼容问题 …

[附源码]Python计算机毕业设计Django疫情期间小学生作业线上管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

差分方程解的稳定性

Heine定理 存在的充要条件是: 取定义域内的任意数列,有 差分的定义 考虑离散型变量 一阶差分为: 二阶差分为: 线性差分方程的解 非齐次差分方程的解 满足初始条件的n阶非齐次线性差分方程 的解是存在且唯一的 非齐次线性差分方程的通解结构:齐次差分方程的解 线性相关与…

提升规则自治能力与原生分析能力、支持视频流接入处理

11 月, eKuiper 团队转入 1.8.0 版本的开发周期之中,目前已完成了一部分实用的新功能:添加了视频流 source,将边缘流式处理能力扩展到视频流领域,可以处理摄像头的视频流或者网络中的直播视频流;发布了通用…

[附源码]Python计算机毕业设计Django智能家电商城

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

苹果iOS 16.2/iPadOS 16.2 RC版发布:隔空投送10分钟限制全球上线

今日,苹果向用户推送了iOS 16.2/iPadOS 16.2 RC候选版更新,内部版本号为20C65。 本次更新主要包括以下改进和错误修复: 一、隔空投送10分钟限制在全球上线,原本的“所有人”选项改为“所有人,10分钟”,超过…

从事功能测试1年,裸辞1个月,找不到工作的“我”怎么办?

做功能测试一年多了裸辞职一个月了,大部分公司都要求有自动化测试经验,可是哪来的自动化测试呢? 我要是简历上写了吧又有欺诈性,不写他们给的招聘又要自动化优先,将项目带向自动化不是一个容易的事情,很多…

守护网络安全的第一道门—防火墙

防火墙作为网络安全领域的第一道门,可以有效的过滤和阻止未经允许的流量进出,选择性地阻止或允许数据包。防火墙通常用于帮助阻止恶意活动并防止专用网络内外的任何人进行未经授权的 Web 活动。在网络安全领域起到了至关重要的作用。 防火墙有什么作用…

引擎入门 | Unity UI简介–第2部分(6)

本期我们继续为大家进行Unity UI简介(第二部分)的后续教程 本篇内容 10.点击按钮时显示对话框 11.增加一个关闭按钮 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第二部分)篇幅较长,分为八篇,…

eclipse+tomcat+spring mvc开发笔记

一:Tomcat安装 在.net web开发中,微软再一次向你展示了一站式马赛克配置,你只需要轻轻一点按钮,发射。。。一个带有bootstrap框架的页面就呈现在你的面前,在 java中就没有这么好的事情了,基本都是高清无码。 1. 下载地址 http://mirrors.hust.edu.cn/apache/tomcat/tomc…