iOS审核被拒:2.1 Not Completed——那些“coming soon”害死人的开发故事

发布时间:2026/6/10 2:06:07

iOS审核被拒:2.1 Not Completed——那些“coming soon”害死人的开发故事 先讲一个真实到扎心的故事。一个独立开发者花了三个月做了一个健身App。功能齐全动作库、训练计划、计时器、历史记录。提交审核前他觉得自己已经万无一失。唯一的问题是App里“社区”页面还没做好所以他在那个页面中间放了一张占位图上面写着“社区即将开放敬请期待”。他想“反正核心功能是健身社区只是锦上添花不影响审核吧”两天后他收到一封拒信。条款写着——2.1 Incomplete: Your app contains placeholder content or incomplete features.他不服气回复道“社区功能不是核心我们会在下个版本补齐。”苹果回复“Please remove any placeholder content before resubmission.”他又删掉了“社区”Tab提交。又被拒。因为删了Tab之后首页还有一个入口写着“动态”没删干净。就这样来回折腾了整整两周。这个故事的教训很简单苹果不允许任何形式的“Coming Soon”。哪怕只是一张图、一行字、一个灰掉的按钮、一个跳转后空白页面——只要审核员发现了任何“还没做完”的痕迹就直接判2.1。一、哪些情况会被判定为“未完成功能”“Not Completed”在被拒条款里覆盖的范围其实比你想象的要广得多。以下是真实案例中最高频的触发场景① 页面里出现“敬请期待”“Coming Soon”“即将开放”等字样这是最直接的踩雷。无论是弹窗、占位图、空状态文案还是悬浮标签只要有类似表述一律被拒。审核员不会去判断这个功能是否“重要”他们只看到“这个应用还没做完”。② 按钮点击后无响应或跳转到空白页一个看似正常的按钮点下去要么没有任何反馈要么跳转到一个空白的、写着“功能开发中”的页面。这跟“Coming Soon”本质上没有区别只不过换了一种表现形式。③ Tab/菜单项存在但内容不可用比如底部Tab栏有5个图标其中一个是“消息”或者“我的动态”点进去后只有一张空状态图没有任何功能。审核员会认为这是未完成的功能占位。④ 依赖后台开关才能展示的功能提交审核时处于关闭状态有些开发者为了快速过审会在后台配置一个开关提交审核时把某些敏感或不稳定的功能临时关闭。但苹果的静态分析工具可以检测到代码中存在相关的UI组件即使后台关了界面上的按钮仍然存在。审核员点进去发现“什么都没发生”同样判定为不完整。⑤ 内购项目已配置但商品未上架或无法购买如果你的App里包含了IAP功能代码中也调用了SKPaymentQueue但在App Store Connect中对应的内购商品状态是“准备提交”或“被拒绝”审核员尝试购买时会失败。这时候苹果不仅会判2.1还会附带一条IAP相关的违规。⑥ 占位图片或Lorem Ipsum文本有些开发者为了先跑通界面在图片位置放了一张灰色的占位图或者文本区域使用了“Lorem ipsum dolor sit amet”这样的假文。审核员一看就知道这是模板或者半成品。⑦ 功能逻辑断点需要某个条件才能触发但审核员无法满足比如一个需要蓝牙设备连接才能使用的功能但审核员没有对应的硬件或者一个需要达到特定等级才能解锁的功能但审核员的测试账号从0开始短时间内无法触发。这类情况也可能被归为“功能不完整”除非你在审核备注中主动说明并提供绕过方式。二、为什么苹果对“未完成”这么敏感你可能会想我只是一个小功能没做好又不影响核心体验苹果至于这么严格吗答案至于。苹果审核指南2.1的第一句话就写得非常清楚“Apps should be complete and ready for their final distribution.”——应用必须是完整的、准备好最终分发的版本。审核员的逻辑是如果你把一个包含“Coming Soon”的应用放上App Store用户下载后发现某个功能不能用、某个页面是空的他们不会觉得“这是开发者没做完”而是会觉得“这个App是垃圾”。最后用户会投诉苹果——因为苹果是审核方。所以苹果宁可错杀一千也不放过一个。任何未经完成的功能要么完全删除要么做成真的。三、提交前如何自检一张清单就够了在打包提交之前花15分钟模拟审核员的视角把整个App摸一遍。重点关注以下位置所有Tab栏、底部栏、侧边栏菜单——每一个入口点进去必须是真实的功能界面不能是空白或占位。所有按钮——尤其是不起眼的“设置”里的二级按钮、“关于我们”里的跳转按钮。每个都能点出内容。所有列表、轮播图、卡片——图片不能是灰色占位图文本不能是Lorem Ipsum。所有搜索、筛选、排序功能——即使数据较少也要保证搜索框可以输入筛选弹窗有选项排序切换有反应。所有内购商品——先在沙盒环境下完整跑一遍购买流程确认商品可以正常获取、支付、发货。所有“更多”“查看全部”——这类入口常被忽略点进去往往是一个空列表这是重灾区。如果你发现某个功能确实没做完怎么办两个选择没有第三个选择一完整删除。从UI上彻底移除这个入口包括Tab、按钮、Cell、Storyboard里的引用。代码中可以保留但不要在界面中暴露。选择二做成真实的、有限但可用的功能。比如“社区”做不完那就先做一个静态的常见问题列表或者一个用户反馈表单。只要不是空的、不是“Coming Soon”审核员就能接受。四、实战案例复盘一个因“灰掉按钮”引发的连环被拒这是一个我亲身经历的案例前后折腾了四次提交。第一次被拒App的“导出数据”功能由于后端接口没准备好我当时把它做成了一个禁用状态的按钮isEnabled false并且按钮下方有一行灰色小字“即将支持”。结果苹果在拒信里明确指出来“Your app contains a disabled button for an advertised feature.”第二次提交我删掉了灰色小字只保留禁用按钮不加任何文字。结果还是被拒。审核员说“The button appears to be non-functional.”第三次提交我把整个“导出数据”按钮连同所在的整个模块全部删掉了。这次没有被拒2.1但又因为其他原因被拒了——那是另一个故事。第四次提交终于过了。教训是什么禁用按钮 未完成功能在苹果眼里没有例外。要么能让它工作要么彻底移除不存在“暂时不让点”这个选项。五、如何回复2.1 Not Completed的拒信如果你的App因为未完成功能被拒回复的核心策略只有一条证明你已经删除了所有占位内容并提供证据。以下是一个可以直接套用的回复模板基于真实过审经验修改Dear Review Team,Thank you for your feedback regarding incomplete features.We have thoroughly reviewed the app and removed all placeholder content. Specifically:Removed the Community (Coming Soon) tab from the bottom bar.Replaced the gray placeholder images on the homepage with actual content.Removed the disabled Export button and its related UI.Verified that every button and screen leads to a fully functional view.We have also recorded an unedited screen recording showing the complete app flow from installation to all available features. You can view it at [link].Please re-review. Thank you.注意要点不要解释“为什么会有占位内容”审核员不在乎你的开发进度不要承诺“下个版本会补上”苹果只看当前提交的二进制。只需陈述你做了什么修改然后附上证据截图或录屏。六、几个容易忽略的“隐形”占位有些占位不是文字也不是图片而是交互逻辑上的“未完待续”。以下三种情况经常被开发者忽略① 空状态的设计过于“敷衍”如果你的列表在没有数据时展示了一张插画加一句“暂无数据”这通常是没问题的。但如果空状态里包含了“功能开发中”“敬请期待下个版本”之类的文字就有问题了。更隐蔽的是空状态里没有任何提示只有一个返回按钮审核员会困惑“我是不是点错了地方”。② 弹窗提示“此功能暂未开放”有些开发者在用户点击某个按钮时弹出一个Alert“此功能暂未开放请等待后续更新。”这本质上就是“Coming Soon”的变种。审核员会判定这是一个未完成的功能即使你加了弹窗提醒——因为弹窗本身证明了功能存在但不可用。③ 设置里的开关打开后没有任何变化比如“通知提醒”开关打开后实际上App没有申请通知权限或者“深色模式”开关打开后界面颜色没有任何变化。这类“伪功能”也会被判定为不完整。七、一个省时间的策略先做MVP但MVP必须是完整的很多独立开发者的开发习惯是先把所有页面骨架搭好再一个一个填充功能。这种习惯在做App Store提审时非常危险。更稳妥的策略是提审的版本只包含你100%完成了的功能。哪怕整个App只有一个页面——只要那个页面是完整的审核就能过。反之如果你做了10个页面但其中2个是空的审核就会挂。我自己的习惯是在第一次提审前会专门跑一遍“审核模式”——用一张纸列出所有界面和可交互元素每验证一个打一个勾。这个过程只需要20分钟但能省下至少两三天的来回拉扯。总结2.1 Not Completed是那种“看起来很小、但踩起来很疼”的坑。它的可怕之处在于开发者往往觉得自己只是放了一个小小的占位图不算什么大事而审核员看到的是“这个开发者的态度不严谨”。核心原则只有一句话提交到App Store的任何版本都必须让审核员感觉这是一个已经做完、可以上架的产品。没有任何“以后再说”的空间。如果你现在正准备提审建议先用15分钟模拟一遍“审核员之旅”——点每一个能点的东西看到每一个能看到的页面。如果你找到了任何一处让你觉得“这个还没做完”那就先别提交改完再提。

相关新闻