在 macOS 上打包为 .app 时,自定义二进制文件以低 DPI 运行

Custom binary runs at low DPI when packaged in .app on macOS

我创建了一个 SDL2 应用程序,该应用程序具有高 DPI 支持并在 运行 手动编译二进制文件时正确显示。

我创建了一个 .app 结构(Info.plistContents/... 等),其中包含已编译的二进制文件。该应用程序本身启动并运行良好,问题是尽管将 NSHighResolutionCapable 添加到我的 Info.plist,但 window 显示的 DPI 较低,这与在没有应用程序的情况下启动已编译二进制文件时的 DPI 形成对比结构体。 Get Info 菜单显示 Open in Low Resolution 选项已勾选并变灰,我没有触及此选项。

除非 macOS 应用程序包需要进一步的步骤,否则我可以确认二进制文件本身没有任何问题,因为它在手动 运行 时以高 DPI 运行。

下面是我的 Info.plist 的片段,我已经编辑了 为了可读性,一大块不相关的键。

[...]
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleVersion</key>
<string>1.0.0</string>
<key>NSHighResolutionCapable</key>
<true/>

在高 DPI 下 运行 我需要做哪些更改?

我被 TheNextman 引导到正确的方向,这是一个简单的问题,在我添加高 DPI 密钥之前缓存了 Info.plist 的先前版本。

为了更新缓存,我按照 here 的解释输入了命令 /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f [path to .app]