PickyCat 隐私政策
最后更新:2026 年 10 月 3 日
PickyCat 是一个帮你记录猫吃了什么、并据此推荐罐头的 App。这份政策说明它收集什么、不收集什么,以及你如何撤回和删除。
1. 只存在设备上的数据
你的猫的档案、每一顿喂食记录、心愿单和对比记录,都保存在你的设备本地存储里。App 默认没有账号,你不需要注册;不登录的情况下,我们没有任何办法从服务器上读取你的这些数据。如果你主动使用「通过 Apple 登录」并开启家庭共享,情况会不同——那部分单独写在第 4 节。
网页版请注意:这些数据保存在浏览器的站点存储里。Safari 会在你一段时间不访问后自动清除它,无痕窗口则完全不保存。这不是我们能控制的行为。设置里的「你的数据」→「备份与迁移数据」提供了导出备份的功能。
2. 匿名共享(默认关闭)
如果你打开这个开关,App 会把一份记录发送到我们的服务器,用于改进推荐算法——具体来说,是为了知道和你的猫条件相似的猫,对同一款罐头做出了什么反应。
2026 年 9 月 4 日起,这份记录多了三样:体重、心愿单和储藏柜。加它们是为了另一件事——如果你换了手机或者重装了 App,我们只能从这份记录里帮你还原;在这之前,能还原的只有猫和喂食记录,体重、心愿单和柜子是还不回来的。上传的只有罐头编号和数字,你在心愿单和柜子里写的备注不上传。
会上传的内容,完整清单
- 猫的年龄(整数年)、性别
- 品种、毛色(仅当你填写了)。这两项是固定选项;如果你选了「其他」并自己写了一句,你写的那句话也会上传,最多 24 个字,见下
- 你选择的挑食程度(1–5)
- 你在引导中勾选的偏好蛋白质、不喜欢的蛋白质、需要避开的蛋白质
- 每一顿喂食:罐头的编号、她的反应(吃完/吃一半/舔了/几乎没动/走开)、是否需要拌食、事后是否有不适反应、这条记录是引导时回忆的还是当场记录的,碗里放了多少克、喂的时候什么温度,以及这顿饭发生在哪一天(精确到天,不含时间)
- 这一顿里加了什么补剂——包括你自己打上去的那个名字。这是唯一一处会上传你亲手输入的文字的地方,见下
- 你答过的两罐对比,以及记录这一顿之前 App 对那罐的预测值——连同做出这个预测的 App 版本号和推荐参数的版本号(那是软件的编号,不是你的)
- App 给你推荐过哪几罐、你点开了哪一罐(2026 年 10 月 2 日起):罐头编号、是哪一类推荐、排第几、第一次和最近一次推荐是哪一天(精确到天);以及你第一次喂某一罐时,它之前有没有被推荐过。只有罐头和日期——用来知道推荐到底有没有用
- 体重记录:每次称重的公斤数和是哪一天(精确到天,不含时间)
- 心愿单:上面有哪几款罐头的编号
- 储藏柜:有哪几款罐头的编号、各几罐、规格克数、盖子上印的保质期(精确到天)
- 一串在你设备上生成的随机数字,用来把同一只猫的多条记录归到一起
- 上传时间戳和数据格式版本号
永远不会上传的内容
- 猫的名字
- 猫的照片,或任何图片
- 你的姓名、邮箱、电话
- 你的位置
- 设备标识符、广告标识符
- 心愿单和储藏柜里你自己写的备注。上传的只有罐头编号和数字,你写的那句话不走 —— 代码里那三处是逐个字段挑出来的,从不整份复制
- 自由文本输入——除了上面那三处:你给补剂起的名字,以及品种和花色里你自己写的那两句
上传内容是按字段白名单构建的——代码里逐一列举了允许发送的字段,而不是「拿整份档案再删掉敏感的」。这个规则由一个自动检查脚本守着。
关于那三处自由文本
2026 年 8 月 20 日之前,这一页可以说「任何自由文本都不会上传」,而且代码里有一个检查在整份上传内容里扫描散文,逐字守着这句话。
现在有三处例外,而且只有这三处,每一处最多 24 个字:
- 你在「加入了?」里自己打上去的补剂名字(2026 年 8 月 20 日起)。一个说不出名字的补剂,是一个谁也学不到东西的补剂。
- 品种选「其他」时你自己写的那一句(2026 年 8 月 29 日起)。
- 花色选「其他」时你自己写的那一句(同上)。
后两处上传的理由是:光知道「有多少人的猫不在这个单子上」没有用,我们从第一版起就知道这个数字了;要把单子补齐,得知道缺的是哪几种。这两个框只在你选了「其他」之后才出现,你不写就什么也不传,而且一旦你把品种改回单子上的某一项,之前写的那句话就不再上传,也不再保留。
那个检查没有被关掉。它现在放行的是这一个字段、按路径写死,而不是「凡是看起来像补剂的都放行」;上传内容里其它每一个字符串仍然逐一被它读过。而且检查里同时钉着反面:把同样几个字放进任何别的字段,它必须仍然拦得住——那条断言哪天不再失败,就说明这个口子变大了。
如果你不想上传这些:补剂只用现成的那三个、不用「+自定义」;品种和花色不选「其他」,或者选了「其他」但把框留空;或者干脆关掉「匿名共享」,那样什么都不会上传。
关于那串随机数字
它是在你的设备上用系统的密码学随机源生成的,和你的姓名、邮箱、设备号都没有关系,在任何其它地方也没有含义。它存在的唯一目的,是让同一只猫的多次上传能被识别为同一只猫,而不是被当成很多只不同的猫。
按苹果 App Store 的分类口径,因为记录通过这串数字被关联在一起,这属于「与您关联的数据」(Data Linked to You)。我们照实申报。
3. 拍照认罐的答案(默认关闭)
App 里可以拍一张罐头的照片,它会认出标签上的字,给你三个候选让你挑是哪一款。你挑的那一下,就是一次「正确答案」——手里拿着实物的人告诉我们认得对不对。这是唯一能量出识别准不准的东西。
在「设置」里把「我挑完之后,把答案发回去」打开之后,会上传的是:
- 从标签上认出来的字
- 给你的那三罐(按显示顺序),以及你挑了哪一罐
- 或者你点了「都不是」——这一条反而最有用,因为它是唯一能告诉我们「正确答案根本没在里面」的
- 这次是用手机本地识别还是别的方式读的
照片本身不会上传。它只存在你这台手机上。服务器上那张表里根本没有存照片的字段,就算以后哪个版本想传也没地方落。代码里也钉了一条自动检查,一旦上传内容里出现照片路径就会构建失败。
这些内容里不含任何身份标识:没有猫、没有记录、没有那串随机数字、没有任何能认出你或你手机的东西。一行就是「某个标签上的几个词 + 三个商品编号 + 哪个是对的」。
这是独立于「匿名共享」的另一个开关,两个互不影响,都默认关闭。不合并,是因为同意共享猫的进食记录,和同意把相机读到的东西发出去,不是同一件事。
关于删除:正因为这些内容里没有任何标识,我们无法找出「你的」那几行——没有线索可查。如果你不希望它们被上传,把这个开关关掉即可,关掉之后不会再发送任何一条。
4. 账号与家庭共享(可选,默认没有)
这一节和上面第 2 节说的是两件完全不同的事,请分开读。第 2 节的「匿名共享」是一串与你无关的随机数,只上传、我们从不读回,你的猫的名字和照片永远不离开你的手机。本节的「账号」正好相反:登录之后,你的完整记录会保存在我们的服务器上,并且会被读回到你和家人的手机上。两者互不影响,可以只开其中一个、两个都开,或者两个都不开。
不登录,本节完全不适用。不登录时,App 的行为和以前一模一样,不会有任何一个字节因为这个功能而离开你的设备。
登录方式:仅「通过 Apple 登录」。我们从 Apple 收到一串代表你的稳定标识(sub),我们只保存它的哈希值,不保存你的邮箱、也不保存你的姓名。你在 App 里给自己起的称呼(例如「爸爸」)由你自己填写,仅供你的家庭成员看到。
登录后保存在服务器上的内容:你的猫的档案(包括名字、年龄、品种等你填写的信息)、每一顿喂食记录、储藏柜、心愿单及其备注、体重记录、对比记录、选罐原则与预设,以及你自己录入的罐头。简单说,就是「你在 App 里记的东西」的完整副本。
照片不上传。猫的照片和你拍摄的罐头照片保留在拍摄它的那台手机上,不会同步给家庭成员,也不会保存到服务器。
家庭共享:你可以生成一个 24 小时内有效、只能使用一次的邀请码。使用该邀请码加入同一个「家庭」的成员,可以看到并修改上述全部内容。这是这个功能的目的:一家人一起喂同一只猫。请只把邀请码给你信任的家人。
登录同时包含第 2 节的那项同意。(2026-09-04 起)登录之后,你的记录除了替你保存,也会参与第 2 节说的那些统计——「别的猫都在吃什么」,也就是匹配度分数的来源。登录界面上会写明这一点。退出登录会把这项同意还回你登录之前的状态,不会留着;不想参与,不登录即可,App 的其他功能完全不受影响。
登录之后,我们会把这台手机上已经有的那两种匿名标识和你的账号对上号(2026-09-04 起):投稿用的设备码,以及每只猫的匿名记录编号。这是为了在你写信来问「我的记录没了」或者「把我的数据删掉」时,我们够得到你登录之前留下的东西 —— 在这之前,那只能靠你自己把一串数字抄给我们,而手机已经丢了的人抄不出来。
只报已经存在的,不会因此新建。如果你从没投过稿、也从没打开过匿名共享,那你本来就没有这两种编号,登录也不会给你造一个。
这条对应关系不是一把钥匙。它只是我们人工处理求助信时的第一条线索,本身不能用来读取、删除或还原任何记录 —— 那几步仍然要另外核对身份。删除账号时它一并删除。
不同步的内容:你所在的时区与语言、通知设置、当前选中哪只猫,以及各类本地缓存,都留在本机,不会上传,也不会影响家人的手机。
5. 出错时的诊断(自动发送)
App 打不开、某一屏出错、或者恢复备份失败的时候,会自动把一小段诊断信息发回给我们。这一节讲的是它里面有什么、为什么是自动的。
会发送的内容:
- 启动卡在了哪一步(一个步骤名,比如
meals、feeds),以及每一步花了多少毫秒 - 手机上每一格数据有多少字节——只是长度,不是内容。它能说「喂食记录有 12 MB」,说不出其中任何一顿是什么
- App 版本、上一次运行的是哪个版本(也就是这次是不是刚更新完)、系统版本、屏幕尺寸
- 某一屏出错、或者恢复备份失败时:那条报错信息和最上面三行调用栈。恢复失败时不会发送你粘贴的备份本身,里面的任何一条记录都不会
- 一个设备编号(和你在 App 里提意见、投稿时用的是同一个),这样同一台手机的几条记录能对上,我们也能回复你
不会发送的内容:任何一格数据里的值。猫的名字、喂食记录、体重、心愿单、照片——一条都不会。上面那些是尺子读数,不是内容。
为什么是自动的?因为在这之前它是「你按一下才发」,而按钮只在 App 完全打不开时才会出现。真正常见的两种情况——「卡了一次,下次又好了」和「开了二十秒才开,但最后开了」——你那边根本看不出出了事,也就永远不会有人去按。结果就是最常见的两种故障,我们按设计永远不可能知道。这个改动只改了「谁决定发」,没有改「发什么」。
数量是有上限的:同一次故障最多自动发两条,「开得慢」这一种每个版本每台手机只发一条,同一个报错一次使用中只发一条。恢复备份时如果只是粘贴的内容不是备份、或者备份里没有猫,什么都不发。
启动计时(2026-10-05 起):除了出错的时候,每台手机每天最多还会发一条「这一次打开花了多久」——从 App 开始启动到首页出来的毫秒数,以及分在哪几段(系统启动、载入程序、读手机上的数据、首页、推荐)。和上面一样只是尺子读数:时间、App 版本、系统版本、屏幕尺寸和那个设备编号,没有任何一格数据的值。中途被切到后台的那次启动不发。这是为了让 App 打开得更快:在这之前,我们只知道慢到出错的那几次,平常一次要等多久没人知道。
「导出我的数据」那个按钮永远是手动的:那一份是你的完整记录,任何自动流程都不会碰它。
6. 我们不做的事
- 不投放广告,App 内没有任何广告代码
- 不做苹果定义的「追踪」(Tracking)——不与第三方数据关联做广告投放或效果衡量,不向数据经纪商出售或分享任何数据
- 不尝试从匿名数据反推使用者身份
- 不把为改进推荐而收集的数据挪作它用
7. 第三方
共享的记录存放在我们自己的服务器上,位于中国广州(腾讯云)。数据库由我们自己运行,不再经过任何数据库托管服务商。除此之外没有任何第三方接收这些数据。App 内没有集成任何分析 SDK、广告 SDK 或社交 SDK。
2026 年 8 月 20 日之前,这些数据存放在境外的 Supabase 上。已经安装的旧版本 App 在用户更新之前仍然会继续上传到那里——地址是在打包时写进 App 的,我们无法远程改变一个已经装好的版本。
需要如实说明的一点:和任何网络服务一样,服务器在接收请求时会看到你的 IP 地址,托管服务的访问日志中可能会短期保留它。我们不会把它和上传的内容关联起来使用。
8. 保留多久
共享记录会长期保留,因为研究口味变化本身就需要历史。由于其中不含任何身份信息,它不会随时间变成关于「你」的档案。
第 5 节那些诊断保留一年。它们的用处全在「哪个版本上出了什么」,一个版本退役之后就没有意义了。
9. 撤回与删除
删除账号:打开 App →「设置」→「账号与家庭」→「删除我的账号」。这会彻底删除你的账号和服务器上属于你的那份记录。你手机上的记录不受影响,一样都不会少。如果你的家庭里还有其他成员,共享的那份记录会保留——那也是他们的记录。如果你是最后一个成员,整个家庭的记录会一并删除。
删除账号不包括第 2 节那份匿名共享记录。(Zhuo 2026-09-04 的决定。)那一份是去掉了姓名、照片和自由文本之后用来改进推荐的,它的删除走第 2 节说的那条路。不同的是:如果你登录过,我们能自己找到它——第 4 节说的那条对应关系就是为此存在的,所以你不再需要自己把那串编号抄给我们,写信说一声就行。
退出登录:在同一个页面上。退出登录只是停止同步,不会删除服务器上的内容,也不会动你手机上的任何东西。
停止共享:打开 App →「设置」→「匿名共享」→ 关闭「共享〈她的名字〉的记录,也用上别的猫的」这个开关。立即生效,之后不再有任何数据上传,尚未发出的排队内容也会被丢弃。
删除已经共享的内容:在同一个页面上,开关打开时会显示一串数字,那是你的记录在服务器上唯一的标识。把它复制下来发到下面的邮箱,我们会删除对应的记录。这串数字只在开关打开时显示,所以打算要求删除的话,请在关掉共享之前先复制下来;已经关掉了也不要紧——把开关重新打开就会再显示同一串数字,它一直存在你的手机上,不会改变。
请理解为什么必须这样做:正因为服务器上没有任何能指向你的信息,我们无法凭姓名或邮箱找到「你的」那几行。那串数字是唯一的线索。如果你已经卸载了 App 或清空了数据,那串数字也随之消失,我们就无法再定位这些记录了——它们此时已是无法与任何人关联的匿名数据。
删除诊断记录:第 5 节那些是按设备编号存的,所以这一类反而好删。把邮件发到下面的邮箱说一声即可;如果你曾经在 App 里给我们发过消息或投过稿,那些内容带的是同一个编号,我们能对上。
10. 儿童
本 App 不面向 13 岁以下儿童,也不会有意收集儿童的任何信息。
11. 政策变更
如果将来收集的内容发生变化,我们会更新本页并修改顶部的日期。扩大收集范围时,会重新征求你的同意,而不是沿用旧的授权。
12. 联系方式
隐私相关问题或删除请求,请联系:pickycatapp@gmail.com