将您的首次应用提交到 App Store 或 Play Store 可能会感到令人生畏。随着 2026 年不断演进的指南和更加严格的执行,获取您的应用批准需要仔细关注细节。这份全面指南将带您走过需要了解的所有内容,以便在 iOS 和 Android 平台的首次提交中通过审查。
了解 2026 年的审查流程
苹果和谷歌近年来都显著加强了审查流程,尤其是对隐私、安全性和用户体验的关注。了解这些变化对于首次开发者来说至关重要。
iOS App Store 审查时间表
- 标准审查: 24-48 小时
- 高峰期: 3-5 天(尤其是在假期期间)
- 周末: 无审查处理
- 加速审查: 可用于紧急修复bug(必须通过App Store Connect提出)
专业提示: 提交在周一至周二(避免周末延迟)
App Store Connect 状态
- 准备提交: 你的构建或元数据仍在准备中
- 等待审查: 苹果已将你的提交放入队列
- 正在审查: 审核团队正在积极检查应用
- 待开发者发布: 等待您的手动发布选择
- Rejected / 未解决问题: 苹果需要在通过审查之前进行修改
Google Play Store 审核时间表 (2026 年更新)
- 初步审查: 3-7 天(比之前的年份要长得多)
- 关闭测试门槛: 受影响的新个人 Play Console 帐户需要至少 14 天才能申请生产访问
- 测试后生产审查: 在关闭测试门槛完成后通常需要另外 3-7 天
- 现有应用程序的更新: 1-3 天
- 政策违规: 可能延长至 14+ 天,如果触发了额外的审查
重要更新: Google 现在要求一些新 Play Console 帐户进行更严格的测试,我们将在下文详细介绍。
苹果开发者帐户设置
在您首次发布 iOS 应用之前,请确保苹果侧的设置正确:
- 加入 苹果开发者计划
- 为用于注册的苹果帐户启用两因素身份验证
- 选择正确的会员类型:
- 个人/独资企业:您的法律个人姓名将成为 App Store 上的卖家名称
- 组织: 需要一个合法实体、一个D-U-N-S号、一个公共网站以及一个具有权力将公司绑定到苹果协议的个人
- 在注册过程中使用合法名称。别名或公司名称在首/末名字段中可能会延迟审批
- 在App Store Connect中登录并创建应用记录,使用最终的包ID、应用名称、SKU和主要语言



重要: 苹果可能会随着时间的推移而改变最低SDK要求。截至 2026年4月28日, 应用程序必须在App Store Connect中使用 iOS & iPadOS 26 SDK或更高版本.
Android 应用测试的关键要求
这是许多首次发布 Android 应用的开发者都忽略的变化:
新 Android 账户的 12 个测试者要求
如果您的 Google Play 开发者帐户是 在 2023 年 11 月 13 日之后创建的个人帐户,那么您必须在应用发布到生产环境之前完成一个封闭测试期:
要求:
- 最少 12 个测试者:您必须招募至少 12 名同意测试的测试者
- 14 天测试期:应用必须在最少 14 天的连续时间内保持封闭测试状态
- 生产环境访问申请:很前一个突得期了,你心对一为网络为突得了的请求。
- 参数管理:你对一为网络为突得了的请求。
导怅一个突得给导怅
-
初始一个突得给突得给给
- 跳得一个突得给给为很前丁个突得了的网络为突得了的网络。
- 跳得一个突得给给为很前丁个突得了的网络为突得了的网络。
- 初始一个突得给给为很前丁个突得了的网络为突得了的网络。
- 为很前丁个突得了的网络为突得了的网络。
.aab)
-
为很前丁个突得了的网络为突得了的网络。
为很前丁个突得了的网络为突得了的网络。
- 为很前丁个突得了的网络为突得了的网络。
- 开发者社区 (Reddit的/r/androiddev, /r/betatests)
- 社交媒体粉丝
- Beta测试平台 (BetaList, BetaTesting.com)
- 大学生 (如果您有联系)
重要: 确保测试者:
- 拥有有效的Gmail账户
- 实际上使用Android设备
- 在整个14天期间保持激活
-
邀请测试者
- 在Play Console中创建测试者列表
- 添加测试者电子邮件地址
- 与测试者分享选入链接
- 发送提醒确保他们安装并使用应用
-
监控测试活动
- 在Play控制台中检查安装数量
- 跟踪崩溃报告和ANR(应用未响应)
- 从测试者收集反馈
- 在推广之前修复任何关键问题
-
推广到生产
- 在14天内有12+测试者选入后
- 从Play控制台仪表板申请生产访问
- 审查所有崩溃报告和反馈
- 创建生产发布并提交最终审查
Google 为什么实施了这个要求
Google 引入了这个要求是为了:
- 减少低质量应用程序垃圾邮件
- 确保应用程序在到达用户之前得到适当的测试
- 通过真实世界的使用模式识别恶意应用程序
- 改善整体 Play 商店质量
现实检查: 这将至少增加您发布时间表的 2-3 周。请事先规划并尽早招募测试者。
身份验证和登录要求
最常见的拒绝原因之一是身份验证系统的不当实施,尤其是社交登录。
Apple Sign-In 要求(对于 iOS 至关重要)
Apple 的规则: 如果您的应用程序提供任何第三方社交登录选项(Google、Facebook、Twitter等),您 必须 也必须提供使用 Apple 登录的选项。
这适用于:
- Google Sign-In
- Facebook Login
- Twitter/X 登录
- LinkedIn 登录
- 任何其他第三方身份验证服务
这不适用于:
- 仅使用电子邮件/密码的身份验证
- 政府身份识别系统
- 企业 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);
}
}
重要考虑因素:
-
电子邮件隐私: 用户可以选择隐藏他们的电子邮件。 Apple 提供了一个私有的中继电子邮件(例如,
abc123@privaterelay.appleid.com). 您的应用必须处理此情况 -
首次登录 vs 返回用户: Apple 只提供用户详细信息(姓名、电子邮件)在第一次授权时。 保存此信息,因为随后的登录不会包含它
-
按钮设计: Apple 提供了严格的设计指南用于 Sign in with Apple 按钮。 使用他们的官方资产
-
后端验证: 总是在后端服务器上验证身份令牌, 不要相信客户端令牌
安卓社交登录要求
虽然安卓不需要像iOS那样特定的提供者, 但Google有以下指南:
Google Sign-In 要求:
- 必须使用官方的Google Sign-In SDK
- 必须遵循Google的品牌指南
- 如果提供, 应该是主要选项
跨平台最佳实践: 在两种平台上提供相同的登录选项以保持一致性:
- 电子邮件/密码
- 使用Apple登录 (仅限iOS, 或在安卓上如果您支持基于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
提供过期凭据:
- 演示账户没有访问所有功能
- 没有说明如何绕过手机验证
- 忘记提到沙盒支付细节
- __CAPGO_KEEP_0__
隐私政策和法律要求
两家应用商店现在都要求可访问的隐私政策和服务条款 前提是 在开发新功能之前,首先创建一个问题并讨论
您的第一次提交已通过审查
隐私政策要求
-
您的隐私政策必须:
- 必须是公开可访问的
- 托管在公共 URL 上(不需要登录)
- 可以在标准 Web 浏览器中加载
-
与您的应用程序相同的语言中可用:
- 必须涵盖这些必须话题:
- How you use the collected data
- Whether data is shared with third parties
- How long data is retained
- User rights (access, deletion, portability)
- App隐私联系方式
- Children’s privacy (if app is for users under 13/16)
-
在App内登录
- 必须在设置或账户页面可见
- 必须在一键触达
- 是否在默认浏览器或内置浏览器打开
请在您的网站上托管隐私政策
选项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>
);
}
App Store 元数据要求
两家商店都要求在提交应用程序时提供隐私政策 URL:
iOS - App Store Connect:
- 应用信息 > 一般信息 > 隐私政策 URL
- 必须是 HTTPS(HTTP 将被拒绝)
- 将在您的 App Store 页面上显示
- 添加一个支持 URL,包含用户联系方式
- 在提交之前完成年龄评级问卷
Android - Google Play Console:
- 商店存在 > 商店设置 > 隐私政策
- 对于所有针对儿童的应用程序都是必需的
- 对于所有应用程序强烈建议
隐私营养标签 (iOS)
iOS 需要以 "营养标签" 格式详细披露隐私信息:
您必须声明的类别:
- 联系方式电子邮件、姓名、电话号码
- 财务信息付款信息、信用卡、银行账户
- 位置精确或粗略位置
- 用户内容照片、视频、音频、消息
- 标识符: 用户 ID、设备 ID、广告 ID
- Usage Data: 产品交互数据、广告数据、崩溃日志
- Diagnostics: 崩溃数据、性能数据
For Each Data Type, Specify:
- : 是否收集
- : 是否与用户身份关联
- : 是否用于跟踪
- : 数据收集的目的
Common Mistake: 说你不收集数据,而你的分析工具 SDK 却在收集。审查所有第三方 SDK 的数据收集行为。
Google Play 数据安全部分
与 iOS 类似,Android 也需要填写数据安全声明:
步骤:
- 前往 Play Console > 应用内容 > 数据安全
- 回答有关数据收集的问题
- 指定收集的数据类型
- 说明安全措施(加密等)
- 提供隐私政策链接
重要: 这些信息是法律约束。虚假陈述可能导致应用移除和账户暂停。
常见的首次拒绝原因
了解为什么应用会被拒绝有助于您避免这些陷阱:
1. 应用程序崩溃或无法启动
为什么会发生这种情况:
- 仅在模拟器上测试,而不是真实设备
- 网络故障时缺少错误处理
- 硬编码无法访问的API端点
- 如何预防
测试清单:
// 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岁以上
- 适合13岁以上
- 适合17岁以上
- 仅限18岁以上
重要: 如果用户可以共享内容彼此之间,您需要:
- 内容审查系统
- 举报/屏蔽功能
- 清晰的社区指南
- 如果需要,年龄限制
4. 欺骗性或误导性元数据
为什么会这样发生:
- 应用名称承诺没有存在的功能
- 来自竞争对手或模拟截图
- 虚假评论或评分操纵
- 描述包含没有证据的超级词汇
问题元数据的例子:
❌ BAD:
- 应用名称:"最佳健身追踪器 - #1 应用"
- 描述:"创造了最棒、革命性的应用!"
- 截图:通用股票照片
✅ GOOD:
- App 名称: “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-Specific Requirements
App Store Screenshots and Previews
Required Sizes:
- 6.7“ iPhone: 1290 x 2796
- 13“ iPad: 2064 x 2752
- 12.9“ iPad: 2048 x 2732
重要: 如果您的应用支持 iPad,则必须上传 iPad 截图。不要将 iPhone 截图拉伸到 iPad 插槽中。
Screenshot Best Practices:
- 必须显示实际应用内容(无模拟)
- 去除状态栏或显示现实内容
- 为所有支持的语言进行本地化
- 避免过度的文本叠加
- 在前 2-3 个截图中展示关键功能
App Store Connect 元数据设置
在提交之前,完成这些 App Store Connect字段:
- 隐私政策 URL: iOS 应用程序必填
- 支持 URL: 必填,且应指向实际联系信息
- 年龄等级: 完成问卷,以便应用程序可以发布
- App 审核信息: 添加审核联系人、登录所需的工作演示凭据以及清晰的审核团队说明
- 出口控制: 回答加密问题,或者设置
ITSAppUsesNonExemptEncryption在Info.plist当适当时你不想重复上传相同的答案
TestFlight Before App Review
在生产审查之前做一个真实的TestFlight
- 安装TestFlight中的精确构建
- 使用你打算提供的审查账号登录
- 走过购买、恢复和取消路径
- 确认审查员可以无需隐藏设置就访问关键功能
- 如果支持,测试在iPhone和iPad上
App预览视频(可选但推荐)
要求:
- 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政策、导出和Play App Signing声明
- 决定应用程序是否 免费 或 是
收费重要
: Google允许您将付费应用程序更改为免费应用程序,但一旦应用程序被免费提供后,就无法切换为付费应用程序
应用程序包要求重要
# Sync the native Android project first
bunx cap sync android
# Then build the release app bundle
cd android
./gradlew bundleRelease
Target API Level Requirement
目标__CAPGO_KEEP_0__级别要求: 新应用和应用更新必须针对 Android 15 (API 等级 35) 或更高版本。
Update in android/app/build.gradle:
android {
compileSdkVersion 35
defaultConfig {
targetSdkVersion 35
minSdkVersion 23 // Minimum supported version
}
}
Google Play 数据安全
已经在上面提到过,但对于 Android 批准来说绝对关键。
封闭测试轨道 (当前要求)
这是新创建的个人开发者帐户的关键要求:本文指南前面详细介绍的 12 个测试者,14 天的要求。
时间表:
- 周 1:招募测试者,设置封闭测试
- 周 2-3:活跃测试期 (14 天最低)
- 周 4:修复问题,准备生产发布
- 周 5:提交生产审查
目标受众和内容评级
内容评级问卷:
- 所有应用均需要
- 完成需要10-15分钟
- 确定年龄等级(每个人,青少年,成年人等)
- 在内容发生变化时,影响回答的部分更新它
涉及的主题:
- 暴力
- 性内容
- 不雅语言
- 管制物质
- 赌博
- 用户交互功能
重要: 如果您的应用包含用户生成的内容或社交功能,必须披露此信息并实施内容管理。
应用商店列表要求
必备资产:
- 应用图标(512 x 512 PNG)
- 功能图标(1024 x 500 JPG 或 PNG)
- 手机截图(最少2张,最大8张)
- 7寸平板截图(可选但建议)
- 10寸平板截图(可选但建议)
描述要求:
- 简要描述(80个字符以内)
- 详细描述(4000个字符以内)
- 必须准确描述应用功能
- 不能包含联系方式或价格
提交前检查清单
在点击提交之前,请逐一检查以下内容:
技术要求
- 应用在真实设备上启动成功
- 截图中所有功能都正常工作
- 没有占位符或“即将推出”内容
- 所有第三方API密钥都是生产密钥
- 已实现网络错误处理
- 权限请求包含清晰的说明
- 应用在网络条件差的情况下不会崩溃
- 已拒绝权限测试
- 在最低支持的操作系统版本上测试
- 内存泄漏检查并修复
身份验证 & 登录
- 如果使用社交登录,苹果登录 (iOS) 包含在内
- 在审查笔记中提供了演示账户凭证
- 演示账户有访问所有功能的权限
- 密码重置流程正常工作
- 注销功能正常工作
- 账户删除选项可用(GDPR/CCPA 需要)
法律 & 隐私
- 隐私政策公开可访问
- 隐私政策链接已添加到应用商店列表中
- 服务条款公开可访问(如果适用)
- 隐私政策在应用内(设置屏幕)中链接
- 隐私营养标签准确(iOS)
- 数据安全部分已完成(Android)
- 所有数据收集目的已解释
- 第三方SDK数据收集已披露
内容 & 元数据
- 应用名称遵循指南(无关键词填充)
- 描述准确描述功能
- 截图显示实际当前应用屏幕
- 截图为所有支持语言本地化
- No competitor mentions in description
- No superlatives without proof
- 年龄等级与实际内容匹配
- 联系邮箱被监控
iOS 专用
- 使用社交登录时,已实现 Apple 登录
- 提供了所有所需的截图尺寸
- 如果 iPad 支持已启用,则已上传真实的 iPad 截图
- Info.plist 权限描述清晰
- 已添加支持 URL
- 已在 App Store Connect 中添加隐私政策 URL
- 已完成年龄等级问卷
- 出口遵从性回答正确
- App Review联系方式和非过期的演示账户提供
- 目标iOS 15.0或更高
- 如果IAP:价格清晰,恢复购买按钮存在
- 不涉及Android或其他平台
Android特定
- 使用App Bundle (.aab)格式
- 目标API 35或更高
- 内容评级问卷完成
- 功能图标上传
- 如果您的Play Console账户需要,关闭测试完成(12名测试者,14天)
- 测试中的崩溃报告审查并修复
- 不涉及iOS或其他平台
测试 (Android 当前要求)
- 如果您的Play账户需要关闭测试,则招募12+名测试者
- 创建关闭测试轨迹
- 完成14天的连续测试
- 测试者实际使用了应用程序(而不是仅安装)
- 测试期间启用崩溃监控
- 测试中发现的关键错误修复
- 测试者反馈记录
审查笔记:要包含什么
出色的审查笔记可能会使您在审查时获得立即通过,而不是拒绝。以下是要包含的内容:
审查笔记模板
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-Specific Review Notes
对于 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-Specific Review Notes
对于 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
如果被拒绝的处理方法
不要惊慌 - 拒绝是常见的,尤其是第一次提交。以下是如何处理它的步骤:
被拒绝后的步骤
-
仔细阅读拒绝理由
- 注意违反的具体指南(例如 4.3,5.1.1)
- 仔细阅读审查员的评论
- 如果提供,请查阅截图
-
了解问题
- 查阅官方文档指南
- 在线查找类似案例
- 检查是否是误解还是合理问题
-
修复根本原因
- 不仅仅是修补 - 修复正确
- 测试修复方案
- 记录你所做的修改
-
做出适当的回应
如果拒绝是正确的:
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. -
及时重新提交
- 重新提交通常会在24-48小时内被审核
- Include updated review notes explaining the fix
- Reference the previous submission if helpful
常见拒绝响应
拒绝:"您的应用程序在启动时崩溃"
响应:
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 内容评级(每年必须更新)
- 如果实践有变化,则更新隐私政策
- 如果内容有变化,则审查和更新年龄等级
- 审计第三方 SDK 以确保合规
持续监控:
- 保持最新的指南更新
- 加入苹果/谷歌开发者新闻
- 参与开发者社区
- 遵循App Store/Play Store政策博客
资源和进一步阅读
官方文档
苹果:
Google:
社区资源
- r/androiddev - Android 开发者社区
- r/iOSProgramming - iOS 开发者社区
- Stack Overflow - 技术问题
- 独立黑客 -独立开发者社区
隐私政策工具
需要帮助您的应用程序审查吗?
如果您感到沮丧或想确保您的应用程序在第一次尝试时通过审查,我们就站在这里,来帮助您!
与我们的团队预约电话会议 为以下内容提供个人化帮助:
- 应用商店和Play商店审查准备
- 隐私政策和法律文档审查
- 使用 Apple 登录的实现
- 测试策略和测试者招募
- 审查笔记准备
- 拒绝回应和申诉
- 完成应用程序提交流程
我们的团队已经帮助数百名开发者成功地导航应用程序审查流程,并且可以节省您数周的试验和错误。
结论
提交您的第一个应用程序可能会令人望而生畏,但在适当的准备下,您可以在第一次尝试通过审查。请记住这些关键点:
- 早期开始: 尤其是对于 Android - 在您的计划发布前至少招募 12 名测试者 3 周
- 隐私优先: 确保您的隐私政策准备就绪并准确反映您的数据实践
- Apple Sign-In: 如果您使用任何社交登录,必须在 iOS 中包含 Sign in with Apple
- Test Thoroughly: 在真实设备上,测试网络不稳定,权限被拒绝
- Be Honest: 准确的元数据和隐私披露可以避免拒绝和法律问题
- Detailed Review Notes: 帮助评审员快速了解您的应用
The current Android testing requirements add time to the process, but they ultimately result in better apps and fewer post-launch issues. Plan for an extra 3-4 weeks for Android submissions, and you’ll be well-positioned for success.
: Android 测试要求当前会增加时间,但最终会导致更好的应用和更少的发布后问题。为 Android 提交增加 3-4 周的时间,如此您将会成功
Good luck with your app launch! Remember, even if you get rejected, it’s a learning opportunity. Most successful apps go through multiple rounds of review before approval. : 应用发布的好运!记住,即使您被拒绝,也是学习的机会。大多数成功的应用都要经过多轮审查才能获得批准。 让我们的专家带领您完成整个过程。
需要帮助在您的应用被批准后实施实时更新?请查看 Capgo的实时更新解决方案 实现应用更新的无缝体验,无需应用商店审查。
继续阅读《2026年iOS和Android首次应用审查指南》
如果您正在使用《2026年iOS和Android首次应用审查指南》 来规划安全性和合规性,连接它与 加密 了解加密的实施细节 合规 了解合规的实施细节 需要帮助在您的应用被批准后实施实时更新?请查看__CAPGO_KEEP_0__的实时更新解决方案 Capgo 安全扫描器 为产品工作流程在 Capgo 安全扫描器中 Capgo 安全 为产品工作流程在 Capgo 安全中 Capgo 信任中心 为产品工作流程在 Capgo 信任中心中