周一别点鱼,周五别发版
来源:dev.to — 2026-10-15
📋 概述
作者借 Anthony Bourdain 1999 年那篇「周一别吃鱼」——周末进的货周一还在上桌——的警告,把「永远不要在周五发版」这条开发者的同类规则重新讲一遍。他们多年无视这条建议,理由是避开客户自己的发布周,代价是无数个被占用的周末。这一周问题尤其多:可选的 Xcode 27 路径、推送与窗口都有回归,有些问题互相重叠,修好一个症状会让底层问题在别处重新冒出来。其中最值得记录的一次失败是:用到特定加密 API 的应用能编译、能链接、能运行,却在提交 App Store Connect 时因为二进制引进了非公开符号而被拒——SDK 的库导出了这些符号,链接器能解析,但公开头文件里没有声明,链接成功并不等于用了公开 API。此外构建器用一个字符串替换启用特性时误匹配了更长名字的开头,让通用加密把 GCM 路径一起打开了。
🔑 核心要点
- 借来的类比:Bourdain 警告的是菜单背后的供应链,开发者版本是「出问题你就替所有人安排好了周末」。
- 被拒样本:_CCCryptorGCMAddAAD 等符号库里有导出、链接器能解析,但公开头文件没有声明。
- 测试盲区:调用藏在可选特性门后,样例应用默认不开,跑更多次同样的样例也不会让这个分支出现。
- 构建器的坑:对 CN1_INCLUDE_CRYPTO 的纯字符串替换同时匹配了 CN1_INCLUDE_CRYPTO_GCM 的开头,误开了 GCM 路径。
- 新门同时从源码与二进制两侧检查「导入了没有公开声明的 SDK 符号」这一类更广的错误。
💡 金句
一次成功的链接并不能证明这些符号是可以提交的公开 API。
👍 0
👎 0
← 返回 dev.to 首页