隐私政策
生效日期:2026 年 10 月 1 日
这是一份翻译版本。英文版本具有法律约束力。
SpecFit 是由Codemad(以下称“我们”)开发的 iPhone 应用,它能展示眼镜戴在你真实脸上的效果,还能估算你的瞳孔间距离(PD)。本政策说明应用会在你的 iPhone 上保留哪些内容、会向服务商发送哪些内容,还会说明数据保留多久以及你有哪些选择。
简要概述
- 你的3D 面部扫描和测量数据只保存在你的 iPhone 上。我们绝不会把它们发送到我们的服务器或分析服务。
- 试戴或脸型识别需要用到照片。这些照片会发送到我们的服务器以及谷歌的 Gemini AI,用于生成结果。
- 结果生成后,我们不会保留这些照片。我们只保留一个短期存在的脸型识别结果,用单向哈希作为键保存 7 天,其中不包含任何照片。
- 谷歌可能会短暂保留这些照片,用于检查滥用行为。
- 我们绝不出售你的数据,也绝不把你的照片用于广告。
- 我们使用 AppsFlyer 衡量广告投放效果,仅在 iOS 询问时你同意追踪的情况下才会这样做。
保留在你设备上的数据
引导式面部扫描使用支持 Face ID 的 iPhone 上的 TrueDepth 摄像头,采集你面部的 3D 网格和深度数据。应用据此找出面部特征点,测量你的瞳距、脸宽和鼻梁宽度,还会据此算出镜框的适配细节。
扫描数据、网格、深度数据、特征点、测量数据和适配细节都只保存在你的 iPhone 上,你的处方度数也是如此。以上这些都不会发送到我们的服务器或分析服务。你的基础照片、扫描中获取的左右侧照片、保存的试戴记录,以及保存的链接镜框,同样只保存在你的 iPhone 上。
以上所有内容都保存在应用的 iOS 沙盒内。面部档案使用 iOS 的完全文件保护机制。
一点补充说明:当你请求一次试戴时,渲染指令中可能会包含一个目标镜框宽度。我们会用你脸宽的百分比来表示这个数值,不会发送你的原始测量数据或面部网格。
会离开你设备的数据,以及它们的去向
下面列出的每一项都会通过 HTTPS 发送到我们的 API,即“SpecFit API”,由 Cloudflare 为我们运行。部分请求随后会进一步发送到谷歌的 Gemini API。
试戴。每次新的试戴,应用都会发送你的正面照片,也就是扫描得到的照片或你选择的照片。对于侧面视角,还会发送扫描时拍下的左侧或右侧静态照片,同时还会发送商品图片和一段文字指令。我们的服务器会把这些内容转发给 Gemini,并把结果返回给你。我们只在内存中处理这些数据,不会把你的照片或生成的图片写入我们的存储系统。
脸型识别。你可以用一张照片代替 3D 扫描来完成设置。如果这样做,应用会在设置完成后立即发送这张照片的一个较小副本(768 像素),这个步骤发生在任何试戴之前。Gemini 会读取你的脸型三次,我们取平均结果。我们不会保存这张照片,只保留结果本身:一个脸型标签和六项评分。我们会把它缓存在 Cloudflare 上 7 天,使用图片的单向 SHA-256 哈希作为键,而不是你的设备 ID。如果你使用 3D 扫描,就不会进行这一步。
眼镜照片。你可以选择一张眼镜的照片或截图,例如某人戴着眼镜的照片。应用会发送眼部区域的裁剪图,用于识别镜框。我们会把识别结果缓存 7 天,其中包含镜框细节以及品牌和型号的推测,但不包含任何图片,使用你的档案 ID 和款式 ID 的哈希值作为键。
粘贴的商品链接。当你粘贴一个商店链接时,应用会发送这个网址。我们的服务器会获取公开的商品页面,并让 Gemini 选出商品图片。我们会把结果缓存 7 天,使用该网址的哈希值作为键,结果中包含来源网址和商品图片,但不包含你的设备 ID。有些商店会屏蔽我们的服务器,这种情况下应用可能会通过你自己的网络连接获取公开页面,并把页面的 HTML 发送给我们的服务器。
分享的 TikTok 视频。当你把一个 TikTok 视频分享到 SpecFit 时,应用会发送这个 TikTok 链接。我们的服务器会通过 TikTok 数据服务 ScrapeCreators 获取这个公开视频,并把视频上传到 Gemini Files API,用于找出视频中佩戴眼镜的片段。识别完成后,我们会立即从 Gemini 删除这个文件。我们会把结果缓存 24 小时,使用该视频作为键,结果中只包含时间戳和对应的画面帧。
谷歌如何处理这些请求。谷歌作为我们的服务提供方,按照Gemini API 附加条款处理这些请求。我们使用的是付费版 Gemini API。对于付费使用,谷歌表示不会用提示词或回复内容来改进其产品,但谷歌可能会短期记录这些内容,用于检测滥用行为和履行法律义务。这些处理过程可能发生在其他国家。
匿名设备 ID。应用会生成一个随机 ID,并保存在 iOS 钥匙串中。每次向我们的 API 发送请求时,都会附带这个 ID。这个 ID 不包含姓名、邮箱或任何面部数据,你也不需要注册账号。这个 ID 同时也是你在 RevenueCat 的客户 ID 和在 PostHog 的分析 ID。
我们的服务器会在 Cloudflare 上为这个 ID 保存一条小记录,其中包含你的 App Attest 密钥记录,用于验证请求确实来自真正的 SpecFit 应用;还包含用于追踪付费试戴积分使用情况的密钥;以及你最近的链接导入、照片识别和 TikTok 识别的时间,用于每日限额管理,这些时间记录会在 24 小时后删除。此外还包含一个标记,记录你是否曾经完成过购买。
试戴没有每周限额,你的积分就是试戴的凭证。一个全局的每日预算用于控制我们的总体 AI 成本。
购买。积分是一次性购买,由苹果通过你的 App Store 账户扣款,不涉及任何订阅,也不会自动续费。RevenueCat 会记录每一次购买,并保存你的积分余额,与你的设备 ID 关联。我们绝不会看到你的银行卡信息。如果你兑换了优惠码,RevenueCat 会通知我们的服务器,我们会在 PostHog 中记录这次兑换。
产品分析。应用和我们的服务器会向 PostHog EU Cloud 发送使用事件,例如“查看了某个屏幕”或“开始购买”。这些事件与你的设备 ID 关联,绝不包含你的照片、扫描数据、测量数据或处方度数。有一类服务器事件会包含 AI 识别出的脸型标签(例如“椭圆脸”),以便我们检查识别效果。你可以随时在设置 → 隐私中关闭应用的分析功能。不过我们的服务器仍会发送少量关于购买、积分和服务错误的事件,因为运行服务需要用到它们。
广告归因(仅在你允许追踪时)。我们在 Meta 和 TikTok 上投放 SpecFit 的广告,使用 AppsFlyer 来了解哪些广告带来了安装和购买。你第一次完成脸部识别后,iOS 会询问是否允许 SpecFit 追踪你。如果你同意,AppsFlyer 会使用自己的设备 ID 以及你的 Apple 广告标识符(IDFA),RevenueCat 也会把你的购买事件发送给 AppsFlyer。苹果把这称为“追踪”。如果你拒绝,AppsFlyer 就不会获得你的 IDFA 或它自己的设备 ID,RevenueCat 也不会把你的购买信息发送给 AppsFlyer,我们只能看到苹果提供的汇总匿名报告(SKAdNetwork 和 AdAttributionKit)。你可以随时在 iOS 的“设置 → 隐私与安全性 → 追踪”中更改这个选择。
服务器日志。Cloudflare 会处理运行和保护服务所需的常规网络数据,包括你的 IP 地址、请求路径、时间和响应状态。Cloudflare 会保留我们的请求日志最长 7 天。我们的代码不会把照片或提示词写入这些日志。
本网站
本网站(specfit.app)使用 Cloudflare Web Analytics 统计页面访问量,它不设置任何 Cookie,也不在你的浏览器中保存任何内容,不会跨站追踪你,也不会为你建立画像。它会记录你访问的页面、你从哪个页面进入、浏览器类型、所在国家,以及页面加载速度。我们看到的只是汇总数字,例如“本周这个页面有 300 次访问”,因此本网站不需要 Cookie 提示横幅。
苹果可以向我们展示有多少下载来自本网站,但只是汇总数字,苹果不会告诉我们你是谁。
我们保留数据的时长
- 你 iPhone 上的面部扫描、网格、测量数据、照片和试戴记录:直到你删除拍摄记录、替换它,或删除应用为止。
- 你 iPhone 上的处方度数和保存的链接镜框:直到你清除或移除它们,或删除应用为止。
- 我们服务器上的试戴照片和生成图片:仅在请求处理期间存在,我们不会保存它们。
- 我们服务器上的脸型识别照片:仅在请求处理期间存在,我们不会保存它。
- 脸型识别结果(标签和六项评分,不含照片):7 天,使用图片的单向哈希作为键。
- 眼镜照片识别出的镜框结果(不含图片):7 天。
- 粘贴链接的结果(网址和商品图片):7 天。
- Gemini 中的 TikTok 视频:识别完成后立即删除。
- TikTok 识别结果(仅时间戳):24 小时。
- 谷歌保存的 Gemini 提示词和回复:按照谷歌付费服务条款,用于短期滥用检测,谷歌没有公布固定期限。
- 链接导入、照片识别和 TikTok 识别的时间记录:24 小时。
- 我们服务器上的设备 ID 记录(App Attest 密钥、积分使用密钥、购买标记):直到你要求我们删除为止。
- RevenueCat 上的购买记录和积分余额:直到你要求我们删除为止,重新安装后依然保留。
- Cloudflare 请求日志:最长 7 天。
- PostHog 上的分析事件:按照我们 PostHog 项目中的设置保留。关闭分析功能后,应用会立即停止发送新事件。
- AppsFlyer 归因数据(仅在你允许追踪时):按照 AppsFlyer 的保留条款处理。
- 钥匙串中的设备 ID:删除应用后仍可能保留,重新安装后可能会恢复。
服务提供方
- Cloudflare运行 SpecFit API 和本网站,也保存我们的短期缓存和设备 ID 记录,提供网络安全防护、保存请求日志,并在不使用 Cookie 的情况下统计网站访问量。
- 谷歌(Gemini API)负责生成试戴效果、识别脸型、识别镜框、挑选商品图片,以及在 TikTok 视频中找出眼镜。
- RevenueCat处理购买流程并保存你的积分余额。
- PostHog为我们提供托管在欧盟的匿名产品分析服务。
- AppsFlyer用于衡量我们的广告投放效果,只有在你允许追踪时,它才会获得你的 IDFA 和购买事件。
- ScrapeCreators获取你分享到 SpecFit 的公开 TikTok 视频。
- 苹果为我们提供 App Store、应用内购买、照片选择器、App Attest 以及广告报告。
我们要求代表我们行事的服务商按照本政策和法律要求保护个人数据,这些服务商自身的条款和隐私声明同样适用于它们。
我们不会做的事
- 我们不要求你注册账号,也不会在我们的服务器上保存面部档案。
- 我们不会在应用内展示广告。
- 我们不会出售或出租你的个人数据。
- 我们不会把你的照片用于广告或训练 AI 模型。
- 除非你在 iOS 弹窗中同意,否则我们不会追踪你。
- 我们不使用面部识别技术,也不会核实你的身份。我们给 AI 的脸型识别指令明确要求不要识别出照片中的人是谁。
应用请求的权限
- 相机 - 用于通过 TrueDepth 摄像头进行引导式面部扫描。
- 照片库 - 当你选择一张自己的照片,或一张眼镜的照片或截图时使用。
- 添加到照片库 - 当你保存一次试戴效果时使用。
- 追踪 - 用于通过 AppsFlyer 衡量我们的广告投放效果。你可以拒绝,应用功能不受影响。
儿童保护
SpecFit 目前使用的 AI 渲染服务不适用于 18 岁以下的用户。我们不会故意处理儿童的照片或其他个人数据。如果你认为有儿童通过 SpecFit 提供了个人数据,请联系我们,以便我们调查并采取适当的删除措施。
你的权利和选择
在你扫描或上传之前,拍摄界面会显示一句提示,告知你的照片会发送到谷歌的 Gemini AI。当你进行扫描或上传时,即表示你同意这一点。
你可以随时停止发送照片,只需不再请求新的试戴即可。你也可以在 iOS 设置中移除相机或照片的访问权限。
点一下你的扫描缩略图,然后点一下删除所有扫描。这会从你的 iPhone 上移除每一个面部档案、照片、侧面照片、面部网格、测量数据和试戴记录。它不会清除你的处方度数、保存的链接镜框、设备 ID,或我们服务器上的积分记录。使用清除处方度数可以单独移除你的处方信息。
你可以随时在设置 → 隐私中关闭分析功能,也可以在 iOS 设置的“隐私与安全性 → 追踪”中关闭追踪功能。
我们服务器上的缓存会在 7 天或 24 小时后自动删除。如果想删除我们服务器或 RevenueCat 上的记录,请发邮件至 codemad.edu@gmail.com。你也可以写信提出问题、查看你的数据,或提出异议。SpecFit 没有账号系统,因此我们需要你的设备 ID 才能找到你的记录。我们会按照隐私法律的要求作出回应。如果请求涉及服务商为我们保存的数据,我们会与相应的服务商协作处理。
安全
面部档案使用 iOS 的完全文件保护机制,其他本地文件保存在应用的沙盒内。发送到我们 API 的所有内容都使用 TLS(HTTPS)加密。我们的 API 使用苹果的 App Attest 来验证请求确实来自真正的应用,并限制每个设备发送请求的频率。我们不会把你的照片或生成的试戴效果写入我们的存储系统。没有任何系统是绝对安全的,因此我们无法承诺绝对的安全性。
本政策的变更
如果我们改变 SpecFit 处理数据的方式,会在变更生效前更新本页面及其生效日期,重大变更也会在应用的版本说明中提及。
联系方式
Codemad · codemad.edu@gmail.com