开发 macOS app 真的是一种心智负担

deplives 2026-09-15 22:54 1

前几个月开发了个 macOS App 使用的 swift 6.3


然后某一天改了一些代码后发现,发现 debug 可以构建,release 构建会失败


变现为进行 release 构建的时候编译器直接崩溃。然后给我一阵排查,ai 也一阵排查,最后 codex 找到了 Swift Issue #90385


嘿还真是和我的情况一模一样,原来还真是编译器 bug


然后今天 升级了 macOS 27 xcode 也升级到了 27 swift 升级到了 6.4 然后就想起了上面这个问题,就给改回去了,然后重新编译,没问题了。然后,正当我准备提交代码,就又发现了不一样的地方


这个是 macOS26 上编译后的 app 右键菜单



这个是 macOS27 上编译后的 app 右键菜单



我就好奇了,我的图标呢?我那么大的图标呢?这部分代码一行也没改啊,然后问了一下 AI


AI 回复:代码里其实已经配置图标。查到原因是 macOS 27 默认会隐藏菜单中的符号图像;我会使用系统新增的显示偏好让它们显示出来,并用版本判断保留旧系统的现有行为。


然后甩了我一个文档 macos-27-release-notes


我真的无语了,然后又加了一段屎山一样的 if #available(macOS 27.0, *)


item.image = NSImage(systemSymbolName: symbolName, accessibilityDescription: nil)
if #available(macOS 27.0, *) {
item.preferredImageVisibility = .visible
}

我现在真的很好奇,swift 的开发人员自己用不用 swift

最新回复 (5)
  • 20015jjw 09-16 02:56
    1
    很正常的 apple api 的设计这么多年了还是这样
  • daxigua1te 09-16 08:51
    2
    版本判断这个太正常了,iOS app 开发的时候经常能看到一堆,特别是有历史沉淀的项目。
  • noahhhh 09-16 10:39
    3
    巧了我也遇到了
  • pengzh1 09-16 11:05
    4
    太真实了,大版本一升去年调好的今年又得重来
  • neiltroyer849 09-16 16:45
    5
    退回 26.6 的 xcode 可行吗?
* 帖子来源V2EX
返回