Mac App 설치 시 스크립트 실행

Mac App 설치 시 스크립트 실행

2022-10-06 last update

4 minutes reading MacOSX macos Mac 코코아
Mac App의 개발로 인스톨러(~.pkg라고 녀석)를 만들었는데, pkgbuild 그리고 인스톨 전후에 쉘 스크립트를 꽂을 수 있는 것 같아서 시험해 보았다.

주의



개발 사정으로 오래된 버전을 사용하고 있습니다.
- Xcode 6.1
- MacOS SDK 10.7

절차



1. 스크립트 파일 만들기


  • preinstall → 설치 전에 실행할 쉘 스크립트
  • postinstall → 설치 후 실행되는 쉘 스크립트

  • 이번은 이런 느낌의 폴더 구성에 (프로젝트명을 Hoge로 한다)
    ├ Hoge.xcodeproj
    ├ Hoge
    └ InstallScripts
      ├ preinstall
      └ postinstall
    

    ※이때 preinstall과 postinstall의 허가에 주의하는 것
    자신은 실행 권한이 없어서 패키징 완료 후 설치를 시도하면 실패했습니다 w
    아마 755가 무난?

    2. 아카이브 만들기



    이 근처는 iOS와 같다.
    Xcode에서 Product→Archive를 선택하여 아카이브 만들기

    3. app 파일로 내보내기



    여기도 대체로 iOS와 같다.
    다른 것은 내보내기 옵션

    여기서 맨 위 Export a Developer ID-signed Application

    4. pkgbuild 실행


    pkgbuild \
    --component Hoge.app \
    --identifier com.hoge.Hoge \
    --install-location /Applications \
    --version "Hogeのバージョン" \
    --scripts /path/to/InstallScripts \
    HogeInstaller.pkg
    

    늘어나는 것은 --scripts 옵션.
    여기서 지정한 경로 안에 있는 preinstall과 postinstall을 캡처하는 모양

    5. pkg 파일의 완성



    그리고이 pkg를 실행하여 설치가 완료되면 무사 스크립트가 실행되고있을 것입니다.

    그건 그렇고



    pkg로부터의 인스톨로 실패했을 경우, 이하의 커멘드로 덤프를 취할 수 있든가 취할 수 없다든가
    sudo installer -dumplog -pkg HogeInstaller.pkg -target /

    고찰



    이제 설치시 Application Support 아래의 파일을 보러 가서 특정 파일을 지우거나 이름 바꾸거나 할 수 있을 것 같다 ( 'ω')

    확실히 iOS와 달리 OSX라면 일본어는 커녕 영어 자료도 적어서 힘들어...