跳过主要内容

2026年首次应用程序审查指南 - iOS和Android

2026年首次应用程序开发者完整指南,涵盖登录要求、隐私政策和当前Google Play测试要求。

文章来源

马丁·多纳迪厄

作者

瓦莱里娅

审阅者

乔丹

编辑

2026 年 iOS 和 Android 的首次应用审查指南

将您的首次应用提交到 App Store 或 Play Store 时,可能会感到沮丧。随着不断演进的指南和 2026 年更加严格的执行,通过首次提交的应用审查需要细致入微的关注。这份全面指南将带您走过需要了解的所有内容,以便在 iOS 和 Android 平台上通过首次提交的应用审查。

了解 2026 年的审查流程

苹果和谷歌近年来都对审查流程进行了显著的调整,尤其是对隐私、安全和用户体验的关注。了解这些变化对于首次开发者来说至关重要。

iOS App Store 审查时间表

  • 标准审查: 24-48 小时
  • 高峰期: 3-5 天(尤其是在假期期间)
  • 周末: 无待处理的评论
  • 加速审核: 可用于紧急修复bug(必须通过App Store Connect提出)

专业提示: 提交时尽早在周一至周二,避免周末延迟。周一提交的应用通常在周三被审核。

App Store Connect 状态

  • 准备提交: 你的构建或元数据仍在准备中
  • 等待审核: 苹果已将你的提交放入队列
  • 正在审核 : 该审查团队正在积极检查应用
  • Pending Developer Release : 已通过审查,但等待您的手动发布选择
  • Rejected / Unresolved Issues : 苹果需要在通过审查之前进行更改

Google Play Store Review Timeline (2026 Update)

  • Initial Review : 3-7 天(比之前的年份要长得多)
  • Closed Testing Gate : 受影响的新个人Play Console帐户需要至少14天才能请求生产访问
  • Production Review After Testing : Closed Testing要求完成后通常需要另外3-7天
  • 更新现有应用: 1-3 天
  • 政策违规: 如果触发额外的审查,审查时间可能延长至 14+ 天

重要更新: Google 现在要求某些新 Play Console 帐户进行更严格的测试,我们将在下文详细介绍。

苹果开发者帐户设置

在您发布 iOS 应用之前,请确保苹果侧的设置正确:

  • 加入 苹果开发者计划
  • 为用于注册的苹果帐户启用两因素身份验证
  • 选择正确的会员类型:
    • 个人/独资企业:您的法律姓名将成为App Store上的卖家名称
    • 组织:需要一个法律实体,一个D-U-N-S号,一个公共网站,以及一个具有权力将公司绑定到Apple协议的人
  • 在注册过程中使用法律姓名。使用别名或公司名称填写姓名字段可能会延迟审批
  • 在注册审批通过后,登录App Store Connect并创建应用程序记录,使用最终的包ID,应用程序名称,SKU和主要语言

Apple Developer Program注册页面

继续Apple注册

选择正确的Apple Developer实体类型

重要:Apple会随着时间的推移而改变最低SDK要求。截至 2026年4月28日,App Store Connect 上上传的应用必须使用 iOS & iPadOS 26 SDK 或更高版本.

关键的 Android 测试要求

这是让大多数首次发布 Android 应用的开发者感到措手不及的变化:

12 个测试者要求新个人 Android 账户

如果您的 Google Play 开发者账户是 个人账户,创建于 2023 年 11 月 13 日之后,您必须完成一个封闭测试期才能让应用发布:

要求:

  • 最少 12 个测试者: 您必须招募至少 12 个同意测试的测试者
  • 14 天测试期: 应用程序必须在闭式测试中保持至少 14 天
  • 生产访问申请: 测试期后,您仍需要在 Play Console 中申请生产访问
  • 反馈收集: 应该记录找到的问题、修复的内容以及测试者如何使用应用程序

如何设置您的测试跟踪

  1. 创建一个闭式测试跟踪

    • 前往 Google Play Console
    • 导航至测试和发布 > 测试 > 闭式测试
    • 在闭式测试跟踪中创建一个新发布
    • 上传您的 Android App Bundle (.aab)
  2. 招募您的测试者

    哪里可以找到测试者:

    • 朋友和家人(最容易的起点)
    • 开发者社区(Reddit的/r/androiddev,/r/betatests)
    • 社交媒体粉丝
    • 测试平台(BetaList,BetaTesting.com)
    • 大学生(如果您有联系)

    重要: 确保测试者:

    • 拥有有效的Gmail账户
    • 实际上使用Android设备
    • 在整个14天期间保持订阅
  3. 邀请测试者

    • 创建测试者列表在Play控制台
    • 添加测试者邮箱地址
    • 与测试者分享优惠链接
    • 发送提醒确保他们安装并使用应用
  4. 监控测试活动

    • 在Play控制台检查安装数量
    • 跟踪崩溃报告和ANR(应用未响应)
    • 收集测试者的反馈
    • 在发布前修复任何关键问题
  5. 发布到生产环境

    • 在14天内有12+测试者同意后
    • 从Play控制台后台申请生产权限
    • 查看所有崩溃报告和反馈
    • 创建生产版本并提交最终审查

为什么Google实施了这个

Google引入了这个要求是为了

  • 减少低质量应用程序垃圾邮件
  • 确保应用程序在到达用户之前得到适当的测试
  • 通过真实世界的使用模式识别恶意应用程序
  • 改善Play商店整体质量

现实检查:这将至少增加2-3周的发布时间表。请事先规划并尽早招募测试者

身份验证和登录要求

最常见的拒绝原因之一是身份验证系统的不当实施,尤其是社交登录

苹果签入要求 (iOS必备)

苹果规则: 如果您的应用程序提供任何第三方社交登录选项 (Google, Facebook, Twitter 等),您 必须 也提供使用苹果签入作为一个选项。

此规则适用于:

  • Google Sign-In
  • Facebook Login
  • Twitter/X Login
  • LinkedIn Login
  • 任何其他第三方身份验证服务

此规则不适用于:

  • 电子邮件/密码认证
  • 政府身份认证系统
  • 企业 SSO 系统(当该应用专门为该企业时)
  • 教育提供者认证系统

实施 Apple 登录

重要考虑因素

import { SignInWithApple } from '@capacitor-community/apple-sign-in';

async function signInWithApple() {
  try {
    const result = await SignInWithApple.authorize({
      clientId: 'com.yourapp.service',
      redirectURI: 'https://yourapp.com/auth/callback',
      scopes: 'email name',
      state: '12345',
      nonce: 'nonce',
    });

    // result contains:
    // - identityToken
    // - authorizationCode
    // - email (may be null if user previously authorized)
    // - givenName
    // - familyName

    // Send to your backend for verification
    await verifyAppleToken(result.identityToken);

  } catch (error) {
    console.error('Apple Sign In failed:', error);
  }
}

电子邮件隐私:

  1. : 用户可以选择隐藏他们的电子邮件。 Apple 提供了一个私有的中继电子邮件(例如,首次用户与重复用户 abc123@privaterelay.appleid.com: Apple 只在首次授权时提供用户详细信息(姓名、电子邮件)。存储此信息,因为随后的登录不会包含它。

  2. 如果您正在使用社交登录,需要实现以下内容:用户可以选择隐藏他们的电子邮件。 Apple 提供了一个私有的中继电子邮件(例如,

  3. 设计按钮: Apple 为 Sign in with Apple 按钮提供了严格的设计指南。使用他们的官方资产。

  4. 后端验证: 总是在后端服务器上验证身份令牌,绝不信任客户端令牌。

Android 社交登录要求

: 虽然 Android 不需要像 iOS 一样特定的提供者,但 Google 有以下指南:

Google 登录要求:

  • : 必须使用官方 Google 登录 SDK
  • : 必须遵循 Google 的品牌指南
  • : 如果提供,则应作为主要选项

跨平台最佳实践: 为保持一致性,在两种平台上提供相同的登录选项:

  • 邮箱/密码
  • 使用 Apple 登录(仅限 iOS,或者在 Android 上如果您支持基于 web 的 Apple 登录)
  • 使用 Google 登录
  • 其他社交选项(Facebook,Twitter 等)

演示账户要求

对于审查至关重要: 如果您的应用程序需要登录,您 必须 提供 App Review Notes 中的可用的演示凭证。

Demo Account Information:

Username: reviewer@demo.com
Password: ReviewTest123!

OR

Test Phone: +1 555-0123
Test OTP: 123456 (static for review)

Notes:
- This account has full premium features enabled
- All payment flows work in sandbox mode
- Account will reset daily

常见错误:

  • 提供过期凭证
  • 演示账户无法访问所有功能
  • Not mentioning how to bypass phone verification
  • Forgetting to mention sandbox payment details

两家应用商店现在都要求可访问的隐私政策和服务条款 前 在开发新功能之前,创建一个问题并讨论

你的第一次提交已被批准

隐私政策要求

  1. 你的隐私政策必须

    • 公开可访问
    • 托管在公共 URL 上(不在登录后面)
    • 可在标准 Web 浏览器中加载
  2. 必填内容:

    • 您收集的数据(具体说明)
    • 如何使用收集的数据
    • 是否与第三方共享数据
    • 数据保留多久
    • 用户权利(访问、删除、可移植性)
    • 隐私查询联系信息
    • 儿童隐私(如果应用为13/16岁以下用户)
  3. 在应用内链接

    • 从设置或账户屏幕可访问
    • 必须在一键之内(不应埋藏在菜单中)
    • 应在默认浏览器或应用内浏览器中打开

哪里托管您的隐私政策

选项 1:您的网站 (推荐)

https://yourapp.com/privacy-policy
https://yourapp.com/terms-of-service

选项 2:GitHub 页面 (免费)

https://yourusername.github.io/app-privacy-policy

选项 3:隐私政策生成器 (快速启动)

重要: 在生成器中,确保政策准确反映您的实际数据实践。 不匹配您的应用程序的通用模板将被标记。

条款和条件要求

虽然不总是强制要求,但拥有条款和条件是非常推荐的,并且如果:

  • 您提供内购或订阅
  • 您有用户生成的内容
  • 您提供的任何服务超过基本应用功能
  • 您想要法律保护

必须包含:

  • 适用性政策
  • 账户终止条件
  • 责任限制
  • 知识产权
  • 争议解决过程
  • 退款政策(尤其是IAP)

内购实施

// Settings or Account Screen
function LegalLinks() {
  return (
    <div className="legal-section">
      <h3>Legal</h3>
      <a
        href="https://yourapp.com/privacy-policy"
        target="_blank"
        rel="noopener noreferrer"
      >
        Privacy Policy
      </a>
      <a
        href="https://yourapp.com/terms-of-service"
        target="_blank"
        rel="noopener noreferrer"
      >
        Terms of Service
      </a>
      <a
        href="https://yourapp.com/contact"
        target="_blank"
        rel="noopener noreferrer"
      >
        Contact Us
      </a>
    </div>
  );
}

应用商店元数据要求

两家商店都要求在应用提交时提供隐私政策URL:

iOS - App Store Connect:

  • 应用信息 > 一般信息 > 隐私政策URL
  • 必须是HTTPS(HTTP会被拒绝)
  • 将在您的应用商店页面上显示
  • 添加一个支持URL,包含用户联系方式
  • 在提交前完成年龄评级问卷

Android - Google Play Console:

  • 商店存在 > 商店设置 > 隐私政策
  • 适用于所有针对儿童的应用
  • 强烈推荐所有应用

隐私营养标签(iOS)

iOS要求在“营养标签”格式中详细披露隐私信息:

您必须声明的类别:

  • 联系方式context: Integrations marketing section. Role: Short UI label or navigation item. Seen in: page integrations.astro. Message key `integrations_partners_freelance_contact` (Integrations Partners Freelance Contact).
  • : 邮件、姓名、电话号码财务信息
  • : 支付信息、信用卡、银行账户位置
  • : 精确或粗略位置信息: 照片、视频、音频、消息
  • Identifiers: 用户 ID、设备 ID、广告 ID
  • Usage Data: 产品交互数据、广告数据、崩溃日志
  • Diagnostics: 崩溃数据、性能数据

For Each Data Type, Specify:

  • : 是否收集
  • Whether it’s linked to user identity
  • : 是否与用户身份关联
  • Whether it’s used for tracking

常见错误: 当您的分析SDK收集数据时,声称您不收集数据。审计所有第三方 SDK 的数据收集。

Google Play 数据安全部分

类似于 iOS,Android 需要一个数据安全声明:

步骤:

  1. 前往 Play Console > 应用内容 > 数据安全
  2. 回答有关数据收集的问题
  3. 指定收集的数据类型
  4. 说明安全措施(加密等)
  5. 提供隐私政策链接

关键: 这些信息是法律约束的。误导性陈述可能导致应用移除和帐户暂停。

常见的首次拒绝原因

了解为什么应用程序会被拒绝有助于您避免这些陷阱:

1. 应用程序崩溃或无法启动

为什么会发生:

  • 仅在模拟器上测试,而不是在真实设备上
  • 网络故障时缺少错误处理
  • 硬编码API无法访问的端点
  • 假设特定设备功能(摄像头、GPS)

如何预防:

// Always implement proper error handling
async function loadData() {
  try {
    const response = await fetch('https://api.yourapp.com/data');

    if (!response.ok) {
      throw new Error(`HTTP ${response.status}`);
    }

    const data = await response.json();
    return data;

  } catch (error) {
    // Show user-friendly error
    showError('Unable to load data. Please check your connection.');

    // Log for debugging
    console.error('Data load failed:', error);

    // Graceful degradation
    return getCachedData();
  }
}

测试清单:

  • 在真实设备上进行测试(至少2-3种不同的型号)
  • 在网络不佳的情况下进行测试(使用网络链路条件器)
  • 测试时使用飞行模式
  • 测试时拒绝权限
  • 测试时新安装(无缓存数据)

2. 核心功能缺失或损坏

为什么会这样:

  • 截图中显示的功能尚未开发
  • 演示账号无法访问宣传的功能
  • 显示的高级功能尚未实现
  • 应用中出现“即将推出”的占位符

如何防止:

  • 只在所有宣传功能完成后提交
  • 确保演示账号有完全的访问权限
  • 移除或禁用未完成的功能
  • 更新截图以完全匹配当前构建

3. 不适合年龄等级的内容

为什么会这样:

  • 年龄等级设置为4+但应用包含社交功能
  • 年龄等级与实际内容不符
  • 用户生成的未经审核的内容
  • 链接到未经审核的外部内容

如何设置正确的年龄等级:

iOS年龄等级:

  • 4+ (无不适合的内容)
  • 9+ (少量轻微内容)
  • 12+ (中度内容)
  • 17+ (频繁/强烈内容)

Android 内容评级:

  • 所有人
  • 10岁以上
  • 青少年
  • 成年人 17+
  • 成人 18+

重要: 如果用户可以与彼此共享内容,则需要:

  • 内容管理系统
  • 举报/阻止功能
  • 清晰的社区指南
  • 如果需要,年龄限制

4. 欺骗或误导性元数据

为什么会这样:

  • 应用名称承诺没有存在的功能
  • 来自竞争对手或模拟截图
  • 虚假评论或评分操纵
  • 描述包含没有证据的超级词

元数据问题的例子:

❌ BAD:

  • 应用名称:“最佳健身追踪器 - #1 应用”
  • 描述:“这是最令人惊讶、革命性的应用程序!”
  • 截图:通用样本照片

✅ GOOD:

  • 应用名称:“FitTrack - Workout Logger”
  • 描述:“可定制的运动日志和进度图表跟踪您的运动”
  • 截图:当前构建中的实际应用屏幕

5. 测试不足(尤其是 Android Closed Testing)

为什么会发生:

  • 忽略所需的 14 天测试期
  • 招募的测试者不足
  • 测试者实际上并没有使用该应用
  • 测试期间没有监控崩溃

如何预防:

  • 在计划发布前3-4周开始招募测试者
  • 测试期间使用Firebase Crashlytics或类似工具
  • 积极与测试者互动(调查、反馈表单)
  • 在发布到生产环境前修复关键问题

6. 未经说明的权限请求

为什么会这样:

  • 请求位置但未使用
  • 未说明摄像头权限
  • 未明确目的的联系人访问
  • 非导航应用的后台位置

如何修复:

iOS - Info.plist:

<key>NSCameraUsageDescription</key>
<string>Camera access is required to scan QR codes for quick login.</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>Location helps us show nearby fitness centers and outdoor running routes.</string>

<key>NSPhotoLibraryUsageDescription</key>
<string>Photo library access lets you upload a profile picture and share workout photos.</string>

Android - 权限策略:

<!-- Only request what you actually need -->
<uses-permission android:name="android.permission.CAMERA" />

<!-- Use when-in-use rather than always for location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<!-- Avoid if possible -->
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -->

运行时权限请求:

import { Camera } from '@capacitor/camera';

async function takePicture() {
  // Request with context
  const permissionStatus = await Camera.requestPermissions();

  if (permissionStatus.camera === 'granted') {
    const photo = await Camera.getPhoto({
      quality: 90,
      allowEditing: true,
      resultType: 'uri'
    });

    return photo;
  } else {
    // Explain why permission is needed
    showDialog(
      'Camera access required',
      'To upload a profile picture, please enable camera access in Settings.'
    );
  }
}

iOS-特定要求

App Store 截图和预览

所需尺寸:

  • 6.7寸 iPhone:1290 x 2796
  • 13寸 iPad:2064 x 2752
  • 12.9寸 iPad:2048 x 2732

重要: 如果您的应用支持 iPad,则必须上传 iPad 截图。不要将 iPhone 截图拉伸到 iPad 插槽中。

截图最佳实践:

  • 必须显示实际应用内容(无模拟)
  • 去掉状态栏或显示现实内容
  • 为所有支持的语言进行本地化
  • 避免过度的文本叠加
  • 在前 2-3 个截图中显示关键功能

App Store Connect 元数据设置

在提交之前完成这些 App Store Connect 字段:

  • 隐私政策 URL: 必须填写,适用于 iOS 应用
  • 支持 URL: 必须填写,并且应该指向实际的联系方式
  • 年龄等级: 完成问卷,以便应用程序可以发布
  • App Review 信息: 添加一个审查联系方式、工作演示凭据(如果需要登录)以及清晰的审查团队注释
  • 出口控制: 回答加密问题,或设置 ITSAppUsesNonExemptEncryption 在 Info.plist 适当时设置,以免每次上传都重复相同的答案

TestFlight Before App Review

在生产审查之前,进行一次真实的TestFlight测试:

  • 安装来自TestFlight的精确构建
  • 使用您打算提供的审查账户登录
  • 走过购买、恢复和取消订阅的路径
  • 确认审查员可以无需隐藏设置就访问关键功能
  • 测试 iPhone 和 iPad 是否都支持

要求:

  • 15-30 秒长度
  • 必须显示实际应用的画面
  • 可以包含简短的文本叠加
  • 不包含版权问题的音乐
  • 与截图相同的分辨率

使用 Apple 登录的实现

已经在上面提到过,但对于 iOS 评估来说,如果您有社交登录,非常重要

内购要求

如果您提供数字产品或服务:

必备的披露:

  • 在购买前清晰显示价格
  • 订阅条款明确说明
  • 取消指示可见
  • 恢复购买按钮

示例符合规范的订阅屏幕:

function SubscriptionOffer() {
  return (
    <div className="subscription-screen">
      <h2>Choose Your Plan</h2>

      <PlanCard>
        <h3>Monthly</h3>
        <p className="price">$9.99/month</p>
        <ul>
          <li>Unlimited workouts</li>
          <li>Personalized plans</li>
          <li>Progress tracking</li>
        </ul>
        <button>Subscribe</button>
      </PlanCard>

      <PlanCard>
        <h3>Annual</h3>
        <p className="price">$79.99/year</p>
        <p className="savings">Save 33%</p>
        <ul>
          <li>Everything in Monthly</li>
          <li>Priority support</li>
        </ul>
        <button>Subscribe</button>
      </PlanCard>

      <div className="subscription-terms">
        <p>
          Subscription automatically renews unless cancelled at least
          24 hours before the end of the current period. Manage your
          subscription in Settings.
        </p>
        <button onClick={restorePurchases}>Restore Purchases</button>
      </div>

      <div className="legal-links">
        <a href="/privacy/">Privacy Policy</a> |
        <a href="/terms">Terms of Service</a>
      </div>
    </div>
  );
}

Android特定要求

Google Play控制台账户设置

在您首次发布Android应用之前,请确保Play控制台账户和应用壳存在:

  • 创建您的开发者账户在 Play控制台注册
  • 在控制台中,前往 Home > 创建应用
  • 选择默认语言、应用/游戏类型和支持邮箱
  • 接受所需的Play政策、导出和Play App Signing声明
  • 决定应用是否 免费 或 context:HTML文本片段来自更长的Capgo UI字符串(父键`alternatives_cta_questions`)。页面/区域:Capacitor实时更新替代方案比较页面。角色:长期营销或法律段落。见:页面alternatives.astro。保留Capgo产品/品牌和开发者术语完全不变。消息键`alternatives_cta_questions`(替代方案CTA问题)。| HTML文本片段来自更长的Capgo UI字符串(父键`appflow_cta_questions`)。页面/区域:Appflow比较/迁移营销复制。角色:长期营销或法律段落。见:页面ionic-appflow.astro。保留Capgo产品/品牌和开发者术语完全不变。消息键`appflow_cta_questions`(Appflow CTA问题)。| HTML文本片段来自更长的Capgo UI字符串(父键`capwesome_cta_questions`)。页面/区域:Capawesome比较页面。角色:长期营销或法律段落。见:页面capwesome.astro。保留Capgo产品/品牌和开发者术语完全不变。消息键`capwesome_cta_questions`(Capwesome CTA问题)。| HTML文本片段来自更长的Capgo UI字符串(父键`consulting_faq_subtitle`)。页面/区域:咨询服务页面。角色:小节标题或标语。见:页面consulting.astro。保留Capgo产品/品牌和开发者术语完全不变。消息键`consulting_faq_subtitle`(咨询FAQ字幕)。| 页面/区域:Appflow比较/迁移营销复制。角色:短UI标签或导航项。见:页面ionic-appflow.astro,页面ionic-enterprise-plugins.astro,页面解决方案/ionic-enterprise-plugins.astro。消息键`appflow_plugins_or`(Appflow插件或)。

收费重要

context:页面/区域:Bug bounty计划页面。角色:UI标签。见:页面bug-bounty.astro。消息键`bug_bounty_important_label`(Bug Bounty重要标签)。

: Google允许您将付费应用更改为免费应用,但一旦应用被免费提供后,就无法切换为付费应用。应用包要求:重要

# Sync the native Android project first
bunx cap sync android

# Then build the release app bundle
cd android
./gradlew bundleRelease

目标 API 等级要求

当前要求: 新应用和应用更新必须目标 Android 15 (API 等级 35) 或更高。

在 android/app/build.gradle 中更新:

android {
    compileSdkVersion 35

    defaultConfig {
        targetSdkVersion 35
        minSdkVersion 23  // Minimum supported version
    }
}

Google Play 数据安全

已经在上面提到,但对于 Android 批准来说绝对关键。

封闭测试轨道 (当前要求)

这是新创建的个人开发者帐户的关键点:本文指南前面详细介绍的 12 个测试者,14 天的要求。

时间表:

  1. 周 1:招募测试者,设置封闭测试
  2. 周 2-3:活跃测试期(至少 14 天)
  3. 周 4:修复问题,准备生产发布
  4. 第 5 周:提交生产审查

目标受众和内容评级

内容评级问卷:

  • 所有应用程序均需
  • 耗时 10-15 分钟
  • 确定年龄等级(每个人、青少年、成年人等)
  • 在内容发生影响答案的变化时更新它

所涵盖的主题:

  • 暴力
  • 性内容
  • 不雅语言
  • 管制物质
  • 娱乐
  • 用户交互功能

重要context: Bug bounty program page. Role: UI label. Seen in: page bug-bounty.astro. Message key `bug_bounty_important_label` (Bug Bounty Important Label).

: 如果您的应用包含用户生成的内容或社交功能, 您必须披露此信息并实施内容管理.

应用商店列表要求:

  • 必需资产
  • 应用图标 (512 x 512 PNG)
  • 功能图标 (1024 x 500 JPG 或 PNG)
  • 手机截图 (最少 2 张, 最多 8 张)
  • 7 英寸平板截图 (可选但推荐)

10 英寸平板截图 (可选但推荐):

  • 简短描述(80个字符以内)
  • 完整描述(4000个字符以内)
  • 必须准确描述应用功能
  • 不能包含联系方式或价格

提交前检查清单

在点击提交之前,请逐项检查以下内容:

技术要求

  • 应用在真实设备上启动成功
  • 截图中所有功能都正常工作
  • 不包含占位符或“即将推出”内容
  • 所有第三方API密钥都是生产密钥
  • 网络错误处理已实现
  • 权限请求包含清晰的说明
  • 在网络条件差的情况下,应用程序不会崩溃
  • 已在权限被拒绝的情况下测试
  • 已在最低支持的OS版本上测试
  • 已检查并修复内存泄漏

身份验证 &amp; 登录

  • 如果使用社交登录,Sign in with Apple (iOS) 也包含在内
  • 在审查笔记中提供了演示账户凭证
  • 演示账户有访问所有功能的权限
  • 密码重置流程正常工作
  • 注销功能正常工作
  • 账户删除选项可用(GDPR/CCPA要求)
  • 隐私政策公开
  • 已在应用商店列表中添加隐私政策URL
  • 服务条款公开(如果适用)
  • 已在应用程序设置屏幕中链接隐私政策
  • 隐私营养标签准确(iOS)
  • 已完成数据安全部分(Android)
  • 已解释所有数据收集目的
  • 已披露第三方SDK数据收集

内容 &amp; 元数据

  • 应用程序名称遵循指南(无关键词填充)
  • 描述准确描述功能
  • 截图显示当前应用的实际屏幕
  • 截图已本地化为所有支持语言
  • 描述中未提及任何竞争对手
  • 无证据证明的超级词
  • 年龄等级与实际内容匹配
  • 联系邮箱被监控

iOS特定

  • 使用社交登录时,已实现Apple登录
  • 提供了所有必需的截图尺寸
  • 如果支持iPad,则已上传真实的iPad截图
  • Info.plist权限描述清晰
  • 已添加支持URL,包含真实的联系信息
  • 隐私政策 URL 添加到 App Store Connect
  • 年龄等级问卷完成
  • 出口合规回答正确
  • App Review 联系方式和非过期演示账户提供
  • 目标 iOS 15.0 或更高
  • 如果 IAP:价格清晰,恢复购买按钮存在
  • 不涉及 Android 或其他平台

Android 特定

  • 应用程序捆绑 (.aab) 格式使用
  • 目标 API 35 或更高
  • 内容评级问卷完成
  • 功能图标上传
  • 如果您的Play Console账户需要,则完成关闭测试(12名测试者,14天)
  • 测试期间收到的崩溃报告进行了审查并修复
  • 不涉及iOS或其他平台的任何参考

测试(Android当前要求)

  • 如果您的Play账户需要,则招募12+名测试者
  • 关闭测试跟踪创建
  • 测试期间完成14天的连续测试
  • 测试者实际使用了应用程序(而不是仅安装)
  • 测试期间启用崩溃监控
  • 测试期间修复的关键错误
  • 测试者反馈记录

Review Notes:包含的内容

首次提交应用的审查指南

审查笔记模板

APP REVIEW INFORMATION

=== Test Account ===
Email: reviewer@testapp.com
Password: TestReview123!
(This account has all premium features enabled)
(This account stays active during review)

=== Review Contact ===
Name: Jane Developer
Email: review@yourapp.com
Phone: +1 555-0100

=== Testing Instructions ===
1. Launch app and tap "Sign In"
2. Enter test credentials above
3. Navigate to "Dashboard" to see main features
4. Tap "Upgrade" to test subscription flow (sandbox mode)
5. Go to Settings > Account to see privacy policy and terms

=== Key Features to Test ===
- Workout tracking (tap "New Workout" on Dashboard)
- Progress charts (Analytics tab)
- Social sharing (Share button on workout details)
- Camera upload for profile picture (Settings > Profile)

=== Third-Party Services ===
- Firebase Authentication (for login)
- Stripe (for payments - sandbox mode)
- AWS S3 (for image uploads)
- Google Maps SDK (for location features)

=== Notes ===
- Location permission is optional, app works without it
- Camera permission only requested when uploading profile picture
- All subscription flows use Apple/Google sandbox environments
- Background location is not used
- Support URL and privacy policy are available from Settings > Account

=== Contact ===
For questions: developer@yourapp.com
Response time: Within 24 hours

iOS特定审查笔记

对于iOS,还包括

=== Device Coverage ===
Tested on: iPhone 15 Pro Max, iPad Pro 13-inch

=== App Store Connect Metadata ===
Support URL: https://yourapp.com/support
Privacy Policy: https://yourapp.com/privacy-policy

=== Submission Notes ===
- iPad screenshots match the current iPad UI
- Export compliance answered for this build
- Sign in with Apple is available on the login screen

Android特定审查笔记

对于Android,还包括

=== Testing Track Information ===
Closed testing period: [Start Date] to [End Date]
Number of active testers: 23
Critical issues found during testing: 2 (both fixed)
Test distribution method: Email invite list

=== Crash Data ===
Testing period crashes: 3 total
Crash rate: 0.8%
All crashes fixed in this build

=== API Levels ===
Target SDK: 35 (Android 15)
Min SDK: 23 (Android 6.0)
Tested on: Android 11, 12, 13, 14, 15

如果被拒绝

不要惊慌 - 拒绝是常见的,尤其是第一次提交。以下是如何处理它的步骤

审查拒绝后的步骤

  1. 仔细阅读拒绝理由

    • 注意违反的具体指南(例如4.3,5.1.1)
    • 仔细阅读审查员的评论
    • 查看是否有提供的截图
  2. 了解问题

    • 查阅官方文档中的相关指南
    • 在线搜索类似案例
    • 检查是否是误解还是合理问题
  3. 解决根本问题

    • 不要仅仅修复 - 完全修复
    • 对修复进行广泛的测试
    • 记录你所做的修改
  4. 做出适当的回应

    如果拒绝是正确的:

    Thank you for the feedback. I have addressed the issue:
    
    Issue: Missing Sign in with Apple option
    
    Resolution: Added Sign in with Apple as a login option
    alongside Google Sign-In. The button appears on the login
    screen and follows Apple's design guidelines. You can test
    with the provided demo account or by creating a new account
    with Apple Sign-In.
    
    Changes made in: v1.0.1 (build 2)

    如果你认为是误解:

    Thank you for reviewing my app. I believe there may be a
    misunderstanding regarding [specific issue]:
    
    [Explain clearly with screenshots if needed]
    
    The functionality exists at: Settings > [specific location]
    
    I've added additional detail to the review notes to help
    locate this feature.
  5. 及时重新提交

    • 重新提交通常会更快地被审核(24-48 小时)
    • 包含更新的审核笔记,说明修复措施
    • 如果有帮助,请参考之前的提交

常见拒绝响应

拒绝:"应用程序启动时会崩溃"

响应:

I sincerely apologize for the crash. I have identified and fixed
the issue:

Root cause: The app attempted to fetch data before network
initialization completed, causing a null reference exception.

Fix: Implemented proper async initialization with error handling
and offline mode. The app now gracefully handles network issues.

Testing: Verified on iPhone 12 (iOS 17), iPhone 14 Pro (iOS 17.1),
tested with WiFi, cellular, and airplane mode.

Build version: 1.0.2 (build 3)

拒绝:"缺少隐私政策"

响应:

Thank you for the feedback. I have added the privacy policy:

URL: https://myapp.com/privacy-policy
Location in app: Settings > Privacy Policy (tappable link)
Also added to: App Store Connect > App Information > Privacy Policy URL

The privacy policy covers all data collection as disclosed in the
Privacy Nutrition Labels.

拒绝:"不符合 4.2 - 最小功能性要求"

这更具挑战性。它意味着您的应用程序没有足够的功能来值得被作为应用程序。响应:

Thank you for the feedback. I'd like to clarify the app's
functionality:

Core Features:
1. [Feature 1 with specific details]
2. [Feature 2 with specific details]
3. [Feature 3 with specific details]

The app provides significant utility beyond a simple website by:
- Offline functionality for [specific feature]
- Native camera integration for [specific feature]
- Push notifications for [specific feature]
- Device hardware access for [specific feature]

Test account credentials have been provided to demonstrate all
features. Please let me know if you need additional clarification.

审批后最佳实践

恭喜! 你的应用已通过审查。以下是如何维持该状态的指南:

发布后监控

关键指标:

  • 崩溃率(保持在 1% 以下)
  • ANR 率(Android - 保持在 0.5% 以下)
  • 应用商店/Google Play 商店评分
  • 评论内容(回复所有评论)
  • 用户报告的 bug

使用的工具:

  • Firebase Crashlytics
  • App Store Connect 分析
  • Google Play Console Vitals
  • 类似 Sentry 的错误跟踪

更新指南

提交更新时请注意:

  • 尽可能全面地测试更新
  • 如果 UI 有重大变化,请更新截图
  • 如果数据收集方式有变化,请更新隐私标签
  • 提供清晰的“新功能”描述
  • 考虑在重大变化时进行分阶段发布

保持合规

年度要求:

  • 每年更新 Android 内容评级(必填)
  • 如果实践有变化,请更新隐私政策
  • Review and update age ratings if content changes
  • Audit third-party SDKs for compliance

持续监控:

  • 了解最新的指南变更
  • 加入苹果/谷歌开发者新闻
  • 参与开发者社区
  • 关注App Store/Play Store政策博客

资源和进一步阅读

官方文档

苹果:

Google:

社区资源

隐私政策工具

需要帮助您的应用程序审查吗?

如果您感到沮丧或想确保您的应用程序在第一次尝试通过审查,我们在这里为您提供帮助!

与我们的团队预约电话会议 为您提供个人化的帮助:

  • App Store 和 Play Store 评审准备
  • 隐私政策和法律文档审查
  • Apple 登录功能实现
  • 测试策略和测试者招募
  • 评审笔记准备
  • 拒绝反馈和申诉
  • 完成应用程序提交流程

我们的团队已经帮助数百名开发者成功地应对应用程序评审流程,并可以节省您数周的试验和错误。

结论

提交您的第一个应用程序可能令人望而生畏,但经过适当的准备,您可以在第一次尝试通过评审。请记住这些关键点:

  1. 提前开始:尤其是对于 Android - 在您计划的发布日期前至少招募 12 名测试者 3 周
  2. 隐私优先:准备好并准确反映您的数据实践的隐私政策
  3. Apple Sign-In:如果您使用任何社交登录,必须在iOS中包含Sign in with Apple
  4. 彻底测试:在真实设备上测试,网络不稳定,权限被拒绝
  5. 诚实:准确的元数据和隐私披露可以避免拒绝和法律问题
  6. 详细的审查笔记:帮助审查员快速了解您的应用

当前的Android测试要求会增加流程的时间,但最终会导致更好的应用和更少的发布后问题。为Android提交添加3-4周的计划,如此您将有成功的机会。

好运您的应用发布!记住,即使您被拒绝,也是一个学习的机会。大多数成功的应用都经过多轮审查才能获得批准。

不想独自前进? 预约咨询 让我们的专家指导您完成整个流程。


需要帮助在您的应用被批准后实施实时更新?请查看 Capgo的实时更新解决方案 实现应用更新无需应用商店审查的平滑应用更新。

继续阅读《2026年iOS和Android的首次应用审查指南》

如果您正在使用 《2026年iOS和Android的首次应用审查指南》 来规划安全性和合规性,连接它与 加密 加密的实施细节 合规性 合规性 Capgo 安全扫描器 Capgo 安全扫描器 Capgo 安全 Capgo 安全 Capgo 信任中心 Capgo 信任中心

实时更新的Capacitor应用

当一个web层bug是活跃的,通过Capgo将修复发送到用户,而不是等待几天的应用商店批准。用户在后台接收更新,而本机更改保持在正常的审查路径中。

来自马丁的人性化支持

立即开始

最新博客文章

Capgo为您提供了创建真正专业的移动应用所需的最佳见解。