Lapcat Software
Jeff Johnson(Lapcat Software),专业 Mac 与 iOS 开发者,知名作品 StopTheMadness 浏览器扩展帮助用户保护隐私并重获 Web 控制权。
独立开发者的十年:运气、破产与iOS 15的转机
Jeff Johnson 2016年辞职做独立开发者,前五年几乎破产,2021年苹果发布iOS 15支持Safari扩展后事业才真正起步。他的StopTheMadness应用贡献了超过93%的收入,但自认是"一锤子买卖"。他拒绝给职业建议,坦言成功很大程度上靠运气,并提到中年、无CS学位、只会原生Mac开发让他在就业市场毫无竞争力。
为什么 Mail 应用发送非 iCloud 邮件时仍要连接 iCloud?
Mac 用户发现即使完全禁用 iCloud Mail 功能,发送普通邮件时系统仍会连接 iCloud 服务器。cloudd 进程尝试访问 CloudKit 的查询和保存接口,因证书固定无法解密分析。作者已创建防火墙规则阻止该连接。
苹果应用商店敌意的评分系统
App Store 用户评分系统沿用了 iTunes 音乐商店的匿名众包模式,与软件产品的专业需求严重不匹配。独立开发者因无法获得真实评价而面临生存风险,苹果却长期拒绝改进这一低效机制。
Safari 侧边栏静默加载所有书签
Safari 在打开书签侧边栏时,后台静默加载所有书签网页以生成预览元数据。作者通过 Little Snitch 发现这一行为,指出这违背了“浏览器不应在未经用户明确同意下加载网站”的原则。这对注重隐私和网络安全的技术用户是一个重要的发现,建议检查 Safari 设置或避免使用书签侧边栏功能。
Safari 的“智能”防追踪:设计上的数据丢失
Safari 的 ITP 策略会在 30 天内无交互后删除网站数据,导致用户意外退出登录,甚至触发二次验证。作者通过 SQLite 数据库证实了 Mastodon 实例被误判为追踪域名并清除数据。这揭示了 Apple 隐私保护机制在工程实现上的缺陷,长期低频使用的网站用户深受其害。
Reddit RSS订阅源近期遭遇速率限制及解决方案
博主Jeff Johnson详细记录了Reddit近期对RSS订阅源实施严格速率限制(从每分钟100次降至每分钟1次)的现象,并提供了通过添加user和feed参数绕过限制的具体解决方案。文章结合了官方关于打击爬虫的声明背景,反映了开发者对RSS生态被破坏的担忧及应对经验。
Safari技术预览版“自毁式”的macOS支持策略
作者Jeff Johnson指出Safari Technology Preview仅支持最新两个macOS版本的政策不合理,导致老版本用户无法继续测试并反馈Bug。他分享了自己作为活跃Bug提交者被“抛弃”的经历,批评Apple此举减少了潜在的高质量测试者,并质疑为何不发布iOS版Preview。
我在 OS 27 中发现的 URL/NSURL Bug 被修复了
作者反馈了 macOS/iOS 中 NSURL 重复编码字符的 Bug,苹果不仅修复了该问题,还在发布说明中明确引用了作者的反馈编号。这是一篇关于开发者与苹果官方互动的正面案例,具有真实的一手经验和社区共鸣。
Safari 搜索引擎扩展的工作原理与隐私隐患
作者通过实际测试发现,Safari 由于缺乏原生设置自定义搜索引擎的 API,其扩展(如 Kagi)只能利用 onBeforeNavigate 机制进行重定向。这导致用户在使用非默认搜索引擎时,浏览器会先向默认搜索引擎(如 Google)发送请求,造成隐私泄露。文章提供了使用 Little Snitch 拦截默认搜索引擎连接作为解决方案,揭示了 Safari 扩展机制的一个隐蔽缺陷。
被误导的 JavaScript API:源私有文件系统 (OPFS)
作者深入批评了浏览器 Origin Private File System (OPFS) API,指出其过度优先开发者利益而忽视用户隐私。文章揭示了OPFS允许网站在用户磁盘秘密写入大量数据(如77GB),并存在侧信道数据泄露风险。此外,OPFS被用于检测用户是否使用隐私浏览模式,作者通过自己的Safari扩展案例说明了这一技术博弈。
App Store审核员数量的神话
作者借用《人月神话》概念,反驳“增加审核员数量能解决App Store审核质量”的观点。文章引用Epic诉讼证词指出审核员缺乏技术背景,且人均审核时间极短,导致大量垃圾应用漏网。作者认为App Store本质是“代销”而非“策展”,Apple为了维持服务收入和控制权,并不真正追求高质量策展,增加人手只会增加成本而无实质回报。
Mac应用商店:名字里的猫腻
作者发现Mac App Store中大量名为“App for YouTube”的重复应用,仅通过特殊符号区分。文章指出这些应用隐私政策链接失效、使用URL缩短器,并批评Apple的审核机制和“策展”失败,认为这是App Store生态混乱和骗局的体现。
Safari 防跨站跟踪功能导致 Cloudflare 验证失效
作者详细测试并证实 Safari 默认的防跨站跟踪功能会导致 Cloudflare 人机验证失效,需额外点击且部分场景下完全无法通过。作者已向 WebKit 提交 Bug 报告,并发现 Safari 扩展也会引发更严重的验证死锁问题,目前扩展 Bug 已修复但核心问题仍未解决。
App Store审核观察之二:诈骗者卷土重来
作者Jeff Johnson跟进此前曝光的iOS App Store诈骗应用事件,发现同一团伙以不同马甲重新上架诈骗软件,并揭露了更多利用恐吓营销的恶意应用。文章通过对比域名、错别字和开发者信息,有力证明了这些应用的关联,并质疑苹果应用商店审核机制的有效性。
浏览器扩展API setUninstallURL 侵犯用户隐私
作者通过亲身经历发现Chrome扩展的setUninstallURL API会在卸载时静默访问开发者指定URL,导致用户隐私泄露。文章对比了Chrome、Firefox和Safari在该功能上的隐私保护差异,指出Chrome允许在禁用后仍发送请求,且无法避免,已提交Chromium Bug报告。
苹果应用商店开发者体验改进建议清单
一位拥有9年经验的应用开发者列出32条针对App Store的具体改进建议,涵盖审核流程、元数据管理、搜索算法、退款权限及开发者支持等方面,指出苹果在收取高额佣金的同时忽视了开发者服务体验。
App Store Connect 数据分析中缺失平台版本号的 Bug
独立开发者 Jeff Johnson 发现 App Store Connect 后台在按平台版本统计更新数据时,部分活跃版本号(如 iOS 16.7, macOS 13.7 等)完全缺失,导致数据总和与按设备统计的结果不一致。作者与 Apple Developer Support 沟通月余无果,客服机械回复且内部信息断层,文章公开寻求其他开发者验证此 Bug 并吐槽苹果支持系统的官僚低效。
Apple随机关闭Bug报告,除非你验证问题仍未修复
开发者Jeff Johnson吐槽Apple Feedback Assistant机制不合理,称其无视开发者提交的Bug报告,甚至威胁若不在两周内验证则关闭报告,即便Bug并未修复。文章指出Apple可能为了内部指标人为降低未解决Bug数量,并分享了与Apple工程师沟通的尴尬经历,极具Hacker News风格的工程吐槽和争议性。