我正在开发一个跨平台的游戏,它将通过Steam发布和分发,并且在Mac版本上遇到问题.一切都是用C++编写的,并使用由CMake生成的项目文件在El Capitan上使用Xcode构建,包含一些小的修改.构建完成后,我使用自己的构建脚本将.app包放在一起,生成目录结构,添加图标文件和二进制文件,以及我自己编写的Info.plist文件.我可以找到哪些文件是必要的.
问题在于向后兼容性.当我尝试在运行Yosemite的Mac上启动游戏.app时,我收到以下错误消息:
您不能在此版本的OS X中使用此版本的应用程序"[我的应用程序名称]".您有OS X 10.10.5.该应用程序需要OS X 10.11或更高版本.
问题是,在Xcode中我将构建目标指定为OS X 10.7,所以我很困惑为什么会发生这种错误.我甚至可以进入Finder中的包,导航到实际的游戏二进制文件,并运行它没有问题.当我双击.app文件时,它只会失败,并显示此错误消息(其图标显示带有斜杠的圆圈,表示我可能在Info.plists中或使用包配置时出错了).在El Capitan上运行时,事情很有效.
我也尝试过LSMinimumSystemVersion适当的设置,但这并没有解决问题.
这是我的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>CFBundleExecutable</key>
<string>Contents/MacOS/[binary name]</string>
<key>CFBundleDisplayName</key>
<string>[game title]</string>
<key>CFBundleIconFile</key>
<string>[icon file]</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
我想象Info.plist中缺少一些东西,但Apple的所需密钥文档在找出可能的内容方面没有帮助.
如果您需要更多信息来解决这个问题,请告诉我,非常感谢您的帮助!