自己动手
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案Claude Code + 登录
在封装的 Web 应用中,有两件事会让登录失效:Google 会在嵌入式 WebView 中屏蔽其登录页面,而 Apple 会拒绝那些提供 Google 登录、却没有同等隐私选项的应用。WebViewGold 用 Social Login Helper 解决了第一个问题,并在 iOS 上自动处理 Sign in with Apple 页面;Web 端则交给 Claude Code。下面是既能通过审核、又能让用户保持登录状态的设置方法。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
Google。Google 拒绝在嵌入式 WebView 中进行 OAuth,并显示“Error 403: disallowed_useragent”。审核人员点按“使用 Google 继续”,看到这个错误,您就会因登录失效而收到准则 2.1 拒审。WebViewGold 的 Social Login Helper 可以解决这个问题:您列出登录流程中会出现的 URL 前缀(Config.swift 中的 google_login_helper_triggers、Config.java 中的 GOOGLE_LOGIN_HELPER_TRIGGERS),当其中某个 URL 加载时,应用会在一个专用窗口中以 Google 接受的 User-Agent 打开登录页面,完成后再返回您的 Web 应用。Facebook 也有同样的机制。详情参见Social Login Helper 文档和disallowed_useragent 修复指南。
Apple。准则 4.8 规定,使用第三方或社交登录作为主账户登录方式的应用,还必须提供一种同等的登录服务:只收集姓名和邮箱,允许用户对邮箱保密,并且未经同意不会为广告目的追踪用户。Sign in with Apple 满足全部三项,也是审核人员期望看到的。在 iOS 上,WebViewGold 会检测 appleid.apple.com 并自动处理该流程,无需任何配置。如果您的应用只有邮箱和密码登录,4.8 就不适用。
Android。Apple 的规则不适用于 Google Play,WebViewGold 文档也没有描述在 Android 上对 Apple 页面做任何特殊处理。请在您的 Android 版本中测试 Web 流程;如果无法完成,在 Android 上隐藏 Apple 按钮也是可以接受的。
| 领域 | Claude Code | 您 |
|---|---|---|
| Web 应用 | Apple 登录提供方、同等地位的按钮、回调路由、首次登录时的姓名处理、用户资料中的登录方式标记、CLAUDE.md 规则 | 审阅计划和 diff,部署 |
| Apple Developer 门户和身份验证控制台 | 撰写一份列出每个字段的 SETUP-APPLE-LOGIN.md | Services ID、密钥、回调 URL、提供方设置、邮件中继,以及每六个月一次的密钥续期 |
| WebViewGold | 列出登录流程经过的 URL 前缀;仅当项目在仓库中时才编辑 Config 中的值 | 确认触发规则列表,构建 |
| 测试 | 在桌面浏览器中检查 Web 流程 | 在 TestFlight 和内部测试中做真机测试、隐藏邮件地址、审核人员账号 |
| 需求 | iOS(Config.swift) | Android(Config.java) |
|---|---|---|
| 在应用内使用 Google 登录 | google_login_helper_triggers,例如 accounts.google.com 和 accounts.youtube.com | GOOGLE_LOGIN_HELPER_TRIGGERS |
| Facebook 登录 | facebook_login_helper_triggers | FACEBOOK_LOGIN_HELPER_TRIGGERS |
| Sign in with Apple | 自动检测(appleid.apple.com) | 文档未说明;请测试 Web 流程 |
| 把登录 URL 交给系统 | googlelogin:// + 编码后的 URL 会在外部打开它(此时会话保存在 Safari 中,而不是应用内) | googlelogin:// + 编码后的 URL 会打开一个 Chrome Custom Tab(URL 处理文档) |
| 在代码中识别应用 | useragent_iphone、useragent_ipad,加上标记 WebViewGoldApp | USER_AGENT,加上标记 WebViewGoldApp |
| 保持会话 | 让 deletecache 保持为 false | 让 CLEAR_CACHE_ON_STARTUP 保持为 false;如果 Cookie 到得晚,使用 MANUAL_COOKIE_SYNC;退出登录 URL 用 HOME_URL_LOGOUT |

出色的工作!无需任何编码就能轻松完成。简单快捷!创作者也提供了大力帮助!
大部分时间花在 Apple Developer 门户上,代码很快就能写好。
为您的 App ID 启用 Sign in with Apple。为 Web 流程创建一个 Services ID(它的标识符就是 OAuth 客户端 ID),添加您的域名和身份验证提供商的回调 URL(Supabase 为 https://YOUR-PROJECT.supabase.co/auth/v1/callback),并创建一个 Sign in with Apple 密钥(.p8)。记下 Team ID 和 Key ID。
用 Services ID 和密钥启用 Apple 提供方。Apple 的客户端密钥(client secret)是一个签名的 JWT,有效期最长六个月,所以请在日历中设置续期提醒。把生产域名加入允许的重定向 URL;从生产项目中移除预览和 localhost 条目。
用户可以选择“隐藏邮件地址”(Hide My Email)。为了把密码重置邮件和收据送达 privaterelay.appleid.com 地址,请在 Apple Developer 门户的 Sign in with Apple for Email Communication 下注册您的发件域名或发件地址。
它会添加按钮、回调处理和一份设置清单,并列出登录流程经过的 URL 前缀,方便您核对触发规则列表。
把 Google 的前缀放进 google_login_helper_triggers 和 GOOGLE_LOGIN_HELPER_TRIGGERS。如果您的身份验证提供商使用一个会重定向到 Google 的自定义域名,需要列出的仍然是 Google 的域名。
TestFlight 和内部测试,对照下面的清单逐项检查。如果原生部分需要帮手,Full Service 团队会为您设置并构建应用。
如果您通过 MCP 服务器连接了身份验证提供商或数据库,Claude Code 可以自己读取当前的提供方设置;否则它会替您把这些设置写进清单。
我们的 Web 应用运行在浏览器中,也运行在用 WebViewGold 构建的原生 iOS 和 Android 应用中(User-Agent 中包含 WebViewGoldApp)。我们提供 Google 登录,因此 Apple 准则 4.8 要求 iOS 应用中提供一种同等的、注重隐私的登录方式;我们将添加 Sign in with Apple。原生封装层已经处理好了 WebView 这一侧:Google 登录页面由 WebViewGold Social Login Helper 打开(触发规则 URL 前缀在 Config.swift 和 Config.java 中),在 iOS 上 appleid.apple.com 会被自动检测和处理。不要为登录添加原生代码或 URL scheme。 先给出计划,我批准后再实施: 1. 识别我们使用的身份验证库(Supabase Auth、Firebase Auth、Auth.js 或 Clerk),为 Web 流程添加它的 Apple 提供方,使用我们的生产回调 URL。不要预览或 localhost 重定向。 2. 登录和注册页面:Sign in with Apple 和 Continue with Google 作为同等选项,尺寸和位置相同。按照 Apple 的规范设计 Apple 按钮(黑色或白色,文字为 Sign in with Apple)。邮箱和密码登录保留,因为 App Review 的演示账号要用它。 3. Apple 只在首次授权时提供用户姓名。如果我们的身份验证库没有保存它,就在新手引导中、缺少显示名称时请用户填写。 4. 用户可能选择隐藏邮件地址。确保事务性邮件对 privaterelay.appleid.com 地址也能正常送达。 5. 在用户资料中记录用户用过哪些登录方式,以便日后删除账户时撤销 Apple 令牌。如果身份验证库在登录时提供 Apple refresh token,就在服务器端加密保存。 6. 列出 Google 和 Apple 流程在我们的域名和提供商域名上经过的每一个 URL 前缀(如果已连接 Playwright MCP 服务器就用它,否则参考身份验证库的文档),方便我与 google_login_helper_triggers 和 GOOGLE_LOGIN_HELPER_TRIGGERS 进行比对。 7. 编写 SETUP-APPLE-LOGIN.md:Apple Developer 步骤(启用 Sign in with Apple 的 App ID、带域名和回调 URL 的 Services ID、密钥)、我们身份验证控制台中的字段、重定向 URL 白名单、邮件中继注册,并注明 Apple 客户端密钥最长六个月后就会过期。 8. 在 CLAUDE.md 中添加一条规则:Sign in with Apple 必须与其他所有第三方登录同样醒目,重构时不得删除。 报告修改过的文件以及任何悬而未决的问题。
一个在 Next.js 客户端组件中使用 Supabase 的示例。重点在于两个提供方得到同等对待,并且只有一个生产重定向;代理会根据您的身份验证库进行调整。
// components/social-login.tsx
"use client";
import { createClient } from "@/lib/supabase/client";
// 仅限生产回调;必须列在 Supabase 的重定向 URL 白名单中
const REDIRECT_TO = "https://app.example.com/auth/callback";
export function SocialLogin() {
const supabase = createClient();
const signIn = (provider: "apple" | "google") =>
supabase.auth.signInWithOAuth({ provider, options: { redirectTo: REDIRECT_TO } });
return (
<div className="flex flex-col gap-3">
{/* 两者的高度、宽度和位置都相同:准则 4.8 要求的是同等,而不是藏起来 */}
<button
type="button"
onClick={() => signIn("apple")}
className="h-12 w-full rounded-lg bg-black text-white font-medium"
>
Sign in with Apple
</button>
<button
type="button"
onClick={() => signIn("google")}
className="h-12 w-full rounded-lg border border-gray-300 bg-white text-gray-900 font-medium"
>
Continue with Google
</button>
</div>
);
}
// app/auth/callback/route.ts 用 code 换取会话 (supabase.auth.exchangeCodeForSession),
// 并重定向到用户来时的页面。在应用内,WebViewGold 登录窗口
// 会返回到这个 URL,所以会话落在应用中,而不是 Safari 或 Chrome 中。deletecache 和 Cookie 设置,再去动代码。不需要。准则 4.8 适用于用第三方或社交登录来创建或验证主账户的情况。只有邮箱和密码登录不会触发它。
Apple 的措辞允许任何具备所列隐私特性的登录服务。但在实践中,Sign in with Apple 是审核人员一眼就能认出的选项,也是最省力就能站得住脚的选择。
Google 会检测嵌入式 WebView,并以 disallowed_useragent 阻止它们。Social Login Helper 会在 Google 接受的环境中打开这些页面,完成后再返回您的应用。
在那里是可选的。到处都显示,对在不同设备间切换的用户来说更一致;只有当 Web 流程在您的测试版本中无法完成时,才在 Android 上隐藏它。
不能。它负责撰写清单和代码,如果项目在仓库中,还可以编辑 Config.swift 和 Config.java 中的值。门户设置、密钥和签名仍由您负责。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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 天内提出申请。