跳过主要内容

如何通过2025年App Store审查通过In-App购买

获取iOS和Android应用程序中In-App购买审批的完整指南。了解2025年常见的拒绝原因、要求和最佳实践。

文章来源

马丁·多纳迪厄

作者

瓦莱里亚

审稿人

乔丹

编辑

2025年如何通过App Store审查的指南

获取您的应用程序在App Store和Google Play上获得批准可能很困难,尤其是在实施内购(IAP)和订阅时。2025年更严格的指南,了解审查员在看什么至关重要。这份全面指南涵盖了您需要在第一次提交时通过审查的所有内容。

需要详细的设置说明吗? 查看我们的完整指南: iOS App Store审查 | Android Play Store审查

为什么IAP应用程序会被拒绝

内购应用程序面临更高的审查,因为它们涉及实时的货币交易。根据 苹果App Store审查指南Google Play 的营利政策2025 年,Google Play 的顶级拒绝原因是:

  1. 价格不明确 (拒绝率 42% )
  2. 缺失或混淆的订阅条款 (31%)
  3. 欺骗性 UI 模式 (18%)
  4. 隐私政策违规 (9%)

让我们深入了解如何避免这些陷阱。

iOS App Store 要求

📖 全面 iOS 指南: 有关完整设置指南,请参阅我们的 iOS App Store Review 指南

1. 清晰透明的定价

苹果要求准确的定价透明 前提

购买按钮。这个是不可谈判的。

  • 苹果想要看到的:
  • 价格清晰显示: "$9.99/月"
  • 账单频率在事前说明
  • 用户为他们的钱得到什么
  • 收费发生的时间

取消指示可见

UI 设计最佳实践原则: 直到用户点击“订阅”按钮才显示价格,或者只在细小字体中显示价格。

解决方案:

// Example: Compliant subscription display
<div className="subscription-card">
  <h2>Premium Plan</h2>
  <p className="price">$9.99/month</p>
  <ul>
    <li>✓ Ad-free experience</li>
    <li>✓ Unlimited cloud storage</li>
    <li>✓ Priority support</li>
  </ul>
  <p className="terms">
    Renews automatically. Cancel anytime in Settings.
  </p>
  <button>Subscribe Now</button>
</div>

价格一致性规则: 所有价格必须在以下地方一致:

  • App Store 列表
  • 内购屏幕
  • 订阅管理
  • 营销材料

即使是 $1 的价格差异也会触发自动拒绝。

2. 订阅计划展示

苹果会标记使用“黑暗模式”推广高昂价格的应用程序。

必需:

  • 以同等方式显示所有订阅等级
  • 不提供预选的高级选项
  • 清晰的功能比较
  • 便于找到更便宜的替代方案

禁止:

  • 自动切换到年付计划
  • 隐藏月付选项在额外的点击后
  • 使用倒计时器制造假的紧迫感
  • 假的稀缺性(‘仅剩 3 个位置!’)

3. 恢复购买功能

所有支持 IAP 的应用程序都必须提供一个无需联系支持即可正常工作的恢复购买按钮。 了解更多信息,请参阅我们的 入门指南.

實現:

import { NativePurchases } from '@capgo/native-purchases';

async function restorePurchases() {
  try {
    const { customerInfo } = await NativePurchases.restorePurchases();

    if (customerInfo.activeSubscriptions.length > 0) {
      showSuccess('Purchases restored!');
      unlockPremiumFeatures();
    } else {
      showInfo('No previous purchases found.');
    }
  } catch (error) {
    showError('Restore failed. Please try again.');
  }
}

4. 隱私合規 (第 5.1.1 節)

2025 年將對隱私執行更加嚴格。蘋果現在要求:

對每個權限:

  • 清晰的說明 要求
  • 具體用例(非一般性)
  • 資料如何儲存/共享
  • 是否為選擇性

範例 Info.plist 項目:

<key>NSCameraUsageDescription</key>
<string>Camera access lets you scan product barcodes for quick upgrades. Photos are never uploaded.</string>

<key>NSLocationWhenInUseUsageDescription</key>
<string>Location shows relevant local content in your Premium subscription.</string>

2025 年,错误的隐私标签是拒绝理由之一。

Android Google Play Requirements

📖 Android 综合指南: 有关完整设置指南,请参阅我们的 Android Play Store Review 指南

1. 必须使用 Google Play Billing

对于数字商品(订阅、内购内容),您 必须 使用 Google Play Billing。alternative 支付方法将被拒绝。

数字商品(必须使用 Play Billing):

  • 订阅功能
  • 内购货币
  • 数字内容(电子书,音乐)
  • 高级解锁

实物商品(无法使用Play Billing):

  • 实物商品
  • 实物服务
  • 非营利捐赠

使用native-purchases进行实施:

查看完整的Android设置,请参见 Android沙盒测试创建订阅.

import { NativePurchases } from '@capgo/native-purchases';

// Automatically uses Google Play Billing on Android
await NativePurchases.configure({
  apiKey: 'your_api_key'
});

const { products } = await NativePurchases.getProducts({
  productIdentifiers: ['premium_monthly']
});

2. 透明的自动续订

Google 需要明确说明订阅会自动续费,包括:

  • 续费通知前支付
  • 价格提醒
  • 易于取消访问

符合要求的 UI:

<div className="subscription-terms">
  <p>Subscription renews automatically at $9.99/month</p>
  <p>Cancel anytime in Google Play Subscriptions</p>
  <p>Next billing date: February 15, 2025</p>
  <button onClick={openManagement}>
    Manage in Google Play
  </button>
</div>

3.隐私政策要求

IAP 应用必须遵守的:

  1. 隐私政策 URL 在 Play Console 中
  2. 在应用内可访问的隐私政策链接
  3. 准确的数据安全性声明

数据安全必须声明:

  • 收集购买历史记录
  • 电子邮件地址(收据)
  • 设备 ID(欺诈预防)
  • 分析数据

应用描述指南

两大平台上的常见拒绝原因

1. 元数据不匹配

为什么会失败:

  • 截图显示当前版本中不存在的功能
  • 描述承诺的功能并不存在
  • 应用价格与应用中显示的不符

元数据检查表

预防措施:

  • 更新截图
  • 描述与实际功能匹配
  • 测试所有声明的准确性
  • 删除过时的促销文本

2. 有害的营销

自动拒绝触发器:

  • “#1 app” without proof
  • “Unlimited” with hidden limits
  • Fake reviews or ratings
  • Competitor bashing

Marketing Guidelines

Best Practice: 具体且准确:

  • ✓ “超过 50,000 名用户”
  • ✗ “世界上最好的应用”
  • ✓ “年度计划可节省至多 30%”
  • ✗ “限时优惠!”

3. 购买流程中断

在提交前测试这些:

  • 产品正确加载
  • 购买成功
  • 高级功能立即解锁
  • 恢复购买功能正常
  • 友好的错误信息
  • 网络故障处理
// Comprehensive error handling
async function handlePurchase(productId: string) {
  try {
    const { customerInfo } = await NativePurchases.purchaseProduct({
      productIdentifier: productId
    });

    if (customerInfo.entitlements.active['premium']) {
      unlockPremiumFeatures();
    }
  } catch (error: any) {
    switch (error.code) {
      case 'USER_CANCELLED':
        // Silent - user backed out
        break;
      case 'ITEM_ALREADY_OWNED':
        await NativePurchases.restorePurchases();
        break;
      case 'NETWORK_ERROR':
        showError('Check your connection and try again.');
        break;
      default:
        showError('Purchase failed. Please try again.');
    }
  }
}

提交前检查清单

提交前检查清单

在每次提交前使用此清单。详细的测试流程请参见:

测试

  • 测试所有订阅等级
  • 验证免费试用期正确工作
  • 测试引导性优惠
  • 确认恢复购买功能正常工作
  • 在多台设备上进行测试
  • 确认沙盒/测试帐户正常工作

价格和条款

  • 价格在所有平台上都匹配
  • 订阅条款明确说明
  • 取消订阅指南可见
  • 账单频率显示
  • 免费试用期准确

隐私和权限

  • 在商店中链接的隐私政策
  • 在应用程序中可访问的隐私政策
  • 所有权限合理
  • Info.plist描述清晰 (iOS)
  • 数据安全完成 (Android)

元数据

  • 截图显示当前版本
  • 描述与功能匹配
  • 无占位文本
  • 年龄等级正确
  • 所有声明可测试

Code 质量

  • 启动时无崩溃
  • 所有功能如描述所述
  • 错误处理已实现
  • 加载状态已显示
  • 网络错误已处理

审查时间表预期

审查时间表

iOS:

  • 标准:24-48小时
  • 高峰期:3-5天
  • 周末:无审查
  • 加急:可用于关键错误

Android:

  • 初始:7天平均
  • 更新:通常更快
  • 滚动审核:可以随时发布
  • 政策违规:可能立即暂停

专业提示: 避免周末延迟,建议周一至周三提交iOS应用

如果被拒绝

澄清流程

步骤1:了解问题

  • 仔细阅读拒绝通知
  • 注意被引用具体的指南
  • 检查提供的示例
  • 寻找反馈中的模式

步骤 2: 完善修复

  • 解决根本原因,而不是症状
  • 广泛测试修复
  • 记录所有更改
  • 截图(前后)

步骤 3: 职业性回应

文档请求

iOS 解决中心:

Thank you for the feedback. I have addressed the issue:

Issue: Subscription pricing not clear upfront

Fix: Added explicit pricing display on subscription screen
showing "$9.99/month" before purchase button. Also added
cancellation instructions on the same screen.

Screenshots showing changes are attached. Test account
provided in App Review Notes.

Android 上诉:

Subject: Policy Violation Appeal - [App Name]

I have received notification regarding [Policy X.Y].

Changes made:
1. Updated subscription UI to show all pricing upfront
2. Added clear cancellation instructions
3. Implemented restore purchases functionality

Version [X.Y.Z] addresses all concerns. Test account
credentials provided below for verification.

步骤 4: 快速重新提交

  • 重新提交将更快被审查
  • 通常在 24 小时内
  • 包含测试账户
  • 参考之前的提交

2025 年更新和新要求

iOS 变更

AI 功能性披露 (新)

  • 必须标记 AI 生成的内容
  • 解释 AI 使用
  • 记录内容安全

增强订阅清晰度

  • 要求横向比较计划
  • 不允许隐藏便宜的选项
  • 清晰的升级/降级路径

隐私强化

  • 第 5.1.1 条规定的执行力度加大
  • 数据正当性受到了更多的审查
  • 儿童应用的更严格的规则

Android 变化

备选付款 (地区)

  • 在欧洲经济区和韩国允许
  • 仍然必须提供 Google Play 选项
  • 服务费率降低

订阅 API 要求

  • 新应用必须使用 monetization.subscriptions API
  • 遗留的计费 API 已废弃
  • 更好的订阅管理工具

成功最佳实践

1. 使用正确的 SDK

The @capgo/native-purchases 插件正确处理了两种平台:

// Single API for iOS and Android
await NativePurchases.configure({
  apiKey: 'your_api_key'
});

// Automatically uses correct billing system
const { products } = await NativePurchases.getProducts({
  productIdentifiers: ['premium_monthly']
});

// Platform-specific logic handled automatically
await NativePurchases.purchaseProduct({
  productIdentifier: 'premium_monthly'
});

2. 实现正确的错误处理

优雅地处理所有购买状态:

  • 用户取消 (静默)
  • 网络错误 (重试选项)
  • 已拥有 (恢复)
  • 产品不可用 (通知用户)
  • 支付待处理 (稍后查看)

3. 清晰沟通

用户应该始终知道:

  • 他们在购买什么
  • 它的价格是多少
  • 他们何时会被收费
  • 如何取消
  • 试用期结束后会发生什么

4. 广泛测试

iOS Sandbox:

  • 在 App Store Connect 中创建测试账号
  • 在设备上配置(设置 > App Store > 沙盒)
  • 注意加速订阅时长

Android 许可测试:

  • 在 Play Console 中添加测试账号
  • 查看“测试购买”通知
  • 不会产生实际费用

资源

平台文档

实施指南

详细审查指南

需要专家帮助?

在 app 审核或需要亲自辅导时,我们的团队提供了针对内购实施和审查准备的专门支持。

与我们预约视频会议 为了获得个人化的帮助,请参阅:

  • IAP 实现审查
  • App Store 审核准备
  • 提交策略指导
  • 拒绝解决方案帮助
  • 完整的设置和测试支持

我们已经成功帮助了数百个应用程序通过审查!

结论

2025 年通过 App Store 审核的应用程序需要注意细节、清晰的沟通和正确的实现。关键点是:

  1. 透明度是必须的 - 始终显示价格
  2. - 遵守平台规则 - 必须使用所需的付款系统
  3. 彻底测试 - 在审查员发现问题之前捕捉问题
  4. 明确沟通 - 用户永远不应感到困惑
  5. 准备文档 - 有待测试的帐户

按照本指南并使用适当工具,如 native-purchases 插件,您将显著增加首次通过审查的机会。

请记住:审查员正在寻找尊重用户并遵循指南的应用程序。以这种思维方式构建,审查将随之而来。

需要帮助实施内购功能吗? 查看我们的 详尽的文档 或联系社区获取支持。

继续阅读2025年App Store审查通过内购指南

如果您正在使用 2025年App Store审查通过内购指南 来规划商店审批和分发,连接它到 @capgo/capacitor-in-app-review 了解@capgo/capacitor-in-app-review 的实施细节在@capgo/capacitor-in-app-review 使用@capgo/capacitor-in-app-review 来实现原生能力的@capgo/capacitor-in-app-review, 为 @capgo/capacitor-native-market 的实现细节, 使用 @capgo/capacitor-native-market 为在使用 @capgo/capacitor-native-market 的原生能力, Capacitor OTA 更新:App Store 审核指南 为在 Capacitor OTA 更新:App Store 审核指南 的实际背景,

实时更新Capacitor应用

当web层bug活跃时,通过Capgo将修复推送,而不是等待几天的App Store审批。用户在后台接收更新,而原生更改仍在正常审查路径中。

来自马丁的人性化支持

立即开始

最新博客文章

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