iOS app上架图文教程及注意事项

2023-11-12

网上的ios app上架流程比较多,但基本上都不全。此文档按照步骤进行的,比较推荐。

自己按照教程正式走了一遍发现了很多问题,很多都是遇到问题解决问题,整个流程所花费的流程不下一周时间,所以为了让大家了解苹果公司的相关规定,让兄弟们少走弯路,特意转载部分流程和自己的错误。前半部分都是转载,后面遇到的问题是自己的实际情况。

一、准备:

  1. 一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Company)、企业(Enterprise)、高校(University)四种类型,每年资费分别为99、99、99、$299、免费。)。
  2. 一个已经开发完成的项目。

二、检查:

  1. 你的Xcode必须是正式版的,beta版本的Xcode是不能上传项目的。
  2. 上传使用的 Mac 的 OS X系统必须也是正式版的,beta版本也不行。
  3. 请确认你安装的Xcode是从App Store或者是开发者网站下载的,而不是从其它渠道获取的安装包安装的,因为非官方途径下载的Xcode可能带有XcodeGhost 病毒。如何检查?

    检查方法

     

三、生成发布证书

  1. 打开苹果开发者中心:https://developer.apple.com
    打开后点击:Account

    苹果开发者中心


    下面输入已付款过的Apple账号和密码登录(如果你的电脑已经保存了密码,会直接进入)

    开发者登录账号

  2. 点击:Certificates, Identifiers & Profiles (专门生成证书,绑定Bundle Id,绑定device设备,生成描述文件的地方)

    Member Center

  3. 点击Certificates生成证书

    1. 选择iOS, tvOS, watchOS
    2. 选择All
    3. 点击右上角新添加证书

      添加新证书1

    4. 由于是做App上传,选择生产证书(选择App Store and Ad Hoc)

      选择App Store and Ad Hoc


      注意:一个开发者账号只能创建(1-2个开发(测试)证书,2-3个生产(发布)证书),如果你的App Store Ad Hoc 前面的按钮不能选择,则代表你的这个账号无法再创建新的生产证书了。
      解决方法:

      1. 从共同使用这个账号的人电脑上生成.p12文件,导入自己的电脑。(尽量不要执行下面第2步)
      2. 如果你想生成的话,把现有的删除一个(建议删除时间比较靠前的)。注意:如果删除一个证书,那么正在使用这个证书的人将不能再使用了,除非重新生成,然后利用.p12重新导入自己的电脑里!
        注意:如果你想删除证书,执行下面步骤,否则略过。

        删除证书

      然后接上上图,生产证书部分继续

      生成证书2

      生成证书3

      生成证书4

    5. 上传CSR文件去获取证书(CSR文件需要我们到本机钥匙串里去创建)

      1. 在Launchpad的其他里面,点击钥匙串访问弹出如下界面

        其他


        钥匙串访问

      2. 工具栏选择钥匙串访问->证书助理->从证书颁发机构请求证书…

        请求证书


        证书信息

      3. 将CSR文件保存到MAC磁盘的某个位置(这里我选择的是桌面,进行存储)

        存储证书


        点击完成


        CertificateSigningRequest.certSigningRequest 文件

    6. 然后回到浏览器,点击choose File..

      选择CSR文件

    7. 选择创建好的:CertificateSigningRequest.certSigningRequest 文件,点击选取

      选取CSR文件


      点击Generate上传证书

      上传CSR证书

    8. 跳转到如下界面,点击 DownLoad 下载生成的证书(cer后缀的文件),然后点击Done,你创建的发布证书就会存储在帐号中。

      下载生成的证书

     

cer后缀的文件

注意:这个证书只能下载一次。点击下载后,关闭页面后就不能再回到下载页面了。
如果不需要给别的电脑使用,则直接跳过下面附加项,跳转到第五步(绑定Bundle Identifier)

附加项:生成p12文件在其他电脑上使用这个发布证书

  1. 双击安装证书后,打开钥匙串访问,选择安装的证书右键单击

    安装的发布证书


    注意:如果没有导出,可以把这个证书删除,然后重新双击下载的证书文件安装。
    1. 导出证书

      导出证书

    2. 存储证书

      存储导出的证书


      注意:存储的文件格式一定要是.p12
    3. 设置密码
      可以为证书设置密码,也可以不设置密码;如果设置了密码,那么别人安装这个证书的时候就要输入密码,否则无法安装。这里就不设置密码了。

      设置密码

    4. 保存导出的证书

      p12发布证书


      如果需要在其它电脑上也能发布App,那么就必须要安装这个发布证书。

四、创建App IDs和绑定你的App的Bundle Identifier

回到刚才的页面:https://developer.apple.com/account/ios/identifiers/bundle/bundleList.action

  1. 点击App IDs,进入如下界面,点击右上角的 + 号

    点击App IDs

     

  2. 填写App IDs和Bundle Identifier

    填写App IDs和Bundle Identifier


    注意:

    1. 上传App使用的Bundle Identifier(不要有-,都是英文+数字)必须是固定的,不能使用占位符。
    2. 如果你的Bundle Identifier已经在网站上绑定了,如果你又修改了你工程里面这个Bundle Identifier的话,需要重新进入到开发者账号里面绑定。

      修改工程的Bundle Identifier


      下面选择App中包含的服务,默认有两项,其余的根据自己项目的需求进行选择

      App Services

  3. 点击continue

    点击continue

     

  4. 点击Register

    点击Register

     

  5. 点击Done

    点击Done

     

五、生成描述文件(描述文件的作用就是把证书和Bundle Identifier关联起来)

  1. 找到Provisioning Profiles ,点击All,然后点击右上角 + 号

    Provisioning Profiles

  2. 因为是发布,所以选择下面App Store这个描述文件,点击Continue

    选择App Store

  3. 在App ID 这个选项栏里面找到你刚刚创建的:App IDs(Bundle Identifier) 类型的套装,点击Continue

    选择发布项目的Bundle Identifier

  4. 选择你刚创建的发布证书(或者生成p12文件的那个发布证书),根据自己电脑上的发布证书日期来选择,点击Continue

    选择创建的发布证书

  5. 在Profile Name栏里输入一个名字(这个是PP文件的名字,可随便输入,在这里我用工程名字,便于分别),然后点击Generate

    给描述文件起个名字

  6. Download生成的PP文件,然后点击Done,双击安装(闪一下就完事了,没其它效果)

    Download生成的PP文件

    生成的描述文件

六、在App Store开辟空间

  1. 回到Member Center,点击iTunes Connect

    点击iTunes Connect

  2. 登录开发者账号(还是之前已付费的账号)

    Snip20160315_68.png

  3. 登录成功后,点击我的App

    点击我的App

  4. 点击左上角那个+号,点击新建(注意:我们是iOS App开发,不要选Mac App啦)

    新建 App

  5. 依次按提示填入对应信息(SKU是公司用于做统计数据之类的id,根据公司需求填写),然后点击创建

    填写App信息


    注意:如果都填好以后,可能会告诉你,你的App名称已经被占用,那么不好意思,你只能改名了!(而且建议大家起名不要往比较出名的App上靠,否则审核可能会被拒绝)

  6. 填写App其它信息

    App信息

  7. 填写价格和销售范围(由于我的开发者账号没有签订纳税合同,所以不能上线收费应用,所以只能暂时免费)

    填写价格和销售范围

  8. 依次把不同尺寸的App截图拉入到对应的里面
    需要填写不同尺寸的手机屏幕截图(也就是拿不同尺寸的模拟器运行后,挑出至少3页最多5页进行截图然后拖到响应的区里)(在模拟器Command+S 就可以保存屏幕截图到桌面了)(注意:如果提示拖进去的图片尺寸不对,则把模拟器弄成100%然后再Command 加 S) 尺寸参照表在下面

    设置不同尺寸的App截图


    尺寸参照图

    尺寸参照图

  9. 填写App简介

    填写App简介

  10. 按提示依次输入

    按提示依次输入


    错误提示:如果上传App 图标失败,提示Alpha错误的话,看下面。
    打开你的图标图片,勾掉这个

    勾掉这个

  11. 点击分级后面的编辑,如实填写后,点击完成

    分级信息

  12. 填写审核信息

    填写审核信息


    版本发布就是:(然后最下面选择自动发布的话就是如果审核通过,就自动上传到App Store供人下载)

  13. 此时这个构建版本还没有生成,我们先把基本信息填写完毕,然后再进入Xcode中把项目打包发送到过来。
    注意:填写完一定要点击右上角的保存。

七、在Xcode中打包工程

找到你刚刚下载的发布证书(后缀为.cer)或者p12文件,和PP文件,双击,看起来没反应,但是他们已经加入到你的钥匙串中。

  1. 在Xcode中选择iOS Device(这里不能选择模拟器),按照下图提示操作

    选择iOS Device

  2. 如果你的应用不支持横屏,把这两个勾去掉

    如果你的应用不支持横屏,把这两个勾去掉

  3. 查看版本号和构建版本号

    查看版本号和构建版本号

  4. 配置发布证书

    配置发布证书


    注意:如果这里没有黄色叹号,代表你的配置没问题,如果有,那就是证书和描述文件不匹配,或者描述文件里刚才选的Bundle和现在的工程的Bundle Identifier不一致,去develop.apple.com 上找到你的描述文件在确认下绑定的bundle Identifier和你工程是不是一样的?

    检查

  5. 断点全局断点僵尸模式等都要去掉。

    去掉断点、全局断点

Snip20160315_36.png

Snip20160315_37.png

去掉僵尸模式

6.设置Release模式(Debug是测试的,Release是发布用的)

Snip20160315_39.png

Snip20160315_40.png

Snip20160315_41.png

Snip20160315_42.png

7.选择 Xcode下 Product 下 Archive(专门用于传项目,或者打包项目)

选择Archive

Snip20160315_45.png

Snip20160315_46.png

8.出现下图说明你没有添加开发者账号,点击右下脚Add… 按钮就可以添加

没有添加开发者账号

9.输入付费的开发者账号

输入开发者账号


可能会弹出下面这个界面,如果不弹出,按Command加。

10.然后回到Archive(选择已付费的账号),然后点击Choose

选择已付费的账号


然后等待

等待

11.选择Upload提交

Upload提交

12.如下就代表上传成功,如果出错,请参照iOS App上传项目遇到的问题

上传成功
(往App Store上提交应用第二种方法(不推荐,但有同学喜欢这么做))
还有同学不是直接uplaod to appstore,而是先export出来,然后通过application loader提交上去,这样也可以

正在往App Store上提交应用

出现下边这种情况,你只需要闭上眼睛点击下一步就OK,别管那么多,都是唬人的

说明你已经交付成功,走到第13步

 

13.返回ItunesConnect网站上你自己的App信息中查看一下

 

在App信息中查看

14.在这个构建版本这里就可以添加代码

添加代码

点击+号之后选择代码版本

添加构建版本

15.提交以供审核

提交以供审核

16.App已经从准备提交,变成正在等待审核状态

正在等待审核状态

17.等待苹果的审核…

转载:http://blog.csdn.net/yanmantian/article/details/53256765

提交前的苹果公司回复的邮件

如下:这个是上传ipa文件时,密码输入需要二次认证问题。

这个是上传成功后,但没有在app store上刷出来的问题,纠结了我2个小时,最后通过苹果恢复的邮件才得以解决。

还有一些其他的问题,都是一边遇到一边解决的。总之路途很艰辛,解决后很开心。

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

iOS app上架图文教程及注意事项 的相关文章

随机推荐

  • minikube 快速使用入门 - 启动 - 2

    快速使用 启动Minikube 执行命令 如下 minikube start 执行之后系统开始安装minikube 如图所示 上面显示正在下载安装包 进行安装 因为请求链接的是外网 应该会有点慢 可以使用如下命令 minikube exe
  • 三分钟学会国产低功耗华大单片机二(MDK中下载与仿真)

    一 准备工作 使用micro USB 将开发板与电脑相连 打开一个已经存在的工程 工程如何建立请参考 三分学会国产低功耗华大单片机一 MDK中新建工程 二 工程的编译 点击魔法棒图标如下图所示 点击Device在芯片型号选择框中选中所选单片
  • Autofac与WebApi集成

    目录 Autofac原理 如何将Autofac与Web API集成 Autofac功能详解 1 HttpConfiguration 2 控制器 3 解析器 4 过滤器 1 注册过滤器提供程序 2 实现过滤器接口 3 注册过滤器 4 过滤器覆
  • React结合Ant Design Pro开发项目理解(service、model、index等文件逻辑关系)

    组件中传值 react 值写在了视图层 Antd pro 值写在model层 通过saveState扩展表达式 把值更新到state后会触发视图层的render方法 通过props获取model中的值 下图是整个项目各模块的关系 大概流程是
  • 基于AntDesign实现的React.js自定义可编辑表格,带翻译功能

    基于React AntDesign实现的一个自定义的可编辑表格 主要用于数据库表字段的编辑 带翻译功能 稍作修改后也可复用到其他地方 主要包括三个文件 index js EditableTable js EditableTable less
  • Matlab R2018b激活教程

    最近重装了系统 又正好需要用一下Matlab 所以就来研究一下如何激活 目前Matlab最新的版本是R2018b 所以我找的也是R2018b的激活教程 再次提醒 如果有条件请支持正版 资源准备 很幸运 我发现已经有人将Matlab R201
  • Linux文件操作命令及磁盘分区与文件系统

    一 cd命令 cd change directory 切换目录 这是用来切换工作目录的命令 注意目录名称和cd命令之间存在一个空格 在介绍cd命令的时候 首先我们来了解相对路径和绝对路径 绝对路径 路径的写法 一定由跟目录 写起 例如 da
  • QTabWidet设置不同Position,tabBar文字均水平显示

    设置QTabWidget在不同方向上的文字均水平显示 有两种方法 如下 1 设置不同Position tabBar文字均水平显示 QTabWidget设置在设置Position为East或者West时 文字方向默认会从下到上显示 先通过以下
  • Connection Refused Error:[WinError 10061]

    问题 Vscode左边栏选项 运行和调试 运行Python Django 程序报错 sock connect host port ConnectionRefusedError WinError 10061 由于目标计算机积极拒绝 无法连接
  • js数据类型学习笔记

  • Scala安装与环境配置

    一 Scala和Python java的区别 Scala是一门多范式编程语言 用于操作Spark 相较于java 由于Spark底层用Scala编写 因此对于大数据Spark项目场景Scala代码更加简洁 java过于冗长 并且Scala支
  • 自编码器(Auto Encoder)原理及其python实现

    目录 一 原理 二 为什么要使用自编码器 三 代码实现 1 原始自编码器 2 多层 堆叠 自编码器 3 卷积自编码器 4 正则自编码器 4 1稀疏自编码器 四 降噪自编码器 五 逐层贪婪训练堆叠自编码器 参考 一 原理 自编码器由两部分组成
  • Android-数据存储(上)

    一 Debug调试 1 跟踪程序的运行过程 找出问题出现的地方 更快的解决问题 bug 2 梳理已有功能代码的运行逻辑流程 二 数据存储 1 sp存储 2 手机内部存储 3 手机外部存储 三 练习
  • java中定义byte数组,浅谈java的byte数组的不同写法

    由于篇幅原因阐述的不够详细科学 不喜勿喷 经常看到java中对byte数组的不同定义 粗略整理的一下 一个字节 byte 8位 bit byte数组 里面全部是 byte 即每一个byte都可以用二进制 十六进制 十进制来表示 二进制 00
  • Unity——LitJSON的安装

    一 LitJSON介绍 特点 LitJSON是一个轻量级的C JSON库 用于在Unity游戏开发中进行JSON数据的序列化和反序列化操作 它提供了简单而高效的接口 帮助开发者处理JSON数据 以下是LitJSON库的一些主要特点和功能 1
  • 用面向对象方法进行俄罗斯方块游戏设计(持续更新中)

    游戏介绍 顾名思义 俄罗斯方块自然是俄罗斯人发明的 这位伟人叫做阿列克谢 帕基特诺夫 Alexey Pazhitnov 这款游戏操作简单 老少皆宜 也是一个不错的练手项目 首先给几个经典的游戏界面先 当然 我们的目的是做出类似的效果 游戏界
  • 女程序员的反思

    鉴于大家对此的热情 我增添些具体的开发感受 希望能帮到和我有一样困惑的姐妹们 也希望各路IT大牛前来指导 工作已有8个多月 不间断的大小项目共5个 一直觉得很疲惫 除了本应该烦累的工作外 自己性格上的各种不适应加重了疲惫感 可能是前一个项目
  • Buildroot用户指南

    第一章 关于Buildroot Buildroot是一个包含Makefile和修补程序 patch 的集合 这个集合可以使你很容易的为你的目标构建交叉工具链 cross compilationtoolchain 根文件系统 root fil
  • python解析excel文件

    通过openpyxl库解析excel文件 from openpyxl import load workbook class ParseExcel object 解析excel文件 def init self 获取excel路径 self d
  • iOS app上架图文教程及注意事项

    网上的ios app上架流程比较多 但基本上都不全 此文档按照步骤进行的 比较推荐 自己按照教程正式走了一遍发现了很多问题 很多都是遇到问题解决问题 整个流程所花费的流程不下一周时间 所以为了让大家了解苹果公司的相关规定 让兄弟们少走弯路