前言
作为一个iOS开发来说,头疼的不是提出的需求有多么难实现,也不是出现的bug有多么难解决,而是app开发完成,测试完美ending,你以为这样就万事大吉了?错❌,最后一个可大可小的 坑,也许会让你一两个月都爬不出来,那就是 AppStore上架审核。
相对于安卓应用,iOS版本的发布,乔布斯真的没给你太多选择,果断还是有钱人说了算,那么只能听他安排,乖乖的去App Store 填写一大串基本信息,上传安装包,提交审核。别看口头上说的貌似挺简单,只有当你亲身经历,屡遭苹果毒手,才知道什么叫绝望。
App Store三步曲
在描述我惨痛经历之前,先给大家介绍下App Store审核的流程
苹果审核大体分为三部分,预审、机审和人工审核。目前应用提审的整个流程大体分为五个阶段:
Prepare For Upload(准备上传)
Waiting For Review(等待审核)
In Review(审核)
Pending Developer Release(等待开发者发布)
Ready For Sale(准备销售)
APP上传后,会进入到 Wait for Review 状态,而后进入到In Review状态,In Review一般2天左右就会审核通过或者是被打回。
包上传后首先进入的是预审,会被扫描API等,预审通过后会在iTC里出现,然后才可以提交至 Waiting;
在 Waiting For Review(等待审核)阶段一般是机审,机审主要是对代码进行机器审核,排查APP是否重复应用,更多地依赖机器自动审核,减少人工成本;
通过后会进入In Review(审核)阶段,即人工审核阶段,这个阶段主要看的是App的元数据,例如APP封面、功能、体验等等,注重用户体验。
苹果官方提供审核指南文档以及常见被拒总结:
https://developer.apple.com/cn/app-store/launch/
那么下面就记录一下项目上线过程中那些层出不穷的拒绝理由
问题记录
1、应用内带检查更新功能
Your app includes an update button or alerts the user to update the app. To avoid user confusion, app version updates must utilize the iOS built-in update mechanism. We’ve attached screenshot(s) for your reference.
Next Steps
Please remove the update feature from your app. To distribute a new version of your app, upload the new app binary version into the same iTunes Connect record you created for the app’s previous version. Updated versions keep the same Apple ID, iTunes Connect ID (SKU), and bundle ID as the original version, and are available free to customers who purchased a previous version.
解析:从2015年3月起,所有包含检查更新功能的 App 都会被拒绝上架。所以应用中不允许出现检查更新的字样,而且设计版本号的地方也不能有点击效果,否则苹果会误以为这是更新版本。
2、iPhone 应用在 iPad 上不能正常显示
We noticed that your app did not run at iPhone resolution when reviewed on iPad running iOS 9.1, which is a violation of the App Store Review Guidelines. We’ve attached screenshot(s) for your reference.
Specifically, the buttons at the bottom of the app are inaccessible when running on iPad.
Next Steps
Please revise your app to ensure it runs at iPhone resolution on iPad.
解析:iPhone程序必须不经修改就能以iPhone分辨率和2倍iPhone 3GS的分辨率在iPad上运行。即使你的App 只为 iPhone 用户提供,在 iPad 上也必须能够正常显示,否则审核会被拒绝。开发人员做好适配。
3、使用第三方登录问题
Additionally, we found that your app requires the installation of another app before it can be used, which is not in compliance with the App Store Review Guidelines. Apps should be able to run on launch, without requiring additional applications to be installed.
Specifically, we were required to install WeChat/QQ before we could use the sharing features in your app.
Please revise your app so that a user can use it upon launch. If your app requires authentication before use, please use a method that can authenticate users from within your app.
解析:接入第三方登录要检测是否安装了第三方客户端,未安装时不要显示对应按钮。2015年9月之前,通常可以采用判断未安装则隐藏登录按钮的方式。但目前隐藏按钮的方式也可能被审核拒绝,QQ 和微博提供了 web 登录的方式,如果判断未安装,需要允许用户使用 webview 的登录方式。苹果在条款中有声明不允许 iOS 应用的正常使用需要依赖另外一个 App。
以上这三点是开发人员开发过程中需要注意,并且可以主动去避免的。
4、Guideline 2.1 - Information Needed
We have started the review of your app, but we were unable to successfully register for an in-app account. In order for us to review your app, please provide a demo account so that we may fully assess your app's features.
Next Steps
To help us proceed with the review of your app, please provide a user name and password in the App Review Information section for your app in iTunes Connect. Please be sure to include content in your app that demonstrates the features and functionality available in your app.
To provide demo account information:
- Log in to iTunes Connect
- Click "My Apps"
- Select your app
- Click on the app version on the left side of the screen
- Scroll down to "App Review Information"
- Select the "Sign-in required" box
- Enter demo credentials in the "User name" and "Password" fields
- Once you've completed all changes, click the "Save" button at the top of the Version Information page.
If your iTunes Connect status shows as Metadata Rejected, we do not require a new binary to correct this issue. Please reply to this message in Resolution Center to confirm the availability of a valid demo account, and we will continue with the review.
解析:根据描述,是提供的app登录帐号,苹果审核时输入并不能成功登录导致。所以这种情况
第一,要确保服务器状态稳定,保证苹果审核期间接口都能正常请求
第二,确保提供的帐号的确能够登录,并且后台数据库需要长期保留该帐号信息,勿删。
5、Guideline 2.3.3 - Performance - Accurate Metadata
We noticed that your screenshots do not sufficiently reflect your app in use.
Please see attached screenshots for details.
Next Steps
To resolve this issue, please revise your screenshots to ensure that they accurately reflect the app in use on the supported devices. For iPhone, you need a set of 5.5-inch display screenshots and for iPad, you need a set for 12.9-inch display. This set will be scaled appropriately down to other device sizes when viewed on the App Store in each territory.
Resources
For resources on creating great screenshots for the App Store, you may want to review the App Store Product Page information available on the Apple developer portal.
Please ensure you have made any screenshot modifications using Media Manager. You should confirm your app looks and behaves identically in all languages and on all supported devices. Learn how to use Media Manager to add custom screenshots for each display size and localization.
Since your iTunes Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit iTunes Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.
NOTE: Please be sure to make any metadata changes to all app localizations by selecting each specific localization and making appropriate changes.
解析:简单点说就是自己的应用截图不能反应自己App的主要功能,然后重新换了截图,能展示主要功能的截图即可。
6、Guideline 2.1 - Performance - App Completeness
We discovered one or more bugs in your app when reviewed on iPad running iOS 11.4.1 on Wi-Fi connected to an IPv6 network.
Specifically, we were unable to fully load your app’s content during review.
Next Steps
To resolve this issue, please run your app on a device to identify any issues, then revise and resubmit your app for review.
If we misunderstood the intended behavior of your app, please reply to this message in Resolution Center to provide information on how these features were intended to work.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce the issue. For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue.
Resources
For information about testing your app and preparing it for review, please see Technical Note TN2431: App Testing Guide.
For a networking overview, please review About Networking. For a more specific overview of App Review’s IPv6 requirements, please review the IPv6 and App Review discussion on the Apple Developer Forum.
Please see attached screenshot for details.
解析:ipv6的问题,具体参考以下地址 https://shimo.im/docs/r4WRJroUsdMJHPoa/ 《iOS上架iPV6被拒问题》,可复制链接后用石墨文档 App 打开
7、Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage
We noticed that your app requests the user’s consent to access their camera but does not clarify the use of this feature in the permission modal alert.
Next Steps
To resolve this issue, please revise the permission modal alert to specify why the app is requesting access to the user's camera.
The permission request alert should specify how your app will use this feature to help users understand why your app is requesting access to their personal data.
Resources
For additional information and instructions on configuring and presenting an alert, please review the Requesting Permission section of the iOS Human Interface Guidelines and the Information Property List Key Reference. You may also want to review the Technical Q&A QA1937: Resolving the Privacy-Sensitive Data App Rejection page for details on how to provide a usage description for permission request alerts.
Learn more about Protecting the User’s Privacy.
Please see attached screenshots for details.
一般苹果会配备以下类似截图
解析:自从iOS10之后加入了各种权限问题,比如相机、相册、网络、定位等等权限,应用中使用这些权限的过程中必须配备详细描述,使用这项权限干什么,比如请求使用您的定位权限,便于为您提供周边景区服务。所以描述完整很重要。
8、Guideline 5.2.1 - Legal - Intellectual Property
The seller and company names associated with your app do not reflect the name “西安市人民政府” in the app or its metadata, as required by Guideline 5.2.1 of the App Store Review Guidelines.
Next Steps
Your app must be published under a seller name and company name that reflects the 西安市人民政府 name. If you have developed this app on behalf of a client, please advise your client to add you to the development team of their Apple Developer account.
Once created, you cannot change your seller name or company name in iTunes Connect. For assistance with changing your company name or seller name, you will need to contact iTunes Connect through the Contact Us page. Select Getting Started from the first dropdown menu, then select General iTunes Connect Inquiry to contact the appropriate iTunes Connect team.
解析:涉及到一个资质问题,大致就是说该帐号并不能代表某机构或者某组织去发布销售该应用,
一般情况都是其他项目想用我们公司帐号上架,出现这种问题,也就是说我们公司暂时无法代表政
府去发布某政务服务应用。一般解决方案去除应用中明显的字眼:比如xxx市人民政务,xxx市政
务服务中心,或者直接客户自己提供开发者帐号,不用我们公司帐号上架
9、应用出现 beta版、测试版字样
Your app appears to be a pre-release, test, or trial version with a limited feature set. Apps that are created for demonstration or trial purposes are not appropriate for the App Store and do not comply with the App Store Review Guidelines.
To ensure compliance with the App Store Review Guidelines, it would be appropriate to revise your app to complete, remove, or fully configure any partially implemented feature(s).
If you would like to conduct beta trial for your app, you may wish to review the TestFlight Beta Testing Guide.
解析:不要过度谦虚地在启动画面或者应用名称上加上”beta”字样,苹果不允许测试版产品上架。也就是整个应用无论从启动到细枝末节的某个页面上都不要出现测试、beta字样,一经苹果审核到,基本都是被打回。