2016-07-01 7 views
0

)와 다른 위치에 포함 된 .app (s)을 검색하는 것을 방지하는 방법이 문제는 Stackoverfl0w에서 여러 번 논의되었지만 불행히도 나는 정말 만족스러운 해결책을 찾지 못했습니다..pkg 설치 관리자가 지정된 설치 디렉토리 (

상황 : 대부분의 이전 답변의 라인 갔기 때문에

가 (만 포함 "! 그냥 그렇게 해달라고 응용 프로그램의 여러 버전을 할 이유가 없습니다 .. 등"어떤 I 대부분의 경우에는 동의하지만이 중 하나는 동의하지 않습니다.)

현재 소프트웨어 패키지를/Applications/$ CompanyName/$ SoftwareName_ $ VersionNumber에 설치하는 .pkg 파일을 발송하고 있습니다. 많은 고객이 우리의 현재 릴리스와 베타 버전을 동시에 사용하기 때문에 폴더 이름에 버전 번호를 포함하고 이전 버전을 삭제하지 않아야합니다. 또한 많은 고객이 특정 버전의 소프트웨어를 인증 했으므로 구형 버전 소프트웨어를 사용합니다. 유스 케이스이지만 현재 프로젝트에 현재 버전을 사용합니다.

우리는 macOS 용 명령 줄 도구와 라이브러리 만 출하 했으므로 수년 동안 우리에게 완전히 정상적으로 작동했습니다.

그러나 GUI 응용 프로그램을 Windows에서 macOS 아래의 .app 형식으로 제공되는 Windows/macOS/Linux로만 포팅하기 시작했습니다.

이 문제 일 : .APP이가 .pkg 설치 이내에 배송됩니다

경우, 설치 프로그램은 같은 .APP의 기존 인스턴스에 대한 구멍 디스크를 검색합니다. 찾으면 발견 된 인스턴스를 대체하고 (아주 좋지 않음) 지정한 설치 디렉토리에 .app을 두지 않습니다 (또한 좋지 않음). 내가 찾은

솔루션 :

가) 모든 출시 된 버전의 .APP의 CFBundleIdentifier 변경. 나에게 깨끗한 방법처럼 보이지 않는다. 또한 실행 패드에 .app가 여러 번 나타나는 것으로 가정합니다.
b) 설치 프로그램이 실행하기 전에 .app의 모든 인스턴스를 검색하고 압축 한 다음 설치 후 다시 추출합니다. (좋은 해결책처럼 들리지도 않습니다.)

누군가가 이것을 위해 깨끗한 방법이 있습니까? .pkg를 생성하는 동안이 동작을 생략해야한다고 Apple이 지정할 수있는 방법이 없다고 생각할 수 없습니다.

더 나은 설명서는 다음 중 하나가 내가 https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html#//apple_ref/doc/uid/TP40005370-CH100-SW15

http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html?

(좋은 문서를 찾았지만, 가동 시간 ~ 팔년 후, 필드의 많은 여전히 ​​다가올 설명 "으로 표시되어있다. ")

편집 : XCode를 태그로 추가했습니다. 이 질문으로 텀블 위드를 획득 한 후 부딪 혔습니다. 제안을 주시면 감사하겠습니다 :)

답변

0

배포 파일의 "재배치"속성이이를 제어하는 ​​것으로 보입니다. 안타깝게도이 키를 추가하여 "재배치"만 활성화 할 수 있지만 키를 생략하여 비활성화 할 수는 없습니다.Apple의 Distribution XML 문서에 따르면 .app 번들의 기본값은 "재배치"입니다.