Mac App Store 설치 및 업그레이드를 자동화 할 수 있습니까?


28

Mac App Store에서 앱 설치 또는 업그레이드를 스크립트하려면 어떻게해야합니까? 커맨드 라인 도구를 선호하지만 AppleScript 또는 다른 API로 충분합니다.

관련 퍼즐 조각 :

  • installer: 특히 -store패키지 개발자를위한 App Store 설치를 시뮬레이션하는 데 사용되는 플래그에 유의하십시오 .
  • systemupdate: Apple 앱에 대한 업데이트 처리 가능, 플래그 -i설치 및 -a사용 가능한 모든 업데이트 설치 지시

앱을 하나의 Apple ID로 구입했거나 각 컴퓨터의 개별 Apple ID를 추적하고 있습니까?
bmike

@bmike : 공유 된 Apple ID 또는 각 컴퓨터마다 고유 한 ID를 사용하는 것이 편합니다.
Joseph Holsten

MacWorld가 Mountain Lion이 소프트웨어 업데이트 서비스를 더 이상 사용하지 않으며 모든 것이 Mac App Store를 통해 이루어지고 있다고 가정하면,이를 관리하는 것은 작업 그룹 및 기업에게 어려운 일입니다. Apple Configurator가 계정 관리를 돕기 위해 확장되고 Remote Desktop이 재부팅이 업데이트를 적용 할 때까지 사용자를 방해하지 않고 업데이트를 시작할 수 있는지 궁금합니다.
bmike

답변:


13

대부분의 사람들은 자동 업데이트를 켜고 Apple이 모든 업데이트를 관리하도록 할 수 있습니다. 그렇게 할 수없는 이유가 있다면 App Store 설치 및 업데이트를 자동화하는 명령 줄 도구가 있습니다.

명령 줄에서 Mac App Store를 복제하는 주목할만한 오픈 소스 도구 중 하나는 mas입니다 .

설치하기 위해서:

brew install mas 

들어 오면 다음과 같이 사용 가능한 모든 앱을 업데이트 할 수 있습니다.

mas upgrade

Apple ID로 타사 소프트웨어를 신뢰하지 않으려면 UI를 자동화하고 키 체인을 사용하여 계정 이름과 비밀번호를 저장할 수 있습니다.

비 App Store 보안 패치 및 업데이트를위한 Apple 솔루션 softwareupdate은 명령 줄에서 도구 를 실행하여 사용자 개입없이 또는 App Store UI를 거치지 않고 Apple이 설치하려는 모든 소프트웨어를 업데이트하는 것입니다.

현재 Lion and Mountain Lion에서-이는 Mac이 App Store 외부에 설치된 시스템 업데이트 및 소프트웨어 다운로드를 캐싱하는 로컬 OS X 서버에 충돌 함을 의미합니다. 로컬 소프트웨어 업데이트 서버가없는 경우 Apple에서 직접 파일을 다운로드합니다.

Mountain Lion 10.8.2 이하의 경우 모든 것이 여전히 App Store를 통해 제공되므로 OS X 업데이트와 같은 Apple 소프트웨어는이 도구를 사용하여 업데이트 및 비 App Store 업데이트에만 완벽하게 스크립팅 할 수 있습니다.

스크립팅 할 수없는 (아직 또는 아마도) Xcode 및 Pages 및 타사 응용 프로그램과 같이 App Store에서 설치되는 응용 프로그램입니다. 즉, App Store 앱을 열고 사용자 인터페이스 화면에서 암호를 입력하지 않고 모든 소프트웨어를 업데이트하는 도구를 하나만 가질 수는 없습니다.

앱의 첫 번째 복사본을 다운로드하는 데 사용 된 Apple ID가 앱을 실행할 모든 Mac에서 사용되는 한 앱을 한 번 다운로드 한 다음 여러 Mac에 앱을 복사하면됩니다.

컴퓨터 한 대당 20 대의 컴퓨터 실습을 위해 각 앱의 사본 하나를 구입하여 각 좌석에 대한 라이센스를 얻지 만 한 번의 업데이트 다운로드가 완료되면 Apple Remote Desktop 과 같은 도구를 하나의 파일을 모든 Mac에 배포합니다. 또는 Caspar 또는 집에서 만든 도구와 같 scp거나 rsync업데이트 된 버전의 앱을 실험실의 모든 Mac으로 이동하는 데 사용됩니다.

각 컴퓨터의 개별 Apple ID 경로를 사용하는 경우 모든 암호를 알고 AppleScript가 할 수있는 곳에서 UI 스크립팅을 수행하지 않는 한 각 계정의 암호를 요청하기 때문에 App 업데이트 설치를 스크립팅 할 수 없습니다 프로그래밍 방식으로 올바른 사용자 이름과 비밀번호를 입력 한 다음 버튼을 클릭하여 각 컴퓨터의 업데이트에 대한 다운로드 프로세스를 시작하십시오. 앱 스토어 앱에 코드 서명 방식을 사용하면 패키지를 무효화하거나 전체 앱 스토어 프로세스를 리버스 엔지니어링 / 탈옥하고 앱 설치 프로그램이 작동하게하는 일반적인 흐름을 회피하지 않고 업데이트를 슬라이드하기가 어려워집니다.


6

이것은 오픈 소스 mas명령 행 유틸리티를 사용하여 가능 합니다.

마스 클리

Mac App Store를위한 간단한 명령 줄 인터페이스입니다. 스크립팅 및 자동화를 위해 설계되었습니다.

공개 : 나는 mas


해당 도구에 감사하고 여기에 게시하십시오. 오랜 시간이 지났고 Apple이 시간이 지나도 도구가 계속 작동하도록 API / SDK를 안정적으로 유지하기를 바랍니다.
bmike

3

새싹 랩솔로이스트 를 확인하고 싶을 수도 있습니다 . dmg_package제공자를 사용하여 URI에서 OSX 패키지를 설치할 수 있습니다 . 몇 가지 예를 보려면 새싹요리법 중 일부를 확인하십시오 .

보안 업데이트를 자동 업데이트하려면 pivotal_workstation :: osx_updates 레시피를 사용하십시오 . ( 이 사용합니다softwareupdate )

들어 브루 애플리케이션의 brew제공자는이 upgrade조치를.

내가 아는 한, App Store 앱을 자동 업데이트하는 공급자는 없습니다. 그러나 execute또는 bash제공자 블록 내에서 일부 앱의 내장 자동 업데이트 기능을 사용할 수 있습니다 . 요리사 레시피 내에서 AppleScript를 사용하여 App Store 앱을 자동화 할 수도 있습니다. 인라인 AppleScript를 사용하는 몇 가지 예는 sprout-osx-settings :: function_keys 레시피를 살펴보십시오 . (다른 몇 가지 예 : sprout-osx-settings :: remove_expose_keyboard_shortcuts , sprout-osx-settings :: set_finder_show_user_home_in_sidebar )


1

AppleScript 유형 솔루션은 확실하지 않지만 많은 OS X 시스템을 관리하기위한 도구가 있습니다.

내가 가장 익숙한 것은 radmind입니다 (이는 UMich에서 실험실 관리를 위해 시작했습니다 (이전 사이트) ).

radmind는 표준 OS 템플릿을 여러 머신에 배포하고 최신 상태로 유지하는 데 실제로 적합하므로 소규모 사이트의 경우 약간의 작업이 필요할 수 있습니다. 기본 워크 플로우는 다음과 같습니다.

  • 깨끗한 "빌드 머신"을 만들고 radmind 및 모든 표준 소프트웨어를 설치하십시오.
  • 해당 빌드 머신에 대한 radmind 대화 내용을 작성하십시오.
  • 클라이언트 시스템에 radmind를 설치하고 대화 내용을 당겨 / 적용하여 설치하십시오.
  • 업데이트의 경우 빌드 서버를 업데이트하고 업데이트 / 패치 대화 내용을 작성한 다음 클라이언트에 적용하십시오.

… 엄격한 의미에서 설치를 자동화하지는 않지만 대화식 비트를 한 번만 수행 한 다음 업데이트 된 OS를 클라이언트에 배포하면됩니다.

분명히 이것은 모든 곳에 표준 소프트웨어 세트를 설치할 수있는 경우에 가장 잘 작동합니다.-클라이언트가 모두 특별하고 독특하다면 이것은 훌륭한 솔루션이 아닐 수 있습니다.


1
radmind와 같은 시스템 자동화 도구 인 chef 내에서이 프로세스를 자동화하려고합니다. 문제는 이러한 도구가 mac 앱 스토어에서 앱을 설치할 수있는 방법이 없다는 것입니다.
Joseph Holsten

1
@JosephHolsten 절차 radmind는 "템플릿 시스템에 응용 프로그램을 설치하고 대화 내용을 업데이트합니다"입니다. (수동 설치이지만 1000 대신 수동 설치 1 개)
voretaq7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.