用户生成内容政策
当用户可以发布或分享内容时,有与 Apple 1.2 类似的举报、屏蔽和内容审核要求。审核人员会检查应用内是否存在举报途径。
AI 编程代理
用 LLM 生成文本或图像的应用,会受到两个审核团队更仔细的审视,这是有原因的:未经过滤的输出、流向第三方模型的个人数据,以及失控的 API 账单,都曾导致应用被下架。对于用 WebViewGold 封装的 Web 应用来说,要做好这些并不难。下面是检查清单。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
Apple 把生成的内容当作用户内容对待:您需要过滤令人反感的内容、提供举报途径,在用户之间存在互动的地方提供屏蔽滥用用户的方式,并公开联系信息。对于聊天应用,这意味着对提示词和回复都进行内容审核、在每条回答上提供“举报”按钮,并在隐私政策中写一句关于内容审核的说明。
聊天内容属于个人数据。在用户发送第一条消息之前告知他们:其输入会由 OpenAI 或 Google 处理以生成回答,并征得他们的同意。该准则明确提到了与第三方 AI 共享数据的情形。不要把聊天内容用于用户未同意的任何用途。
如果用户可以注册,就必须能在应用内删除账号,并且同时删除聊天记录。隐私政策必须写明 AI 提供商和数据保留期限。
积分、token、消息包和高级套餐都属于数字商品:在应用内必须通过应用内购买销售。用 Stripe 表单或指向您网站的链接来销售积分,会导致拒审。
在 API 前面放一个文本框,内容就太单薄了。对话历史、保存的提示词、设置、任务完成时的推送以及明确的用途,才能让它成为一个应用。
审核人员会输入一些内容。确保演示账号有积分、模型在几秒内响应,并且出错时(速率限制、提供商故障)显示友好的提示,而不是一直转圈。
当用户可以发布或分享内容时,有与 Apple 1.2 类似的举报、屏蔽和内容审核要求。审核人员会检查应用内是否存在举报途径。
生成内容的应用必须防止受限输出(涉及未成年人的色情内容、助长欺骗或伤害的内容),并且必须提供一种应用内方式,让用户无需离开应用即可举报或标记冒犯性的 AI 输出。请记录您的安全测试。
发送给 OpenAI 或 Google 的聊天消息属于与第三方共享的数据。在“消息”类别下申报,并在隐私政策中写明这项处理。表单与实际流量不一致,本身就会导致拒审。
IARC 问卷会询问用户互动、不受限制的互联网访问以及成人内容。按照您的过滤机制所允许的最坏情况作答;分级过低会被 Google 更正,并可能导致下架。
客户端 JavaScript 中的密钥可以从任何已发布的应用中提取出来。让每一次模型调用都经由您自己的后端(一个无服务器路由就够了),由后端保管密钥、检查会话并施加限制。
在调用模型之前对提示词做内容审核检查,在之后对回复做检查(OpenAI 提供 moderation 端点;Gemini 有安全设置和类别)。根据类别选择拦截、弱化或添加提示,并记录处理决定。
在每条生成的回答上提供“举报”操作,保存对话 ID 和原因;在用户彼此可见的地方提供屏蔽选项;并在应用内和政策中提供支持邮箱。
按用户设置每日消息数和 token 预算,对匿名使用设置更严格的限制,在提供商处设置每月硬性上限,在达到 50% 和 80% 时发出警报,并在界面中优雅地显示“已达上限”状态。
首次运行时显示关于第三方处理的说明并要求用户明确点击“确定”,提供数据保留设置(例如 30 天后删除聊天记录),并确保删除账号时清除历史记录。

只要有一个优化良好的Web应用版本,几分钟内您就能拥有一个出色的移动应用。除此之外,客户服务非常友好且乐于助人!我只能说:推荐WebViewGold :-)
一个大多数聊天应用都需要的最小路由处理器。把预算存储和提供商调用替换成您自己的实现。
// POST /api/chat (server only; the API key never reaches the client)
export async function POST(req) {
const user = await requireSession(req); // 401 if not signed in
const { message, conversationId } = await req.json();
const usage = await getDailyUsage(user.id); // messages and tokens today
if (usage.messages >= user.plan.dailyMessages) {
return json({ error: "limit", message: "Daily limit reached. Resets at midnight." }, 429);
}
const flagged = await moderate(message); // provider moderation endpoint
if (flagged.blocked) {
await logModeration(user.id, conversationId, flagged);
return json({ error: "moderated", message: "That request cannot be processed." }, 400);
}
const reply = await callModel({
messages: await history(conversationId, 20), // bounded context window
maxTokens: 600, // caps cost per answer
userTag: hash(user.id), // abuse attribution at the provider
});
const outFlag = await moderate(reply.text);
const text = outFlag.blocked ? "I cannot help with that." : reply.text;
await recordUsage(user.id, reply.tokens);
await saveTurn(conversationId, message, text, { reportable: true });
return json({ text, conversationId });
}| 情形 | Apple 年龄分级问卷 | Google 内容分级 |
|---|---|---|
| 通用助手,对输入和输出进行内容审核,没有用户之间的互动功能 | 通常分级较低;声明应用包含 AI 生成内容,如果回答中包含链接,还要声明不受限制的网页访问 | 如实回答问卷;由于是开放式文本生成,通常会得到青少年级别的分级 |
| 陪伴或角色扮演,可能涉及成人主题 | 更高的分级(在 Apple 现行体系中为 16+ 或 18+);问卷会询问成人或暗示性内容,以及是否存在控制措施 | 成人分级;确保商店页面与之相符 |
| 医疗、法律或财务建议 | 在应用和商店页面中说明局限性;Apple 会依据 2.3 和 5.1.1 审查相关声明 | 同上;添加免责声明,避免使用诊断或投资类措辞 |
| 以儿童为受众 | 适用儿童类别(Kids Category)规则:未经家长同意,不得由第三方 AI 处理个人数据,各方面要求都更严格 | 家庭政策:面向儿童的生成式 AI 需要额外的保护措施,而且常常不会获批 |
WebViewGold 只需一个 URL 就能触发应用内购买:window.location.href = "revenuecat://purchase?external_id=" + userId + "&product=credits_100",其中产品是在 App Store Connect、Google Play 和 RevenueCat 中配置的消耗型项目,RevenueCat API 密钥和项目 ID 则在 WebViewGold 项目中设置。您的服务器监听 RevenueCat webhook,并把积分加到用户余额中;绝不要在客户端增加积分。在设置中提供 restoreinapppurchases://;对于订阅,还要提供 cancelinapppurchase://,它会打开商店的订阅管理页面。
在网页端,Stripe 依然没问题,在网页上购买的积分也可以在应用中使用。您不能做的是引导应用用户去网站购买积分。根据 Apple 的小型企业计划和 Google 针对年收入低于 100 万美元的 15% 费率档,两个商店都只收取 15% 而不是 30% 的佣金;RevenueCat 设置指南介绍了产品配置。
为 App Store 和 Google Play 审核加固这个 AI 聊天应用。1)确认没有任何提供商 API 密钥会到达客户端;把所有直接调用提供商的代码移到需要会话验证的服务器路由中。2)在调用模型之前以及对回复都添加内容审核,并记录日志。3)在每条生成的回答上添加“举报”操作(保存对话 ID、消息 ID、原因),并在用户彼此可见的任何地方添加“屏蔽”操作。4)按用户添加每日消息数和 token 预算,显示友好的“已达上限”状态,并对匿名用户设置更严格的限制。5)添加首次运行时的同意说明,解释消息会由 [OpenAI/Google] 处理以生成回答,配一个明确的“继续”按钮,并记录用户的同意。6)添加数据保留设置,并让账号删除时清除聊天记录。7)当 isNativeApp() 为 true 时,把积分购买改为跳转到 revenuecat://purchase?external_id=USER_ID&product=PRODUCT_ID,并隐藏网页支付链接;积分只能由 RevenueCat webhook 处理器授予。8)更新 /privacy,写明 AI 提供商、数据保留和举报机制。报告每一处改动,以及任何需要在提供商一侧配置的事项。
实际上,凡是生成开放式文本或图像的应用都需要:审核人员会用令人反感的提示词来测试,并依据准则 1.2 期望看到过滤机制、举报途径和联系方式。
不可以。任何发送到客户端的密钥都能从已发布的应用中提取出来,被别人用来花您的钱。把调用放到您自己的、带身份验证和限制的服务器路由后面。
必须。在隐私政策中写明提供商,在 Apple 的 App Privacy 答案和 Google 的数据安全表单中申报这项共享,并在用户发送第一条消息之前在应用内征得同意(Apple 5.1.2)。
在网页端可以。在 iOS 和 Android 应用内,积分属于数字商品,必须通过应用内购买销售,WebViewGold 通过 RevenueCat 处理这一点。在网页上购买的积分可以在应用中使用。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。