当前位置: 首页 > news >正文

如何将应用程序发布到 App Store

憧憬blog主页

在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能!
🔥我们与您分享最新的技术洞察和实战经验,助您在移动应用开发领域取得成功。
📌欢迎访问我们的微信公众号:憧憬blog,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!
💼我们还担任阿里云专家博主的角色,为您提供更深入的技术指导和解答疑点。 🌟期待与您一起在移动开发的世界中,不断进步和创造!
🙏感谢您对我们的支持和关注!请继续关注我们的主页,获取更多精彩内容!
 

目录

从哪里开始:向 App Store 提交 iOS 应用程序

应用商店提交要求

提交和发布 iOS 应用程序的 6 个步骤

第 1 步 — 加入 Apple 开发者计划

第 2 步 — 准备应用程序以供提交

第 3 步 — 通过 App Store Connect 创建列表

第 4 步 — 捕获 App Store 屏幕截图

第 5 步 — 使用 Xcode 上传应用程序

第 6 步 — 提交应用程序以供审核

结论


前言

创建一个新的应用程序是令人兴奋的。但将该应用程序交到真正用户手中并不总是那么容易。

首先,您需要将应用程序发布到 App Store,以便可供下载。

两个主要的应用商店是 Apple App Store 和 Google Play Store,一个适用于 iOS,一个适用于 Android。但每个平台都有自己独特的指南、规则和提交要求。 

本指南将特别关注将 iOS 应用程序发布到 Apple App Store。该应用程序在此处发布后,即可在 iPhone 或 iPad 上下载。

值得注意的是,苹果公司的提交指南非常严格。您需要一个 Apple 开发者帐户,并且 App Store 列表必须与应用程序的功能相匹配。苹果在批准应用程序之前还会考虑许多其他小细节。

那是因为苹果希望保护其用户。Apple 希望其用户群能够放心地知道从 Apple App Store 下载的任何应用程序都是安全的,不会损坏他们的设备。

准备好开始了吗?让我们深入了解吧!

从哪里开始:向 App Store 提交 iOS 应用程序

将 iOS 应用程序提交到 App Store 是开发的最后阶段。到目前为止,应用程序应该已经构建完毕并经过彻底测试,并且您应该有一个有信心使用的应用程序名称。 

如果您的应用程序仍在开发中,那么提前向App Store提交并没有什么问题。只是要知道,现在采取这些步骤还为时过早。即使您拥有列表所需的所有其他应用程序信息,Apple 也不会批准任何未完成的应用程序进入商店。 

您还应该考虑启动移动应用程序的法律先决条件。例如,如果您要在欧盟市场推出应用程序,则该应用程序必须符合 GDPR 准则。如果您要提供应用程序购买并通过应用程序收款,您还需要考虑 PCI 合规性等问题。 

如何收集、处理和共享用户数据在这里非常重要。您应该参阅Apple 开发者的官方协议和指南,以确保您遵循有关用户数据的所有适当要求。 

提交的应用程序只能包含由您创建或您有适当权限使用的内容。如果您在没有适当合法许可或权限的情况下使用其他来源的内容,则可能会导致您的应用程序被 App Store 拒绝或从 App Store 中删除。

您还需要拥有 Apple 开发者帐户和 Apple ID。从运行 macOS 的计算机提交应用程序并不是必需的,但考虑到您将使用的软件和工具,这绝对是常见的情况。

例如,如果您使用 Xcode 创建适用于 iPhone 和 iPad 的 iOS 应用程序,则可以采取步骤准备您的应用程序以便直接在 IDE 中发布。

应用商店提交要求

在我们讨论发布所需的步骤之前,您需要了解 App Store 的应用程序提交指南。

您可以在此处查看所有 App Store 审核指南。以下是需要记住的一些重要要点:

  • 开发人员有责任确保应用程序中的所有内容都符合 Apple 的准则,包括分析服务、第三方 SDK、广告网络等。
  • 试图欺骗审查系统或操纵评级是删除您的应用程序并将您踢出开发者计划的理由。
  • 您必须遵守 Apple 关于儿童应用程序的指南。
  • 应用程序不得包含令人反感的内容(歧视、露骨内容等)。
  • 该应用程序的隐私政策必须符合所有 Apple 准则。 
  • 在提交审核之前,应用程序必须完整且功能齐全。
  • Apple 有必须遵循的某些技术要求和软件标准。
  • 您不能只是复制另一个应用程序并进行细微的更改以将其冒充为您自己的应用程序。
  • 应用程序必须具有超出移动网站范围的最低功能。

总的来说,App Store 审查指南相当冗长。有五个主要类别——安全、性能、商业、设计和法律。每个部分又分为不同的小节,如下所示:

因此,在执行提交步骤之前,请给自己充足的时间详细查看本文档。

提交和发布 iOS 应用程序的 6 个步骤

App Store 发布流程可以概括为六个步骤。 

  1. 注册 Apple 开发者计划
  2. 准备应用程序以供提交
  3. 通过 App Store Connect 创建列表
  4. 捕获 App Store 屏幕截图
  5. 使用 Xcode 上传应用程序
  6. 提交应用程序以供 Apple 审核

我们将在下面更详细地介绍每个步骤:

第 1 步 — 加入 Apple 开发者计划

您必须是 Apple 开发者计划的成员才能向 App Store 提交应用程序。因此,如果您还没有这样做,请注册一个Apple 开发者帐户。 

如果您以个人或独资经营者身份注册,则可以使用您的 Apple ID 登录并启用双因素身份验证。Apple 会要求您提供一些个人信息,例如您的法定姓名和地址。

要以组织身份注册开发者计划,您还需要一个启用了双因素身份验证的 Apple ID。除了 Apple ID 之外,注册还需要:

  • 邓氏编码
  • 法人实体状态
  • 法律约束力
  • 网站

只需单击此页面上的“开始注册”即可开始。

会员价格起价为每年 99 美元,您可以使用其他独家 Apple 开发者工具和服务。 

您可以使用该帐户来管理 iPhone、iPad、Mac、Apple Watch 和 Apple TV 的应用程序。会员资格还附带测试版软件、应用程序分析、测试工具以及管理应用程序商店列表所需的一切。 

Apple 开发人员还可以使用 TestFlight,这是一种在将应用程序提交到 App Store 之前收集多达 10,000 多名测试人员反馈的方法。您可以通过电子邮件地址或公共链接邀请他们。

第 2 步 — 准备应用程序以供提交

在将应用程序提交到应用程序商店之前识别应用程序的错误和问题只是应用程序开发的一方面。您还必须做其他事情才能准备好进行审核。

首先,您需要在 Xcode 中设置包 ID。这用于在系统中唯一标识您的应用程序。当您从模板创建项目时,Xcode 将为您提供一个默认标识符,但创建一个唯一的标识符非常重要。请注意,捆绑包 ID 上传到 App Store Connect 后将无法更改。 

您可以在Xcode项目编辑器的“常规”菜单中调整这些设置。

接下来,您需要配置应用程序版本号和构建字符串。版本号会出现在App Store中,格式为[Major].[Minor].[Patch],例如9.12.1。

Apple 要求您在提交时设置应用程序类别。这样做的目的是帮助用户在 App Store 中发现您的应用程序。选项包括:

  • 图书
  • 商业
  • 开发者工具
  • 音乐
  • 医疗的
  • 导航
  • 教育
  • 消息
  • 金融
  • 照片和视频
  • 生产率
  • 食物和饮料
  • 参考
  • 游戏
  • 图形与设计
  • 购物
  • 社交网络
  • 生活方式
  • 运动的
  • 孩子们
  • 旅行
  • 杂志和报纸
  • 公用事业
  • 天气

主要类别必须与应用程序的主要目的和功能相匹配。选择不适合您的应用程序功能的类别违反了 Apple 的准则和删除理由。 

您需要准备一个应用程序图标并提供启动屏幕。启动屏幕是应用程序启动时出现的 UI,并在第一个屏幕加载时快速消失。启动屏幕的目的是通过在应用程序加载时提供一些视觉效果来增强用户体验。 

查看Apple 的所有官方指南,为您的应用程序分发做好准备。 

第 3 步 — 通过 App Store Connect 创建列表

App Store Connect是 Apple 开发者计划的成员可以上传应用程序、提交应用程序以及管理应用程序发布后的地方。它包含从销售报告到分析、测试资源等的所有内容。 

以下是如何为 App Store Connect 创建列表的快速概述:

  • 登录到您的帐户
  • 从“我的应用程序”菜单中选择“+”按钮
  • 添加平台 (iOS)、主要语言、捆绑 ID 和 SKU
  • 添加应用名称和类别
  • 提供您应用程序隐私政策的 URL
  • 选择您的应用程序的定价

您还可以选择在审核信息获得批准后决定如何发布您的应用。 

您可以手动重新登录 App Store Connect 并在准备好时发布它,或者将其设置为在特定日期发布(假设它通过认证)。Apple 还为您提供了选择应用程序获得批准后立即发布的选项。 

第 4 步 — 捕获 App Store 屏幕截图

现在是时候为 App Store 准备屏幕截图了。您可以遵循两种基本方法。您可以使用应用程序中的原始屏幕截图,也可以使用模型模板来展示您的应用程序。

这些屏幕截图是帮助向世界展示您的应用程序的功能以及当他们在 App Store 中找到您时它如何工作的完美方式。 

以下是达美航空如何使用应用程序屏幕截图来展示其主要功能的示例:

苹果确实有很多不同的应用程序预览屏幕截图规范,您必须考虑这些规范。那是因为市场上有很多不同的设备。

iPhone 的屏幕尺寸从 4.7 英寸到 6.5 英寸不等。iPad 的尺寸最大可达 12.9 英寸。

您可以在此处查看所有Apple 的屏幕截图规格。我还建议查看此API 集合资源以获取应用程序屏幕截图,以了解更多技术要求。

第 5 步 — 使用 Xcode 上传应用程序

现在是时候从 Xcode 实际上传您的应用程序了。在您确信应用程序没有错误并且按预期运行之前,请勿继续执行此步骤。如果应用程序无法运行,则不会获得 App Store 的批准。 

对于新应用程序,版本应设置为 1.0.0。 

Xcode 11 使发布过程变得非常简单。过去,需要执行许多额外步骤。但现在并不是大部分工作都可以通过几次点击来处理。 

我们这边可以通过appuploder来提交APP。

4、切换到appuploder上传ipa到appstore的界面,点击上传新文件,即可弹出下面的界面,输入苹果开发者账号的账号名和上传专用密码即可上传ipa,如下图:

要注意的是,这里的上传专用密码并不是你的开发者登录密码,而是专用密码,这个专用密码appuploder的上传弹出界面有教程说明,安照它的教程来设置专用密码即可。

上传成功后,您应该在屏幕上看到某种类型的确认。 

第 6 步 — 提交应用程序以供审核

至此,Xcode 的存档已发送至 App Store Connect。但您可能仍然需要等到 App Store Connect 实际处理上传。因此,如果它没有立即显示在您的帐户中,请不要惊慌。 

当档案正式处理并准备好供您使用时,您应该会收到一封电子邮件。这可以节省您一些时间,这样您就不必继续手动检查。

一旦可用,只需选择存档并单击页面右上角的“提交以供审核”按钮即可。

据 Apple 称,50% 的应用程序会在 24 小时内得到审核,90% 的应用程序会在 48 小时内得到审核。因此,假设您的提交已完成,您很可能会在两天内得到答复。

应用程序的状态将在审核后更新,并且您将收到状态更改的通知。 

结论

发布 iOS 应用程序并完成 Apple 审核流程可能看起来有点令人生畏,尤其是如果您以前从未这样做过的话。但如果您使用 BuildFire 创建应用程序,我们将代表您处理发布过程。 

您仍然需要创建自己的 Google 和 Apple 开发者帐户,但我们的团队将处理大部分繁重的工作。因此,您不必担心本指南中的大部分步骤。 

如果您的应用程序项目仍处于规划阶段,请请求咨询,看看 BuildFire 是否是实现您目标的合适合作伙伴。 

相关文章:

如何将应用程序发布到 App Store

憧憬blog主页 在强者的眼中,没有最好,只有更好。我们是移动开发领域的优质创作者,同时也是阿里云专家博主。 ✨ 关注我们的主页,探索iOS开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验&#xff0…...

Python进程与线程开发

目录 multiprocessing模块 线程的开发 threading模块 setDaemon 死锁 线程间的通信 multiprocessing模块 运行python的时候,我们都是在创建并运行一个进程,(linux中一个进程可以fork一个子进程,并让这个子进程exec另外一个程序)。在pyt…...

【3DsMax】UVW展开——以制作牙膏盒为例

效果 步骤 1. 从网上下载牙膏盒贴图,我下载的贴图地址为(牙膏盒贴图链接) 2. 打开3DsMax,创建一个长方体,设置长宽高分别为180、45、40毫米 打开材质编辑器,点击漫反射后的按钮 双击“位图” 将材质赋予长…...

Mysql数据库概念与安装

目录 一、数据库概述 1、数据库的基本概念 2、数据库管理系统(DBMS) 2.1 数据库管理系统概念 2.2 数据库管理系统工作模式 3、数据库系统(DBS) 3.1 数据库系统概念 3.2 数据库系统发展史 4、关系型数据库与非关系型数据库…...

【Java - 框架 - SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手

"SpringMVC"框架的简单创建与使用,快速上手; 环境 Java版本"1.8.0_202";Spring Boot版本"2.5.9";Windows 11 专业版_22621.2428;IntelliJ IDEA 2021.1.3(Ultimate Edition)&#xff1…...

框架篇常见面试题

1、Spring框架的单例bean是线程安全的吗? 2、什么是AOP? 3、Spring的事务是如何实现的? 4、Spring事务失效的场景 5、SpringBean的声明周期 6、Spring的循环依赖 7、SpringMVC的执行流程 8、SpringBoot自动配置原理 9、Spring常见注解 10、My…...

【刷题】滑动窗口入门

送给大家一句话: 那脑袋里的智慧,就像打火石里的火花一样,不去打它是不肯出来的。——莎士比亚 滑动窗口入门 认识滑动窗口Leetcode 209. 长度最小的子数组题目描述算法思路 Leetcode 3. 无重复字符的最长子串题目描述算法思路 Leetcode 1004…...

【Python 48小时速成 3】输入与输出

在 Python 中,输入和输出通常通过内置函数来实现。主要的输入函数是 input(),用于从用户获取输入,而输出函数则是 print(),用于将结果打印到控制台。以下是简单的代码示例演示了输入和输出: # 输入示例 name input(&…...

API开发小红书接口获得小红书笔记详情API接口请求接入演示

为了使用小红书的API接口获取笔记详情,你需要遵循以下步骤: 注册并登录开放平台,创建一个应用并获取App Key和App Secret。 使用App Key和App Secret获取访问令牌(Access Token)。 使用访问令牌(Access T…...

Python条件语句深度解析:从基础到应用的全面指南

🎬 江城开朗的豌豆:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 📝 个人网站 :《 江城开朗的豌豆🫛 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 📘 一、引言 📝 二、…...

【leetcode热题】 地下城游戏

恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。 骑士的初始健康点数为一个正整数。如果他的健康点数在某一时刻降至 0…...

Centos7安装ffmpeg

Centos7安装ffmpeg 用到的包压缩并安装 用到的包 压缩并安装 tar xvJf ffmpeg-5.0.1.tar.xz yum install -y gcctar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure make && make install yasm --versionyum install -y bzip2tar jxvf nasm-2.14.02.tar.bz2 cd n…...

安卓面试题多线程 81-85

81. 共享变量在多线程下如何保证线程安全?因为多线程是交替执⾏,每个线程操作共享变量时可能会导致数据不⼀致,要确保线程 安全,需要在访问共享变量时添加同步机制。当然,如果这个变量本⾝是线程安全的,⽐如AtomicLong,那么多线程访问也是安全 的🚀🚀🚀🚀🚀�…...

Java基础知识总结(8)

StringBuilder类(是线程不安全的) StringBuffer 和 StringBuilder二者及其相似,下面是构造方法: StringBuilder StringBuilder()创建空对象,空的字符序列 StringBuilder StringBuilder(StringBuilder builder)传入对象创造字符序列 Strin…...

C++基础入门(命名空间,函数,引用)

文章目录 前言1,命名空间2,函数函数重载缺省参数内联函数 3,引用尾声 前言 欢迎来到这篇关于C的入门博客!C是一门强大而又广泛应用的编程语言,作为一门面向对象的编程语言,C可以让你更好地组织和管理代码,提高代码的重用性和可维…...

【译】矢量数据库 101 - 什么是矢量数据库?

原文地址:Vector Database 101 - What is a Vector Database? 1. 简介 大家好——欢迎回到 Milvus 教程。在上一教程中,我们快速浏览了每天产生的日益增长的数据量。然后,我们介绍了如何将这些数据分成结构化/半结构化数据和非结构化数据&…...

Python Web开发记录 Day12:Django part6 用户登录

名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡《竹枝词》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、登录界面2、用户名密码校验3、cookie与session配置①cookie与session②配置4、登录验证5、注销登录6、图片验证码①Pillow库②图片验证码的…...

SpringTask实现的任务调度与XXL-job实现的分布式任务调度【XXL-Job工作原理】

目录 任务调度 分布式任务调度 分布式任务调度存在的问题以及解决方案 使用SpringTask实现单体服务的任务调度 XXL-job分布式任务调度系统工作原理 XXL-job系统组成 XXL-job工作原理 使用XXL-job实现分布式任务调度 配置调度中心XXL-job 登录调度中心创建执行器和任务 …...

【java】图书管理系统

有了前几篇文章关于封装、继承、多态、接口等的介绍,想必各位读者对java面向对象的思想有了一定的认识。接下来这篇文章就让我们趁热打铁,利用所学知识做一个小项目图书管理系统吧 目录 一、图书类 1、book类 2、bookList类 二、功能实现 1、IOpera…...

C#实现约瑟夫环算法

目录 1.约瑟夫环定义 2.约瑟夫环算法实现需要注意的地方 3.通过一个例子来演示这个过程 4.三人的约瑟夫环示例 4.十二人的约瑟夫环示例 1.约瑟夫环定义 约瑟夫环即设有n个人坐成一个圈,从某个人开始报数,数到m的人出列,接着从出列的下一…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络&#xf…...

linux 下常用变更-8

1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...