自动编辑SystemVersion.plist

时间:2014-09-04 03:36:51

标签: matlab applescript osx-yosemite osx-yosemite-beta

我目前正在使用OSX10.10,需要使用MATLAB;但是因为他们还没有更新应用程序以支持10.10,它将在发布时崩溃。

到目前为止,我一直在使用pico编辑SystemVersion.plist [1](将版本从10.10更改为10.9);这很有效,除了每次我需要打开MATLAB并在每次关闭MATLAB时重新编辑它时编辑文件真的很烦人。

我想要做的是当我启动脚本时,它会将SystemVersion.plist编辑为正确的版本,以便我可以运行MATLAB而不会崩溃;然后当MATLAB退出时,它会将版本从10.9重置为10.10。我有一些代码(可能写得不好;我之前从未使用过AppleScript);

tell application "System Events"
set ProcessList to name of every process
       if "MATLAB" is in ProcessList then
            tell application "System Events"
            tell property list file "/System/Library/CoreServices/SystemVersion.plist"
                tell contents
                    set value of property list item "ProductUserVisibleVersion" to "10.9"
                    set value of property list item "ProductVersion" to "10.9"
                end tell
            end tell
        end tell

        else

            tell application "System Events"
            tell property list file "/System/Library/CoreServices/SystemVersion.plist"
                 tell contents
                    set value of property list item "ProductUserVisibleVersion" to "10.10"
                        set value of property list item "ProductVersion" to "10.10"
                 end tell
               end tell
            end tell    
       end if
  end tell

[1] - Error trying to installing JDK8 U11 OSX 10.10 Yosemite

1 个答案:

答案 0 :(得分:1)

我有同样的方法,但归结为这个解决方案:(对于os x yosemite和matlab r2014a)

tell application "System Events"
    set plistFile to property list file "/System/Library/CoreServices/SystemVersion.plist"
    tell plistFile
        get property list item "ProductVersion"
        set value of property list item "ProductVersion" to "10.90"
    end tell
end tell

do shell script "export MATLAB_USE_USERWORK=1" & ";/Applications/MATLAB_R2014a.app/bin/matlab -desktop &> /dev/null &"

display dialog "..." buttons {"Ok"} with icon note giving up after 10

tell application "System Events"
    set plistFile to property list file "/System/Library/CoreServices/SystemVersion.plist"
    tell plistFile
        get property list item "ProductVersion"
        set value of property list item "ProductVersion" to "10.10"
    end tell
end tell

需要对话框。延迟(以秒为单位)不会出于任何原因(我首先使用applescript来解决matlab问题)。可能还有另一种解决方案,但这对我有用。

如果您使用带有视网膜显示的Mac,您可能需要安装java 7运行时环境并使用以下内容替换do shell脚本部分:


do shell script "export MATLAB_JAVA=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"" & "; export MATLAB_USE_USERWORK=1" & ";/Applications/MATLAB_R2014a.app/bin/matlab -desktop &> /dev/null &"

这些图标看起来仍然有些糟糕,但字体不再模糊。

我希望这可以帮助任何人在最近更新到优胜美地后面对这个问题。