如何将应用程序发布到 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 发布流程可以概括为六个步骤。
- 注册 Apple 开发者计划
- 准备应用程序以供提交
- 通过 App Store Connect 创建列表
- 捕获 App Store 屏幕截图
- 使用 Xcode 上传应用程序
- 提交应用程序以供 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开发的无限可能! 🔥我们与您分享最新的技术洞察和实战经验࿰…...

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)࿱…...

框架篇常见面试题
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的人出列,接着从出列的下一…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

Chrome 浏览器前端与客户端双向通信实战
Chrome 前端(即页面 JS / Web UI)与客户端(C 后端)的交互机制,是 Chromium 架构中非常核心的一环。下面我将按常见场景,从通道、流程、技术栈几个角度做一套完整的分析,特别适合你这种在分析和改…...