耳记 EarMemo › 它往网络上发什么
耳记会把我的数据发出去吗?这是它全部的网络路径
三条,而且没有一条会带走你的书库。可选的 Wi-Fi 传输会在手机上开一个小的网页服务,只在你自己的网络里;买 Pro、恢复购买和评分弹窗走 Apple StoreKit,那是苹果的代码在跟苹果说话;设置里的给耳记评分只是把一个网址交给 iOS,由 App Store 去打开。导入、播放、笔记、统计、Markdown 导出,这三条路一条都不用。
耳记没有自己的服务器,所以你的音频、笔记和收听记录根本没有一个可发往的地址。下面是完整的清单,以及你不必相信我、可以自己核查的办法。
App 的全部网络路径,一共三条
一个把书库留在手机上的播放器,仍然有几件事要碰网络:把文件弄进来、收一笔钱、打开一个链接。下面是每一条、它什么时候运行、流量最终去哪。
| 路径 | 什么时候运行 | 流量去哪 |
|---|---|---|
| Wi-Fi 传输(可选,不打开就不运行) | 只在 Wi-Fi 传输页开着的时候;离开这一页服务就停。 | 手机上一个普通的 HTTP 监听,端口 8080–8090,通过 Bonjour 以 _earmemo-transfer._tcp 广播。电脑浏览器到手机,在你自己的网络里;它做的任何事都不越过你的路由器。 |
| 买 Pro、恢复购买、评分弹窗 | 你点的时候,或者 iOS 决定弹评分的时候。 | Apple StoreKit——苹果的框架在跟苹果说话。App 看不到卡号,你的任何身份信息也不会到开发者这里。 |
| 设置里的「给耳记评分」 | 只在你点那一下。 | 它把一个 apps.apple.com 网址交给 iOS,请求是 App Store 发的,不是耳记发的。 |
| 其余一切:导入、播放、章节、变速、睡眠定时、书签、笔记、统计、Markdown 导出 | 你用 App 的时候一直可用。 | 不去任何地方。这些只是在设备上读写文件。 |
App 里根本没有的东西
- 没有账号系统,所以没有登录,也没有任何东西能把你认出来。
- 没有统计、没有埋点、没有崩溃上报。
- 没有远端配置、没有启动时去拉的功能开关、没有 A/B 分流。
- 没有广告,也没有归因 SDK。
- 没有任何第三方 SDK。工程里没有 CocoaPods、Carthage 或 Swift Package 的依赖文件,App 链接的每一个框架都是苹果自己的——AVFoundation、SwiftUI、StoreKit、WidgetKit、AppIntents、Network 等等。
- 没有 WebView,所以 App 内不可能加载一个远端页面。
在 App 之外自己核查的四种办法
一个你没法核查的隐私声明,只是措辞好听一点的承诺。下面按费事程度排,第一种只需要你的手机。
- 打开「App 隐私报告」。设置 → 隐私与安全性 → App 隐私报告。打开之后 iOS 会按 App 记录它联系过哪些域名。正常用耳记几天,再看它那一条:耳记真联系过的域名会出现在那里。
- 看你自己的 DNS 记录。如果你有 Pi-hole、NextDNS 或者会记录查询的路由器,一边导入文件、播放、记笔记、导出,一边看着它。域名查询是一个 App 联系服务器之前的第一步,很难瞒过你自己的解析器。
- 给设备挂一个代理。指向电脑上的 Proxyman、Charles 或 mitmproxy,然后把 App 全部功能跑一遍。唯一会看到流量的地方是内购,而那是苹果的:StoreKit 跑在 App 的进程之外。
- 从第一次启动就开飞行模式。装好之后先开飞行模式,再第一次打开 App:从「文件」导入、播放、记笔记、看统计。依赖服务器的 App 往往会在首次启动卡住或者不停提示。这一条在离线播放那一页讲得更细。
还有两份证据在苹果那边,不在我这边。耳记的 App Store 隐私标签写的是未收集数据;App 内的隐私清单声明追踪为关闭,追踪域名列表是空的,收集的数据类型列表也是空的。这两样都是开发者向苹果作出的声明、苹果会追责,跟网站上的一句话是不同性质的证据。
在我这边跑的那个检查
这一条你跑不了,因为你手上没有源码。但它正是上面那张清单停在三条的原因:这个工程自己的规矩是——写任何联网代码之前,下面这个搜索必须是空的,而这条规矩就写在我据以开发的说明里。
$ grep -rn "URLSession\|URLRequest\|dataTask" --include="*.swift" \
Sources ShareExtension SleepTimerWidget Shared
$ # 无匹配 —— 2026-10-21
URLSession 是这类 App 自己发出请求的那条路,而工程里一处都没有。唯一的一处 import Network 是 Wi-Fi 传输服务;App 唯一会打开的对外网址是它自己的 App Store 页面——另外三处把网址交给 iOS 的地方,打开的都是 iOS 的「设置」。
Wi-Fi 传输服务到底是什么,包括不太舒服的那部分
它是手机上一个小的 HTTP 监听,绑在 8080 到 8090 之间的一个端口上,通过 Bonjour 以 _earmemo-transfer._tcp 广播,好让电脑不用你手敲地址就能找到它。它在你打开 Wi-Fi 传输页时启动,离开这一页就停。它运行期间,同一个网络里任何人打开那个地址都能看到文件列表、也能上传——页面里那个每次启动生成的 token,防的是你浏览器里某个乱来的网页去调它的接口,防不住一个正常打开页面的、和你同网络的人。所以:在你自己控制的网络里用,用完就离开这一页。具体步骤见不用 iTunes 传音频那一页。
为什么这一页是列清单,不是给承诺
一句斩钉截铁的否认是更好的宣传语、更差的声明:上面那三条路确实存在,所以一句把所有网络活动都否认掉的话,就是假的。这个网站为此专门有一道构建检查——一张「绝对化网络声明」的词表,命中就让构建失败,其中正好包括这一页最容易想用的那几句。剩下能写的,就是一份你可以自己去核的清单;它比一个你无法核查的承诺值钱。
什么情况下不该选耳记
- 你想读源码。耳记不开源。上面所有办法都是在 App 之外核查的——隐私报告、你的 DNS 记录、一个代理——但你没法审计代码。如果这是你的底线,BookPlayer 是开源的,是个合理的答案。
- 你希望内购在没有网络时也能完成。买 Pro 和恢复购买需要联网,因为 StoreKit 需要。你已经拥有的功能,没有网络照样用。
- 你想让书库出现在每台设备上。没有同步,因为没有可供同步的服务器。如果你开着 iCloud 备份,数据会跟着你自己的设备备份走。
- 你想在 App 里订阅播客。拉订阅源必须走网络。耳记播的是你已经下载好的文件。
常见问题
耳记会上传我的音频或笔记吗?
不会。音频文件、笔记、书签、播放进度和收听统计只写在设备上。开发者这边没有服务器来接收它们。
耳记有哪几条网络路径?
三条:可选的局域网 Wi-Fi 传输、Apple StoreKit 的内购与恢复购买、以及你点「给耳记评分」时把一个 App Store 网址交给 iOS。导入、播放、笔记、统计和导出都不用这三条。
为什么 iOS 会向耳记申请本地网络权限?
只有 Wi-Fi 传输需要它,所以这个权限是在你第一次打开那一页时才申请,不是启动就申请。拒绝它,App 的其余部分不受影响。
我怎么自己看 App 联系了什么?
打开「设置 → 隐私与安全性 → App 隐私报告」,正常用几天;或者看你自己的 DNS 查询记录;或者给设备挂上 Proxyman、Charles、mitmproxy 这类代理。
App 里有第三方 SDK 吗?
没有。工程里没有 CocoaPods、Carthage 或 Swift Package Manager 的依赖文件,App 链接的每一个框架都是苹果自己的。
earmemo.app 这个网站会追踪访客吗?
网站没有加载任何统计脚本,也不设 cookie。它唯一的脚本是在你从 ChatGPT 过来时替换 App Store 的活动标记,它不发送任何事件,也不存你的任何信息。页面由 Cloudflare 托管,Cloudflare 会像任何主机一样看到这次请求。