사과 스크립트를 사용하여 설치된 Mac OSX 버전을 찾으십시오
-
20-08-2019 - |
문제
사과 스크립트를 사용하여 Mac에 설치되는 OSX 버전을 어떻게 찾을 수 있습니까? 앱을 프로그래밍 방식으로 설치하고 버전을 기반으로 다른 PKG 파일을 실행하고 싶습니다.
감사
해결책
나는 Mac에 있지 않으므로 더 나은 방법이있을 수 있지만, 첫 번째 접근 방식은 OS 버전을 쿼리하기 위해 Shell 명령을 실행하는 것입니다.
http://developer.apple.com/technotes/tn2002/tn2065.html#tntag2
http://developer.apple.com/documentation/darwin/reference/manpages/man1/sw_vers.1.html
이 참조를 바탕으로 다음과 같은 작업을 수행하고 싶을 것입니다.
set os_version to do shell script "sw_vers -productVersion"
다른 팁
내장 기능을 사용하여 AppleScript에서 OSX 버전을 얻는 방법은 다음과 같습니다.
set sysinfo to system info set osver to system version of sysinfo
OS X Mavericks에서 결과는 "10.9"입니다.
짧막 한 농담: set osver to system version of (system info)
OS 버전을 다음을 사용하여 디스플레이 문자열로 가져올 수 있습니다.
set _versionString to system version of (system info)
이것을 다른 버전과 비교하려면 사용하십시오. considering numeric strings
:
considering numeric strings
set _newEnough to _versionString ≥ "10.9"
end considering
그렇지 않으면 "10.4.11"보다 "10.4.9"보다 작거나 "10.10"과 같은 문제가 발생할 수 있습니다.
당신은 또한 사용할 수 있습니다 system attribute
. 이렇게하면 버전 번호를 정수로 얻을 수 있으므로 도트 분리 문자열 비교에 대해 걱정할 필요가 없습니다.
set _versionInteger to system attribute "sysv" -- 4240 == 0x1090 (Mac OS X 10.9)
set _isMavericksOrBetter to (system attribute "sysv") ≥ 4240 -- 0x1090
set _isMountainLionOrBetter to (system attribute "sysv") ≥ 4224 -- 0x1080
set _isLionOrBetter to (system attribute "sysv") ≥ 4208 -- 0x1070
당신은 또한 사용할 수 있습니다 system attribute
문자열을 구문 분석하지 않고도 개별 버전 구성 요소를 얻으려면 다음과 같습니다.
set _major to system attribute "sys1" -- 10
set _minor to system attribute "sys2" -- 9
set _bugFix to system attribute "sys3" -- 0
Finder 앱에서도 버전을 얻을 수 있습니다.
tell application "Finder"
set os_version to version
end tell
display dialog os_version
내 컴퓨터에서 이것은 "10.5.8"을 표시합니다.
AppleScript에 너무 익숙하지는 않지만 Afaik은 SW_VERS 명령을 사용하여 쉘에서 버전에 대한 정보를 얻을 수 있습니다. 예를 들어:
Macintosh:~ udekel$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.5.6
BuildVersion: 9G55
AppleScript에서 그것을 읽고 구문 분석 할 수 있다면 솔루션 일 수 있지만 더 우아한 것이 있어야한다고 확신합니다.
이 라인을 따라 무언가를 시도하십시오.
tell application "Terminal"
activate
set theVersion to do script with command "sw_vers -productVersion"
end tell
편집 : 이것은 터미널을 열고 아마도 당신이 원하는 행동이 아닐 것임을 지적했습니다.
이것은 나를 위해 효과가있었습니다
set OSVersion to system version (system info)
if OSVersion as string < "10.9" or OSVersion as string > "10.9.5" then
- Add code to execute if condition met
else
- Add code to execute if condition not met
end if