2017-06-22 66 views
0

我正在构建MacOS应用程序包,并使用Info.plist中的LSMinimumSystemVersion密钥指定了最低操作系统版本(10.10)。应用程序本身工作正常,只要我们在OS 10.12上运行它。但是,如果我们试图在10.11发布它,我们会得到一个错误:“你不能在这个版本的OS X上使用这个版本的应用程序。你有OS X 10.11.6。应用程序需要OS X 10.12或更高版本“。需要不同操作系统版本的MacOS vs Info.plist

我已经调查了一切,我可以找到与操作系统版本检查有关,我无法弄清楚发生了什么事情。即使我完全忽略了LSMinimumSystemVersion条目,我们也会得到相同的结果。我们已经在运行10.11的多个Mac上进行了测试,并且一直失败,所以它不是一些特定于计算机的错误。实际的二进制文件(埋在应用程序包中的可执行文件)在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> 
+1

我想你会设置“部署目标”到较低的版本,你想能够运行它... –

+0

我说我wasn不使用Xcode。 –

+0

这有什么不同?我并不是暗示你必须...... –

回答

2

你编译/与-mmacosx-version-min链接?添加-mmacosx-version-min=10.10到你的编译器/链接器选项,如果你还不是

+0

感谢您!这解决了它。我从来没有听说过这个选择,也没有Google;它似乎没有记录在任何地方。你究竟发现了什么? –

+0

啊哈,我发现为什么我在搜索时找不到它。 TIL Google不喜欢以减号开头的搜索字符串。 –

+0

嗯,我不明白为什么这有助于。有人可以向我解释吗? OP声明:“应用程序捆绑包中的可执行文件在10.11上运行正常,它只是失败的应用程序捆绑包”。那么如何改变编译器标志(大概是将这个可执行文件嵌入到应用程序包中)会影响应用程序包本身的成功? 为什么执行失败没有标志?为什么这个包会成功?谢谢! – NHDaly

相关问题