2013-11-14 3 views
1

스크립트에서 Mac 패키지 설치 프로그램을 작성하려고하는데 postinstall 스크립트와 postflight 스크립트를 실행하고 싶습니다. 패키지를 구축하기위한 내 스크립트는 다음과 같습니다Mac에서 패키지를 설치할 때 후행 스크립트 실행

pkgbuild --root MyRoot/MyApp.app --identifier com.myapp.MyApp --scripts Scripts --install-location /Applications/MyApp.app MyApp.pkg 
productbuild --synthesize --package MyApp.pkg Distribution.xml 
productbuild --distribution Distribution.xml --resources Resources --package-path . CompleteInstaller.pkg 

나는 스크립트에서 사후 설치 스크립트를 배치했는데이 성공적으로 실행되고있다. 하지만 postflight 스크립트를 실행하는 데 문제가 있습니다. Resources 디렉토리에 위치하며 실행되지 않습니다. 이 경로를 지정하는 것으로 충분하지 않습니까? 나는이 질문에 대한 답을 찾을 수 없었다. 나는 그것을 놓친 경우에 유감 스럽다.

PS : 내 postflight 스크립트가 특별한 아무것도하지 않는다 -는 홈 디렉토리에 파일을 만들려고 지금 : 당신이 패키지에 모두 postinstallpostflight이 왜

#!/bin/sh 
touch ~/file 
exit 0 
+0

"Scirpts"가 오타가있는 이유는 무엇입니까?! – dsjoerg

답변

4

나는 확실하지 않다 있습니다. 두 파일 모두 설치의 "파일 복사"단계 다음에 실행해야하는 동일한 스크립트입니다. "postflight"이름이 구형 패키지 - 번들에 사용되었습니다. 플랫 패키지를 도입 한 후에는 동일한 스크립트의 이름을 "postinstall"으로 지정해야합니다. 플랫 패키지에서 설치 프로그램은 이름이 "postflight"가 아니고 "Scripts"디렉토리에 있고 "Resources"디렉토리가 아닌 경우에만 파일을 postinstall 스크립트로 취급합니다. 아마도 이것이 스크립트가 실행되지 않는 이유입니다.

here 패키지에서 사용되는 스크립트에 관한 추가 정보를 얻을 수 있습니다.

+0

나는 거의 한시간 동안 post_install과 같이 해왔다. :) 고맙습니다. :) –

관련 문제