iOS上架该怎么做?_biaolipian0851的博客-程序员宅基地

技术标签: 移动开发  xcode  

App Store上架指的是iOS应用从提交申请到上线的整个过程,它的目的是让应用展示在App Store上获取流量、用户。
iOS上架该怎么做?

一、iOS上架的整体流程

1、申请开发者账号

苹果的开发者账号主要分为三种类型:个人账号、公司账号、企业账号,三者的费用以及权限等都不尽相同。开发者账号的申请过程一般需要一个星期左右的时间。一般开发者申请的都是个人或者公司的账号,因为企业账号的应用不能发布到App Store,只能企业内部使用,但是企业账号签名之后的App可以直接发布到分发平台或者放着自己的服务器上让用户下载,无需经过苹果审核。然后通过渠道链接把用户引流到平台或者服务器下载,并且统计数据。
目前,由于政策原因,个人开发者账号以及公司开发者账号,都没有以前好申请了,但是只要资料齐全,都是可以申请下来的,市面上存在的账号也比较多,基本上每个开发公司都有一个或多个;但是企业开发者账号就一直比较难申请了,今年更甚,苹果公司对企业开发者账号申请的门槛加高了许多,就算一个拥有几千人的集团公司或者是上市公司,申请最少三个月的时间才有机会申请下来。

iOS上架该怎么做?
公司和企业的账号申请需要邓白氏码,如果邓白氏码未申请,请先申请邓白氏码,这个过程需要一到两个星期。邓白氏编码申请下来后,会发送一个邮件告诉你,最好在14个工作日之后再使用,因为苹果那边同步数据需要时间。如果要提前使用,失败次数不能超过3次。

2、创建App×××(App ID)、申请证书、以及生成描述文件

App ID的创建首先需要登录你的developer account,然后配置App bundle ID。xplicit App ID 的格式为:com.company.AppName(要有两个点.)照着格式写。然后登录你的iTunes connect,然后使用你的BUNDLE ID 创建一个App。

申请证书需要通过Mac的钥匙工具来生成证书(其中包括开发证书、下载证书、推送证书)。这里需要注意的是下载下来的证书只能在请求该证书的电脑上使用,如果想给其他开发者使用需要将已经导入的证书导出为个人信息交换(.p12)的格式供他人使用;以及证书有申请的个数限定,超过就不能申请了。

之后便可以创建描述文件了,描述文件的作用是把证书和Bundle Identifier关联起来。

3、在开发者中心的iTunes Connect 中配置 App 相关信息

  • 主标题:主标题是显示在 App Store 中的App本地化名称,一般包含标题主题部分和后缀部分。简单通顺的展现出App的功能与特性。主标题的词汇具用很高的权重,应尽量选择与App相关的高热度词,但不宜出现热门竞品品牌词,否则审核容易被拒。
  • 副标题:副标题是App的一句简介,是对App的名称的一种补充,对App的词组有一定的权重加成。所以副标题的内容应尽量覆盖一些主标题没有的重要关键词。同样的副标题中不能出现热门竞品品牌词,文案应简洁且具有吸引力,展示App独特的一面,字数控制在30字符以内。
  • 隐私政策网址:从2018年10月3日起隐私政策成为所有新App或者App更新的必填项,只能在提交新版本的时候才能更新链接或文本。填写时可观察竞品的隐私政策范文作为参考。
  • 产品描述:App应用描述被限定在4000个字符以内,且为必填项,可以根据语言版本的不同,分别填写不同的语言。应用描述是对App特色和功能的详细介绍,尽量在描述的前三行展现出产品的核心特色,这样才能吸引用户。目前应用描述只有在 App 更新版本时才能修改。这里需要注意的是应用描述的内容不允许填写特殊字符
  • 关键词:关键词允许填写100个字符,利用好可填写的100个字符,将100个字符尽量写满。虽然苹果官方给出的建议是每一个关键词用逗号隔开,但为了使App覆盖到更多关键词,开发者们可以选择在关键词中尽量少地使用逗号。如果有需要强调的关键词,可以单独用逗号隔开。关键词的设置影响着App会在哪些搜索结果中显示,以及在这些搜索结果中的基础排名。
  • 应用分级:应用分级是苹果开发者后台一个必填的应用信息属性,根据对13个问题的选填结果,分级会即时改变,包括4岁以上、九岁以上、12岁以上、17岁以上、无分级五个等级,无分级状态是无法在App Store上销售的。问题选填时应与应用的实际情况相符,不然容易出现审核被拒的请况。
  • 需要各个版本的屏幕截图,运行模拟器,还有就是一个1024*1024的图标,图标不能有圆角。
    iOS上架该怎么做?图片: https://uploader.shimo.im/f/jQ95nq7LfTQiJ9hB.png
  • App预定:对于那些支持预定的App,在App未上架之前用户可以提前在App Store查看产品页面并预定该产品,等产品上线之后,用户会收到通知,这个功能可用于产品正式上线之前的预热,开发者可以根据市场热度反馈提前对产品相关内容进行适当调整。

    4、打包上传App

    将 2 步骤中申请好的证书和描述文件正确配置到 Xcode 中,设置好Xcode的一些属性:

  • 在Xcode中选择iOS Device(这里不能选择模拟器);
  • 如果应用不支持横屏,请在 General 选项中将 Landscape Left 和 Landscape Right 两项的勾选去掉;
  • 查看版本号和构建版本号;
  • 配置发布在证书。如果这里没有×××叹号,代表你的配置没问题,如果有,那就是证书和描述文件不匹配,或者描述文件里刚才选的Bundle和现在的工程的Bundle Identifier不一致。
  • 将断点、全局断点、僵尸模式等都去掉;
  • 设置为 Release 模式。Debug是测试用的,Release是发布用的
  • 之后便可选择 Xcode->Product->Archive打包项目,打包完成后选择 Upload to App Store上传。如果不想使用 Xcode上传的话,也可以选择 Export导出ipa文件, 需要注意的是在导出时,必须选择 Save for iOS App Store Deployment。然后通过Application Loader 工具上传 ipa 文件。

5、提交审核

App打包完成后,需要上传App Store Connect。按照以下步骤操作:

  • 确保App所有功能开发测试完成。
  • 进入App Store Connect创建新的App,填写完成App信息。
  • 执行archive操作,打包ipa或直接上传构建版本(使用Xcode或者Application Loader)。
  • 新建App版本号,选择已上传的构建版本,提交审核。

审核的注意事项:

  • 仔细检查关于App的各项资料是否填写正确,需要特别注意不同语言下的信息是否准确无误。
  • 如果App是需要登录账号才能进入的,那么需要在后台填写测试账号以供苹果审核。
  • 需要准备已经在线隐私政策协议,见附件,把本应用替换为App名称。
  • 对于等待审核的版本,您仍可以编辑所有信息。要提交新的构建版本,您必须将此版本从审核中移除。

二、iOS上架的一些建议

1、App的文字描述不能越界,苹果官方首先会看App的文字描述,如果不过关,直接拒绝;当然脱离苹果的宣传是另外一回事。
2、苹果默认采取的是最小策略:硬件需求最小化;苹果在审核的时候会最大化的关闭硬件参数,所以一定要在参数说明中加入硬件参数。
3、要想避免各种被苹果拒绝的情况,最好的办法就是阅读苹果的相关条例!
4、,如果你的产品已经申请上架,但是发现了产品存在Bug或者其他问题。建议还是自己打回来,不要等苹果来拒绝了。
5、绝大多数的App上架审核但是需要7天的,有些运气好的可以一天时间内就通过了,这种情况很少见。不过,每个账号有两次机会申请加急处理。
6、你的Xcode必须是正式版的,beta版本的Xcode是不能上传项目的。
7、关于iOS渠道统计的问题,可以使用工具 openinstall ,通过渠道链接来统计iOS分渠道数据,只需要上传一个标准安装包,即可无限生成携带不同参数的渠道链接或者二维码,同时兼容iOS/Android,然后根据需求把渠道链接或者二维码分发到各个渠道,实时统计数据。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/biaolipian0851/article/details/100966339

智能推荐

计算机室内设计绘图,室内设计中手绘和电脑制图的比较_三叶难夏的博客-程序员宅基地

邓蓝摘 要:过去十余年随着电脑的兴起和普及,设计师们曾沉迷于挑战电脑效果图的制作,然而复古似乎是每个时代不变的主题,如今人们又开始对手绘效果图感兴趣了。人们追求新事物达到一定程度时又反过来怀念以前的旧事物,这其中除了人性的复杂当然也离不开时代的发展与客观需求。如今无论是手绘效果图还是电脑效果图都是室内设计师们需要掌握的技能,也是室内设计专业的在校学生需要学习的课程。本文立足于室内设计专业的在校学生...

整理--清除标签默认样式_Lucy-的博客-程序员宅基地

a标签:a, a:hover, a:visited, a:link, a:active { color:#000; text-decoration:none; outline: none; // a标签的四种状态都和本身颜色保持一致}button按钮:.button{ border:0; background-color:non...

char a[]和char *a的比较,数组名,数组首地址,a,&a,&a[0]_keepingstudying的博客-程序员宅基地

char a[]和char *a的比较指针和数组存在着一些本质的区别。当然,在某种情况下,比如数组作为函数的参数进行传递时,由于该数组自动退化为同类型的指针,所以在函数内部,作为函数参数传递进来的指针与数组确实具有一定的一致性,但这只是一种比较特殊的情况而已,在本质上,两者是有区别的。请看以下的例子: char a[] = "1234567";char *p = "

Android Studio项目打包时资源文件报错解决办法_丧心病狂大丧失的博客-程序员宅基地

有的项目打包时会报Error:(64) Error: "xxx.xml" is translated here but not found in defaul这种错误1.build.gradle里的android{}里添加lintOptions { abortOnError false}2.build.gradle里的android{}里添加lintOpt

iOS开发中通知(Notification)快速入门及推送通知实现教程_和纱Kazusa的博客-程序员宅基地_ios开发 通知

转载自:http://www.111cn.net/sj/ios8/90190.htm通知(Notification)是开发框架中观察者模式的一种实现方式,内部的实现机制由Cocoa框架支持,通常用于试图控制器和数据模型的交互。通过通知,可以向一个或者多个对象发送消息。继承自NSObject,实现了NSCopying Protocol协议。通知通过通知中心(NSNot

Inno Setup 介绍_lisizhe1989的博客-程序员宅基地

Inno Setup 详解中文资料 其一:使用教程一、Inno Setup 是什么?InnoSetup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。二、Inno Setup 能干什么?1.支持现在所有正在使用的 Windows 版本...

随便推点

ExecuteNonQuery()返回受影响行数的问题_hjingtao的博客-程序员宅基地

在使用ExecuteNonQuery()方法时,如果是执行update,insert或者delete操作,该方法返回操作影响的行数,如果执行失败,返回-1;而如果是执行select或者其它像create之类的操作,则无论成功还是失败都返回-1.所以我的那段代码这么写并不能判断SQLHelper类的操作是否正确执行了,要改成下面这样就可以了.        SqlCommand cmd = ne

解决关于如何实现锁屏后继续播放音乐的问题_aotui3855的博客-程序员宅基地

转自:http://www.cocoachina.com/bbs/read.php?tid-26984.html今天收到论坛一兄弟的PM,询问实现黑屏后继续播放的问题,考虑可能有很多人有这个需求,所以单独开个帖子说明一下。另外我在做这个电子书的过程中也积累了一些经验,主要是UnviersalApp相关的,如何在一个app里支持所有的iPhone/iTouch,iPad,iPho...

Flutter混合开发-Null check operator used on a null value_家驹六月天的博客-程序员宅基地

标题Flutter与Android混编在Android与Flutter混编中导入flutter的GetX框架时,配置getPages参数出错,在编译时不报错,但是运行之后,debug模式下出现红底白色的错误,错误显示为 Null check operator used on a null value,看一眼懵了,本地开发版本使用的是flutter2,配置的Getx库也确实在很早的版本中就支持了Null safety ,且配置的getPages为数组并且可为空,按照常理怎么也不可能出现这个错误!尝试的方案

STM32之ADC_3(内部通道)_linzhihan7410的博客-程序员宅基地

ADC的内部通道: STM32的ADC除了可以用外部通道来采集外部模拟电压信号之外,还有两个内部通道16和17。其中通道16是连接至芯片上的温度传感器,通道17是连接至内部电源模块.(所以这两个通道可以用来检测STM32芯片d额温度和电源状态,就可以检测芯片运行的状态啦!)温度检测实例: 通道16是把内部温度传感器输出的模拟电压转换成数字值,通过公式运算我们就可以得到温度值.内部温度

用c 实现顺序栈_codingstyle的博客-程序员宅基地_下面函数push_seqstack (seqstack *s, datatype x)实现了在顺序栈

栈 1.栈的定义与基本操作     栈(stack)是一种仅允许在一端插入和删除运算的线性表。栈中允许进行插入和删除的一端,称为栈顶(top)。栈顶的第一个元素称为栈顶元素。栈中不可以插入和删除的那一端,称为栈底(bottom)。在一个栈中插入新元素,即把新元素放到当前栈顶元素的上面,使其成为新的栈顶元素,这一操作称为进栈,入栈或压栈(push)。从一个栈中删除一个元素,把栈顶元素

判断android手机是否root过。_javalive09的博客-程序员宅基地

adb shell 。    su    如果拒绝则没有root。