应用被苹果拒之门外的 9 个意外原因
程序员文章站
2024-02-24 16:04:41
...
苹果应用商店的审核流程是为了确保生态体系的健康,将低质量和恶意的应用排除在外。总体而言,这种做法是行之有效的。可是有时候应用被拒的原因有些令人莫名其妙,以下是 Xamarin 的联合创始人及 CEO Nat Friedman 总结的 9 个拒绝理由。
1. “beta”是敏感词
Google 把发布模糊的“beta”服务变成行业惯例,但是苹果对此却要求严格。如果应用名字里面有“Beta”、“Preview”甚至“0.9 版”之类表明应用尚未准备就绪的词语,那应用就有可能被拒。
2. 加载时间过长
所有移动操作系统(iOS、Android 甚至 Windows)都对启动时间有要求。iOS 的最高启动时间是 15 秒,如果应用不达标,iOS 会把它干掉。
但是,哪怕应用在本地测试时启动时间符合要求,网络慢、硬件慢等不同的环境因素也可能导致应用在接受审核时启动过慢。因此不要仅仅依赖 iOS 模拟器,要在实际硬件中对应用进行测试,最好拿一些老一点的手机去试,这样才能确保所有用户的启动时间符合要求。
请记住,应用的启动时间是给用户留下印象的第一个机会。
3. 链接到外部支付方式
苹果要求所有的数字内容都要在内置的 iTunes 元以内销售机制中售卖。无论是一次性购买或者订购模式均如此。违反这一原则,应用必被毙掉无疑。Kindle 应用不允许用户购买新书的原因也是如此。
有一点值得注意,苹果甚至连应用中有到外部支付机制的网页链接也不行。比较出名的例子是 Dropbox—因为其基于 web 的登录屏幕含有购买额外空间的连接而被拒。而且受影响的不仅仅是 Dropbox 应用,甚至使用 Dropbox SDK 的也遭了殃。
因此,一定要确保应用的所有购买都是通过 iTunes 账号进行的。不过,非数字服务或商品属于例外,比方说通过应用订房就可以。
4. 不要提支持其他平台
如果你的应用也支持 Windows 或 Android,在你自己的网站上面说,不要在应用或应用商店上提,如果上面出现竞争对手的名字,苹果会很生气。
5. 本地化问题
应用的用户是全球性的。如果应用没有针对多种语言进行本地化,那会显得比较业余。利用 NSNumberFormatter 或 Invariant Culture 之类的扩展以及模拟器来测试不同地方的用户体验,从而确保日期等数据符合用户所在地区。
比方说曾经有欧洲的应用因为不能处理负值的经纬度而被拒。
6. 存储与文件系统的不当使用
iOS 5.1 发布不久,苹果曾经拒绝了某个应用的更新,因为开发者将 2MB 的数据库加压到文件系统中,违背了 iCloud 只备份用户生成内容的原则。
任何可再生或可从远程服务器重新下载的数据都不应该备份。非用户数据最好找个缓存的地方,或者标记为“不备份”属性。
7. 因为用户拒绝授权而崩溃
在 iOS 6 中,只有用户许可后用户才能访问地址簿、图库、方位、日历、蓝牙、Twitter 及 Facebook 的账号。如果用户选择禁止应用访问这些服务,那么应用的功能就有可能运行不正确。而功能运行不正确会引起苹果自动拒绝应用通过。开发者应该测试用户“允许”和“不允许”使用各种数据的情况,包括用户一开始允许后面有改为不允许的情况,确保应用在各种情况下都能运转正常。
8. 图标、按钮使用不当
许多 iOS 应用被拒往往不是因为性能或功能问题,而是因为 UI 方面的小毛病。需熟知《苹果人机界面指南》,可利用标准的 UIButtonBarSystemItem 来要确保内置图标和按钮外观风格统一。
比方说,不要把“排版”图标用到非内容创作的应用上。苹果工程师希望应用的行为是可预测的,因此对这方面加以限制也是可以理解的。
9. 误用商标和标志
不要在应用或产品图片中使用商标或苹果图标、标志。甚至画有 iPhone 的图标也不能用。应用的关键字含有商标的应用也曾被拒过。
不过被拒了也别慌,改正问题重新提交就是了。在紧急情况下,苹果还有加急的审核流程,可适用于关键 bug 修补或者安全问题。不过这一流程也不要滥用,否则你的应用从此会被苹果拒之门外。
未雨绸缪总好过亡羊补牢。请仔细研究提交指南,把精力投入到开发高品质的应用上。用户会感激你的。
Via venturebeat.com
1. “beta”是敏感词
Google 把发布模糊的“beta”服务变成行业惯例,但是苹果对此却要求严格。如果应用名字里面有“Beta”、“Preview”甚至“0.9 版”之类表明应用尚未准备就绪的词语,那应用就有可能被拒。
2. 加载时间过长
所有移动操作系统(iOS、Android 甚至 Windows)都对启动时间有要求。iOS 的最高启动时间是 15 秒,如果应用不达标,iOS 会把它干掉。
但是,哪怕应用在本地测试时启动时间符合要求,网络慢、硬件慢等不同的环境因素也可能导致应用在接受审核时启动过慢。因此不要仅仅依赖 iOS 模拟器,要在实际硬件中对应用进行测试,最好拿一些老一点的手机去试,这样才能确保所有用户的启动时间符合要求。
请记住,应用的启动时间是给用户留下印象的第一个机会。
3. 链接到外部支付方式
苹果要求所有的数字内容都要在内置的 iTunes 元以内销售机制中售卖。无论是一次性购买或者订购模式均如此。违反这一原则,应用必被毙掉无疑。Kindle 应用不允许用户购买新书的原因也是如此。
有一点值得注意,苹果甚至连应用中有到外部支付机制的网页链接也不行。比较出名的例子是 Dropbox—因为其基于 web 的登录屏幕含有购买额外空间的连接而被拒。而且受影响的不仅仅是 Dropbox 应用,甚至使用 Dropbox SDK 的也遭了殃。
因此,一定要确保应用的所有购买都是通过 iTunes 账号进行的。不过,非数字服务或商品属于例外,比方说通过应用订房就可以。
4. 不要提支持其他平台
如果你的应用也支持 Windows 或 Android,在你自己的网站上面说,不要在应用或应用商店上提,如果上面出现竞争对手的名字,苹果会很生气。
5. 本地化问题
应用的用户是全球性的。如果应用没有针对多种语言进行本地化,那会显得比较业余。利用 NSNumberFormatter 或 Invariant Culture 之类的扩展以及模拟器来测试不同地方的用户体验,从而确保日期等数据符合用户所在地区。
比方说曾经有欧洲的应用因为不能处理负值的经纬度而被拒。
6. 存储与文件系统的不当使用
iOS 5.1 发布不久,苹果曾经拒绝了某个应用的更新,因为开发者将 2MB 的数据库加压到文件系统中,违背了 iCloud 只备份用户生成内容的原则。
任何可再生或可从远程服务器重新下载的数据都不应该备份。非用户数据最好找个缓存的地方,或者标记为“不备份”属性。
7. 因为用户拒绝授权而崩溃
在 iOS 6 中,只有用户许可后用户才能访问地址簿、图库、方位、日历、蓝牙、Twitter 及 Facebook 的账号。如果用户选择禁止应用访问这些服务,那么应用的功能就有可能运行不正确。而功能运行不正确会引起苹果自动拒绝应用通过。开发者应该测试用户“允许”和“不允许”使用各种数据的情况,包括用户一开始允许后面有改为不允许的情况,确保应用在各种情况下都能运转正常。
8. 图标、按钮使用不当
许多 iOS 应用被拒往往不是因为性能或功能问题,而是因为 UI 方面的小毛病。需熟知《苹果人机界面指南》,可利用标准的 UIButtonBarSystemItem 来要确保内置图标和按钮外观风格统一。
比方说,不要把“排版”图标用到非内容创作的应用上。苹果工程师希望应用的行为是可预测的,因此对这方面加以限制也是可以理解的。
9. 误用商标和标志
不要在应用或产品图片中使用商标或苹果图标、标志。甚至画有 iPhone 的图标也不能用。应用的关键字含有商标的应用也曾被拒过。
不过被拒了也别慌,改正问题重新提交就是了。在紧急情况下,苹果还有加急的审核流程,可适用于关键 bug 修补或者安全问题。不过这一流程也不要滥用,否则你的应用从此会被苹果拒之门外。
未雨绸缪总好过亡羊补牢。请仔细研究提交指南,把精力投入到开发高品质的应用上。用户会感激你的。
Via venturebeat.com
推荐阅读