2014-11-11 1 views
1

Linux에 install4j 6을 설치했습니다. 내 OS X 앱 번들을 만들고 서명하고 DMG를 만듭니다. 그러나 DMG를 열고 내부에 만든 앱을 실행할 때마다 Gatekeeper는 신원이 확인되지 않은 개발자로부터 나온 것이라고 말합니다.Linux에서 실행되는 install4j 6은 OS X 앱 번들을 올바르게 코딩 할 수 있습니까?

> codesign -vv /Volumes/pokercopilot/Poker\ Copilot.app 
/Volumes/pokercopilot/Poker Copilot.app: unsupported resource found (something not a directory, file or symlink) 

OS X에서 동일한 install4j 빌드를 실행하면 응용 프로그램 번들이 올바르게 서명됩니다.

> codesign -vv Poker\ Copilot.app/ 
Poker Copilot.app/: valid on disk 
Poker Copilot.app/: satisfies its Designated Requirement 

나는 요인을 제거하려고하고 있으며, 시도하고있는 것이 install4j의 기능 내에 있는지 확인하고자합니다.

업데이트 : install4j 잘못된 파일 이름으로 파일을 만들었습니다 :

cp -rf /Volumes/pokercopilot/Poker\ Copilot.app . 
cp: /Volumes/pokercopilot/Poker Copilot.app/Contents/Resources/app/.install4j/icons/.install4j/${compiler:pcp.productShortName}Updater.icns: No such file or directory 

변수 참조가 할당 된 값으로 대체되지 않은 것 같다. OS X에서 install4j를 사용하면 ./Contents/Resources/app/.install4j/icons/.install4j/ 폴더가 비어 있습니다.

답변

0

DMG에 서명하는 코드는 외부 종속성이없는 순수 Java 코드이므로 install4j가 실행되는 운영 체제는이 목적을 위해 중요하지 않습니다.

OS X에서 동일한 install4j 빌드를 실행하면 응용 프로그램 번들이 올바르게 서명됩니다.

DMG를 다운로드하지 않았으므로 게이트 키퍼가 확인하지 않았습니다. 아마 여기서도 서명이 유효하지 않을 것입니다. 서명이 유효한지 확인하려면 잘못된 서명

codesign -vv application.app 

하나의 가능한 원인을 실행하면 서명에 대해 "개발자 ID 응용 프로그램"인증서를 사용하지 않은 것입니다.

업데이트 :

이 실제로 ICNS 아이콘이 자동으로 크로스 플랫폼 이미지에서 컴파일 된 사실에 의해 도입 install4j의 버그입니다. 이는 설치 프로그램 응용 프로그램의 "실행 파일 이름"속성에서 컴파일러 변수를 사용하는 경우에만 발생합니다. 이 버그는 6.0.1에서 수정 될 예정입니다.

해결 방법 : 설치 프로그램 응용 프로그램 (이 경우 업데이터)의 "실행 파일 아이콘"속성에서 "Mac OS X"섹션의 "ICNS 파일 사용"을 선택하고 [instal4j installation directory]/resource/macos/app.icns 파일을 선택하십시오.

+0

"앱 번들이 올바르게 서명되었습니다."라고 썼을 때, 나는 확인을 위해 codesign을 사용했다는 의미였습니다. 두 번 앱 번들 모두에서 codesign의 출력으로 질문을 업데이트하겠습니다. –

+1

OK, 리눅스 빌드에서 pcp.productShortName이 대체되지 않습니다. –

+0

예, 맞습니다. 그러나 단 하나의 폴더에서만, 그것은 보인다. 그렇지 않으면 앱이 정상적으로 보인다. –