MacOS 需要不同的 OS 版本与 Info.plist

MacOS requiring different OS version vs Info.plist

我正在构建一个 MacOS 应用程序包,并且我使用 Info.plist 中的 LSMinimumSystemVersion 键指定了最低 OS 版本 (10.10) .只要我们在 OS 10.12 上 运行 它,该应用程序本身就可以正常工作。但是如果我们尝试在 10.11 上启动它,我们会得到一个错误:"You can't use this version of the application with this version of OS X. You have OS X 10.11.6. The application requires OS X 10.12 or later."

我已经调查了我能找到的与 OS 版本检查相关的所有内容,但我无法弄清楚发生了什么。即使我完全省略 LSMinimumSystemVersion 条目,我们也会得到相同的结果。我们已经在多台 Mac 运行ning 10.11 上进行了测试,它一直失败,所以这不是一些特定于机器的错误。实际的二进制文件(隐藏在应用程序包中的可执行文件)运行在 10.11 上没问题,只是应用程序包失败了。

我正在使用 makefile 构建应用程序,而不是 Xcode(由于太长的原因无法进入此处)。也许我需要添加一些额外的步骤?

下面附上 Info.plist(略有删减):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>English</string>
    <key>CFBundleExecutable</key>
    <string>*********</string>
    <key>CFBundleGetInfoString</key>
    <string>***************************</string>
    <key>CFBundleIconFile</key>
    <string>*******.icns</string>
    <key>CFBundleIdentifier</key>
    <string>*********************</string>
    <key>CFBundleName</key>
    <string>***************************</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>**.**.**</string>
    <key>CFBundleVersion</key>
    <string>**.**.**.**</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.10.0</string>
    <key>NSHumanReadableCopyright</key>
    <string>**********************</string>
</dict>
</plist>

你 compiling/linking 和 -mmacosx-version-min 在一起吗?如果您还没有

,请将 -mmacosx-version-min=10.10 添加到您的 compiler/linker 选项