现在就是这样:当我拿到应用程序时,将它放在桌面上,压缩它,然后将“低分辨率打开”复选框设置为true,删除应用程序并解压缩原始应用程序复选框保持选中状态.
因此,无论OS X将属性“以低分辨率打开”存储在哪里,它都不与文件一起存储.这意味着在将应用程序分发到其他Retina Mac系统时,它将再次被破坏,直到手动检查每个系统上的复选框.
我发现Info.plist
got a NSHighResolutionCapable
property和我添加了Booleanto我的应用程序的Info.plist并将其设置为false但无效.这似乎不等同于“低分辨率开放”选项.
链接文档说:如果默认情况下选中“打开低分辨率”复选框,您可以通过以下方式更改默认值:将InfoHp中的NSHighResolutionCapable属性设置为YES,反之则不起作用…我是什么我想是一个开箱即用的解决方案.我想避免客户需要自己配置.它应该在解压缩应用程序时设置.
所以有两个问题:
a)是否可以配置与文件一起检查的“低分辨率打开”复选框等 – 例如在Info.plist中?
b)OS X在哪里存储我通过Finder的信息屏幕进行的“低分辨率打开”复选框的选择?
编辑12月7日(添加plist详细信息):
如plist编辑器所示:
http://oldendorf.net/stackoverflow/as_seen_in_plist_editor.png
正如小牛队的现代Xcode中所见:
http://oldendorf.net/stackoverflow/as_seen_in_modern_xcode.png
唯一的区别是显示的名称. Xcode将其称为“高分辨率能力”,而在文件中它仍然是“NSHighResolutionCapable”
这是我们关心的文件信息对话框的一部分:
解决方法
您可以搜索以下命令的输出以获取应用程序的包ID,然后查看是否存在与高分辨率功能明显相关的任何内容:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -dump
如果有,那么,在您修改应用程序的Info.plist之后,可能会这样做:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /path/to/the/modified.app
如果没有,那么也许更强大:
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -seed