一、上线流程
1.Appstore应用上线流程
2. iOS项目上传到AppStore步骤流程
3.IOS应用程序发布到苹果APP STORE完整
4.iOS9下App Store应用上传新指南
5.iOS新上线注意事项
二、APP上线被APPStore拒绝的各种原因
1、程序有重大bug,程序不能启动,或者中途退出。
2、绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币。
3、游戏里有实物奖励的话,一定要说清楚,奖励由本公司负责,和苹果没有关系。
4、用到苹果的标志。(应用的设计和Apple的Logo风格太像了也会被拒)
5、网络功能不能正常访问。
6、图标不能点击,不能点击的图标要置灰,或者直接隐藏。
7、没有设置default页,启动画面为黑屏,有一定概率被拒绝。
8、一个应用在线,但你想在发一个豪华版之类的,再开一个应用也会被拒绝。9、用了著名游戏的关键字,比如说“愤怒的小鸟”之类的。
10、iPhone版不支持480320分辨率被决绝。
11、娱乐分类App,拒绝理由:我们认为你的App不具有娱乐性。
12、你的软件不符合中国法律,还打电话来跟我说。(奶奶的,中国哪个法律说不可以FQ。)
13、技术支持地址写的微博地址,于是被拒绝了。原因是:不能将需要登陆才能访问的网址作为技术支持地址。
14、说我们的应用不该用App开发,应该用HTML5。(而且还很热心的给出了参考链接哦)
15、调用截屏功能,当时没注意,是私有API,被拒.改成非私有API实现截屏功能就通过了.
16、开放了文件document分享功能(Application supports iTunes file sharing),被退回,理由:不需要分享,为何开放了.回复邮件说明理由后上线.
17、年龄设置太低,说是有成人内容,被拒.修改内容后上线.
18、同一软件多个版本只是针对不同的国家和内置的语言不同.前面几个上线,后面几个被拒.让改成一个程序做程序内下载资源.
19、程序有crash被拒.修改bug后上线.
20、原因是我们的一个软件只允许联通用户验证真实身份并发布信息。apple要求要么放弃验证,要么允许移动和电信用户验证。
21、APP中出现了某本以乔布斯为封面的本集团出版物图片,遭拒。回复曰:Thank you for submitting your app commemorating Steve Jobs.We appreciate your efforts honoring Steve. However, we’ve decided to honor his life in other ways and we are not accepting these types of apps.
22、原来做过一个显示假电池的App, 就是显示一个假的的电量, 这样别人找你借手机就可以以没电了为理由不借给他. 结果App Store说会迷惑用户, 让我改简介. 改为简介后苹果中国给我打电话说这个App不用再提交了, 不可能过, 会迷惑用户… 我了个去的 于是这个App就一直存在在我的iTunes Connect里.
23、忘记提供测试账号。(如果你的APP有登录功能)
24、软件有个vip功能,涉嫌应用内收费。
25、拨打电话,涉嫌扣费。
26、图片如果比较清凉的话需要设置软件级别。
27、平板应用要支持最少2个翻转方向。
28、程序内按钮设计成标准的iOS icon。
29、内置付费的内容要明确告诉需要购买,购买前不能摆出来(这个属于运气不好,同样这么做的app很多)
30、提交旗下一款新应用,为统一旗下各个产品的品牌识别,采取了与上一款产品相似的色调和logo结构。苹果拒绝理由是不知道这两款产品有什么区别(其实区别点进去就很明显,连UI布局都大相径庭)。
31、应用内涉及到抽奖的运营活动,未声明与苹果官方无关。
32、(丢失)
33、自认为第一版产品还不够完善,于是过度谦虚地在启动画面加上了“beta”字样。苹果的反馈是,不允许测试版产品上架。囧,后来翻了一下 Review Guideline 似乎是有提到这点的。
34、链接堆砌,苹果建议用HTML5来做
35、UIWebView 嵌页面片,苹果建议让用户通过浏览器访问,比如爱知乎,开始几个版本通过了,后面的更新一直没提交上去屏幕坏点检测应用,苹果说会误导用户,未上架
36、登陆账号有两个字母写反了,改正后通过
37、因远程服务器反应慢,苹果的人估计没耐心等,就说有bug给拒了,重新提交一份通过
38、应用标题加了几个描述语句,苹果让在描述中写明达到此目的的操作流程,改正后通过
39、一个第三方的应用,描述文字中有该网站的链接,进去网站后能找到付费链接,苹果说该网站有自己的支付方式,去除网址后通过
40、应用请求使用地理位置的权限,但相关功能藏得比较深,Apple说没找到相关的功能。 — 回信说明后通过
41、应用描述中提到了是全平台应用,可以和其他系统同步数据。因为提到了“Android”的字眼被拒。 — 修改描述后通过
42、 App 的User Agreement中出现了 Beta、Preliminary 等字样。因为是发布第一个版本,产品带有一定的beta性质,但是确实是可发布产品了。按照公司LEGAL部门(外企,对User Agreement要求严格)的要求,必须有类似Beta的说明告知用户,而 Apple 是明确不允许有 Beta 性质的字样的。
43、App 是一个机遇小区的社区工具,顺便做了房产广告,但是 apple 审核说是广告app,不允许发布。
44、应用里有个去给我们打分的功能,被拒了。。(这是不是史上最坑爹的拒绝理由)
45、网络工具软件,要求支持国外的电信运营商网络。
46、曾经做一个 Chinajoy 美女图片 show 的,被认为不适合放在 App Store。47、iOS 5 的数据存储问题…网络下载的资源不能直接搞在Documents目录下。这个反复整了5次左右才通过审核。
48、忘记提供测试账号……(审核的大爷们你们就不能自己弄个或者注册个账号么)
49、还有一次被拒,我回复说你们所说的问题不存在……后来……通过审核了。-.-
50、菜单中有一个文字包含测试,被打回,说不能上测试版本。
51、app名字包含pad,被打回,说容易名字不能有pad,会被误解为苹果自己的应用,不过同名的iphone版本就通过了…
52、upport地址在safari(仅仅是safari)下由于适配性问题打不开,结果就收到了apple的来信。
53、app里做了次抽奖,奖品是iphone4s,结果他们必须要我们将奖品改成别的,同时申明此活动与苹果公司无关,才可以上架。。。
54、app里做了次抽奖,奖品是iphone4s,结果他们必须要我们将奖品改成别的,同时申明此活动与苹果公司无关,才可以上架。。。
55、在程序的说明信息中有“越狱”俩字,被拒,后来把这俩字去了,PASS。但是:如果我在程序运行中检测出手机越狱了,这结果报出来让不让过?
56、使用GPS常驻后台服务,要我给出一个合适的理由,否则不往下审核,还好,解释一翻过去了。
57、出现“给我们五星好评”之类的文字。
58、应用内提到付费项目但木有通过苹果付费渠道(妄图不让苹果老大赚钱)59、问我服务是不是只在IOS平台,还是同时支持多平台(我当然拥护苹果老大的领导,木有其他平台,iPhone专属)
60、地图应用,Google大神的LOGO没有显示。
61、google地图下面logo被一个UIView给遮挡了被拒。调整位置后ok
62、对不存在普遍比较标准的几类人进行比较和评判。不比人比动物后ok
63、上传通讯录没有通知。这个等了几个月,苹果的法律纠纷差不多了之后拒掉。然后加了提示后ok。
64、我写的英文App介绍审核人员看不懂,被拒。后然直接用中文。唉。
65、因为上行短信实现用户认证被拒66、果测试人员的手机号在国外,因为收不到国内短信,被拒
67、他们打开我的一个APP测试,显示空白无内容,哈哈,因为他们相册里没有960640的图,就说我该程序功能没开发完毕吧?然后我回了信,然后第二天就上架了。虽然这个小应用是极其简单的。
68、最蛋疼的是,提供了测试用户帐号密码,被我们某个手贱的测试人员测试修改密码的时候给改掉了。。。于是苹果登录不进来,于是杯具
69、IAP价格不能超过99美金(其中有一个是99.99美元,你妹啊!!!!!!!你麻痹多出0.99美金啊!!人家游戏都可以有啊!!!!为什么我们就不行啊!!!)
70、不能强迫用户注册(网络游戏啊亲!!你妹有直接登陆的按钮啊!!!不需要注册的啊!!试一下会shi啊!!!!)
71、support URL无法访问(草草草草草!!!那几天GFW抽风,海外访问国内网站有问题,你妹躲在香港的体谅一下大陆人民啊!!!)
72、没有生成Paid iOS合同(游戏内含IAP,好吧,这个是合作公司搞的乌龙,就不吐槽苹果了)
73、某微博客户端,提供了测试账号,被拒的理由是「账号登录不进去」,还有截屏,我一看,这不把我们提供的测试账号的最后两个字母写反了么…赶紧反馈,之后三天才继续审核,这三天真是太赔了。
74、某门户新闻客户端,免费应用,被拒的理由是「找不到in app purchase的项目对应的界面」,可是我们的应用跟本没有应用内支付,继续反馈…又等了三天…75、iPhone Human Interface Guidelines中指出了基本UI控件应该如何正确地使用。我们应该按照它的要求来检查Tab Bar、Navigation Bar和Alert View等控件是否符合Apple的口味。
76、确保应用不要模仿设备预装应用的样式和功能,如Music、iTunes Music Store和App Store等。这一条规则似乎是选择性实施的,因为许多浏览器和指南针类的应用都得到了批准。
77、不要加入过多脏话、无理由的成人场面和吸毒场面。
78、不要对硬件按钮进行重新编程,赋予其它功能。例如,不要将音量按钮作为照相应用的快门键,不要将home键作为游戏中的开火键。
三、常见问题
1.BUG
2.2 - Apps that exhibit bugs will be rejected
程序有bug,这个应该属于最浅显易懂的拒绝原因。但是谁又会提交一个有明显bug的版本上去呢?
我们有一个“使用微信登陆”的按钮,审核人员告诉我们,“unresponsive when tapped”,原因其实就是没有检查用户是否安装了微信,导致在未安装微信的设备上,这个按钮就没有响应。
2.程序依赖
10.6 - Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good, it may be rejected
这段话的说法其实很模糊,你的程序太差了所以被拒绝了。不过好在每次审核人员都会解释到底“差”在哪里,并且附上一个“Next Steps”告诉你怎么解决。(不过Beta版的审核人员不会这么做,感觉这是两个不同的部门,审核标准也略有不同,正式上架的审核会严格些,下文会详细介绍。)
Apps should be able to run on launch, without requiring additional applications to be installed.
这句话很重要,我们因为这个原因被拒了两次。我们的应用需要登陆,我们开始时我们只提供了一个第三方的微信登陆,第一次提交后,我们“贴心”的增加了判断,当用户未安装微信时点击微信登陆,会收到弹窗提醒告诉你未安装。不允许。
后一次提交的时候,我们增加了QQ作为登陆方式,结果QQ提供的手机SDK也和微信一个尿性,不装应用不能登录,更甚者不装最新版的不能登陆。毫无疑问,我们又被拒了,这次审核人员很贴心的用了一个“still”:We still find that your app requires the installation of another app before it can be used。于是我们很自作聪明的采用QQweb的登录方式来绕过必须安装手机QQ的问题,花了好大的精力,但实际上意义不大,国内不装手机QQ的用户屈指可数,而且不用qq的人基本上也不属于我们的应用的潜在用户。
这样做总算是通过了Beta版的审核,当我们正式提交的时候,还是被拒了。
Apps should be able to run on launch, without requiring additional applications to be installed.
这句话很重要,所以要说两遍。没装微信时,我们给了提示,不允许。在审核人员看来,你这种做法属于“required to install WeChat”。
更加方便的做法应该是,“没装QQ就不显示QQ登陆的按钮,没装微信就不显示微信登陆”,如果确实想用第三方登陆,请使用微博,他家SDK很贴心的在未安装微博时使用网页登陆。最好,你还是提供一个测试账号用于登陆。另外值得注意的是,在ios中,必要的操作都应该在应用内完成,不应该弹出到应用外,我们使用了qq的一个分享功能,qq的sdk在未安装QQ时会弹出到Safari里让用户登陆,因为这个事情,又被拒了一次。
3.用户系统
17.2 - Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected
审核人员告诉我们,我们用了QQ、微信、微博的登陆授权,但是呢,“does not include account-based features offered by that site”,没用到他们网站提供的相应功能。
解决这个问题要么就增加“account-based features of that social network”,要么就使用自己的账户系统。但是网上的资料告诉我们说,自己的账户系统就一定要有完整的一套功能,密码找回之类的,不然会涉及到收集用户信息。
4.游客模式
到底要不要做游客模式,这个问题我们争论了很久,理论上讲,如果你有完整的自己的用户系统,可以注册,那么确实没有必要游客系统。这样的应用有很多,比如微信QQ,比如Nike Training。但是大部分应用都是有的,这个问题的考量,更多的时从用户体验的角度上来看,用户是否必须要登陆才能使用。
what if 只有第三方登陆呢?
这个问题就比较棘手了,按照17.2的说法,必须要有““account-based features of that social network”。在这个问题上,我们理解是这样的,如果你的应用是基于个人账户的,所有的功能点都是围绕着用户系统展开的,那么,只提供一个第三方登陆,应该是远远不够的,你必须要有自己的用户系统;反之,如果你的应用,登陆属于bonus,比如“最美应用”,“ZAKER”(它们刚刚关闭了自有账户的注册),那么,只使用第三方登陆是可以的。
5.iCloud
2.23 - Apps must follow the iOS Data Storage Guidelines or they will be rejected
审核人员说,我们的应用一打开,数据下载完毕后,就产生了3兆多的数据,这些数据我们默认是储存在/Documents里的,这个目录下的数据是默认会被同步到iCloud上去的。但是,只有用户自己产生的数据,才可以同步过去。简而言之,我们存错地方了,我们保存的其实是cache文件,这些文件是不应该被同步的,增加"do not back up" attribute就可以了,当然保险起见,cache类的文件不应该储存到/Documents里。
/Documents 里面只能存放用户产生的文件。
如果为了满足应用在离线状态下的使用,那么你缓存文件应当 /Library/Caches这里面。
放在/tmp 里的东西,用完就要去把它删掉。
用户自己放到documents里的数据,你也可以将其设为不同步到iCloud上去,以节约用户的iCloud空间。(毕竟是花钱买到)
上面四条就是 iOS Data Storage Guidelines中提到的四条规则。
另外值得注意的就是iTunes中对于应用数据的暴露,用户通过iTunes是可以直接访问Documents里的数据的,那么如果不希望用户拿到的数据,其实是不应该放在这里面的。
四、同行反馈
开发者在提交应用进行审核后,总会遇到各种各样的被拒理由,大部分被拒理由可以从苹果的App Store审核指南中找到,不过也有一些比较奇葩的理由,偶尔也会有一些苹果审核人员的人为原因,你曾经被拒的理由,尤其是奇葩理由有哪些呢?看看这些网友们遇到过的奇葩理由及解决办法。
App中设计的图标与Apple原生图标类似,Apple原生图标有专利保护,并且在Design Guideline里面规定,App的图标不能与Apple图标雷同,如iTunes,App Store, iPod等的图标。若出现雷同App将被拒。
app的设置界面、按钮使用了类似iphone的操作方式以及icon的圆角设计 -> 重新设计…
app的年龄设置太低 -> 改了年龄…
app里有实物奖励 -> 免责声明,和苹果无关…
app描述里提了后续版本的功能的字样 -> 删除…
app有打分的功能 -> 有reject的,也有通过的…
app需要使用location,没有提示用户 -> 加了提示,允许用户拒绝…
app没提供测试账号 -> 提供…
app里有私有api -> 修改…
遇到过两个问题:
1.第三方静态库包含私有api的调用(联系第三方技术支持,更新静态库);
2.包含潜在的色情,暴力等内容(调整应用年龄限制等级,并加入举报功能)
游戏中包含可以跳转的URL,被拒
游戏中包含推广非本账号下的APP的,被拒
APP界面设计太像一个网页了,被拒
游戏内购时候做了服务器验证,服务器不稳定,导致测试账号无法充值,被拒
游戏中提供了月卡功能,但是不支持玩家在不同设备中使用,被拒
1: 做浏览器的,分级必须选17+
2: 类似于Android widgets 桌面的应用被拒(不符合用户习惯)
3: Term of service 的URL链接大网页与 “Term of service” 内容不符合,被拒
4: 某个button或者控件的响应,没有与说明描述的一致,被拒
5:iPad应用,UIPopoverController的那个箭头,没有指向对应的按钮或者控件,被拒。(转屏后如果没有指对,也被拒)
6:iPhone程序不能在iPad上跑,或者跑得不好,被拒
7:Documents里的文件,没有按照iCould的指导文档处理好,被拒
app的年龄设置太低 -> 改了改高年龄…
app里有提示用户评价打分的按钮功能 -> 删除…
没有在多个设备测试,iphone5出现界面扭曲->改
app里用了第三方的api -> 修改…
游戏界面丑不符合iPhone用户的期望值,连续被拒2次。 —重画。
永久购买的IAP没有添加恢复购买功能。 —添加。
添加了退出程序的功能不符合人机交互功能。 —删除。
1、和苹果的app store风格类似 修改
2、使用私有API 删除
3、别人的,界面中的iPhone写错成IPhone 修改
1、app内的第三方登陆通过内置浏览器跳转出去的被拒 修改成webView登陆
2、墙纸类应用因为无法控制第三方数据导致部分色情图片的出现会被拒 删除
3、app名称或者内部数据使用到一些被注册商标的名称会被拒 修改名称
4、应用太多简单,界面太过少或者严重违背苹果界面设计准则被拒 重新设计
1、第一次是在审核的时候,app一直提示无法连接到服务器,自己测试没有问题,分析原因可能是Reachability返回无法连接 -改用request返回数据判断后审核通过
2、提交视频类客户端,说没有视频直播的版权 -提供版权说明后通过审核
3、产品仅提供手机号注册,要求提供账号 -提供账号
4、产品的icon和闪屏图片加入了其他公司的logo -去除logo
1.关于我们那个页面为了方便用本地webView布局的,仅此一个页面,就因为这个被拒。提示什么没有native特性,如button。。搞了半天才知道这原因,把webview换成个图片,苹果满意了。
2.某应用,其他都没问题,有个使用说明为了美观我把每一项加了个封面做成书架风格,内容纯txt的。苹果当我卖书的,告诉我,xxx like ebook should be xxx on ebook store.我就把这个删了,通过了。我很想不通那么多txt格式的电子书怎么通过的。。
3.用了个类似优酷那种一点弹出一圈菜单的,说用户会confused疑惑,要有引导说明,没通过。我加上说明也没用。最后还是换了个普通的菜单,通过了。
程序里有提示用户评价
提示语:亲,给个好评!~ 被拒了
改为‘’去APPSTORE评分”通过了
1、app内如果出现苹果设备名称,必须是iPhone、iPad之类的,注意大小写,如果是iphone或者ipad,rejected!!
2、app内如果涉及到登陆或者需要和硬件设备连接才能继续操作的,需要提供测试账号,或者操作视频。
3、私有api的问题,遇到过一次。。。
1.应用内含有有某公司LOGO的图片,没有该公司授权文件,被拒
2.应用关于内含有beta字样,被拒
3.申请证书时勾选了Inter-App Audio,应用内不支持,直接Invalid Binary
4.info.plist里面设置了Required background modes >App plays audio ,审核人员在应用内未发现播放音频的地方,被拒后,在notes里添加音频播放功能说明,通过了
5.注册只局限移动或者联通账号,被拒
6.应用内点击某个功能,提示正在下载,被拒,改为正在加载,过了
非用户产生的数据存放在了Documents目录里,违法icloud备份规范被退回。
应用内搞市场活动送奖品,没有写明和苹果无关,被拒
被拒原因
我们启用了游戏中心,但是做了限制需要玩家玩到某个程度才能开启,然后被拒
解决方案
邮件沟通后录制了在游戏中使用游戏中心功能的视屏,得到通过
来个带条款的:
3.10利用伪造或付费评论的方式在App Store中企图操纵或欺骗用户评价或图表排名的开发程序员(或者采用其他不正当方式)将会从iOS开发者项目中除名
App里有提示用户评论的AlertView:
第一次:give me 5-star rating, you will get 100 coins! 被拒;
第二次:give me 5-star rating, thank you! 被拒;
第三次:plz rate me! 通过。
程序是无法知道用户评了多少评分,所以提示用户给5星算是欺骗用户。而第一条更触犯了付费评论这一点。
小提示,开发者想通过“开关”的形式开控制此提示文本来绕过审核,最好别这么做,坛子里很多人已经因为这个做法被取消IDP了。
11.1 使用App Store以外的软件开启或提供额外功能的应用程序将会被拒绝。
App里,允许用户可以通过分享游戏结果到facebook、邀请facebook好友玩游戏等操作,获得免费金币。被拒;
将这些操作改成不给金币,通过。
“分享结果到facebook”和“邀请facebook好友“属于“app store以外的软件”,“获得免费金币”属于“提供额外的功能”。
10.2与App Store、iTunes Store和iBookstore等提供的iPhone捆绑应用程序类似的应用程序将会被拒绝。
一、之前制作的一款App有用户书架功能,书架界面类似于iBooks将书的封面一本一本的排列在书架上。手指长按书的封面,书架进入编辑模式,封面会抖动。这个编辑功能被拒。改成进入编辑模式后,封面不抖动,通过。
二、之前制作的一款软件有IM功能,用户之间的对话显示高仿系统自带的短信气泡(鲸鱼体),被拒;改成非鲸鱼体的UI,通过。10.1 应用程序必须遵守苹果《iPhone用户界面指导原则》以及《iPad用户界面指导原则》中解释的所有条款和条件。
苹果是不允许应用程序遮盖状态栏的。
之前使用了MTStatusBarOverlay这个开源库,遮盖了状态栏显示任务和进度,被拒;
后来换成别的库不遮盖状态栏,通过。
1.app内评分弹出alert,文字不能诱导用户,比如”好评”,”5星评价”之类的,统统会被reject
2.涉及到音乐,视频类的数据,特别是国外的,如在提交时没有提及版权协议之类的,也会毫不留情被reject,国内的倒还好.
五、加急审核
联系电话
https://developer.apple.com/contact/phone/
六、较新动态
1.iOS工程如何支持64-bit
2.iOS应用兼容IPv6
参考:
1.APP上线被APPStore拒绝的各种原因
2.我提交版本到AppStore审核被拒5次后的经验总结
3.App Store-心酸的上线路,分析AppStore审核失败原因及解决办法
4.一次性通过App Store审核,你只需这样做