3

Java 응용 프로그램을 MacOS X App Store에 보내려고합니다. 모든 코드가 올바르게 서명되었습니다 (jar, dylib 등). 죄송합니다. 바이너리를 전송할 때 다음 메시지와 함께 항상 "Invalid Binary"오류가 표시됩니다.App Store 용 샌드 박스에 JavaAppLauncher를 포함하는 방법

안녕하십니까, 개발자 "tamaggo ibi desktop"에 대한 최근 배달 관련 문제가 하나 이상 발견되었습니다. 배달을 처리하려면 다음 문제를 해결해야합니다. 응용 프로그램 샌드 박스를 사용할 수 없음 - 다음 실행 파일은 entitlements 속성 목록에 부울 값이 true 인 "com.apple.security.app-sandbox"자격을 포함해야합니다. 앱 샌드 박스 작업에 대한 자세한 내용은 앱 샌드 박스 페이지를 참조하십시오. • tamaggo ibi.app/Contents/MacOS/JavaAppLauncher 이러한 문제가 해결되면 버전 정보 페이지로 이동하여 "Ready to Upload Binary"를 클릭하십시오. 앱 상태가 '업로드 대기 중'이 될 때까지 제출 프로세스를 계속 진행하십시오. 그런 다음 수정 된 바이너리를 전달할 수 있습니다. 감사합니다, 앱 스토어 팀

나는 이것을 하루 종일 봤지만 아무 것도 찾지 못했습니다. 누구든지 .entitlements 파일에서 JavaAppLauncher를 샌드하는 방법을 알고 있습니까? 우리가 자바 응용 프로그램을 했어 /usr/bin/codesign --resource-rules desktop-app/target/dist/myApp/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp

find desktop-app/target/dist/myApp.app/Contents/ -type f \(-name "*.jnilib" -or -name "*.jar" -or -name "*.dylib" \) -exec codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose -f -s "3rd Party Mac Developer Application: XXX" --entitlements desktop-app/target/dist/myApp.app/Contents/myApp.entitlements {} \;

codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp.app/Contents/Resources/binaries/ffmpeg

codesign --resource-rules desktop-app/target/dist/myApp.app/Contents/ResourceRules.plist --verbose --force --sign "3rd Party Mac Developer Application: XXX" desktop-app/target/dist/myApp.app/Contents/MacOS/JavaAppLauncher

답변

2

: 여기에 더 많은 정보를 제공하기 위해

, 나는 코드를 서명하고있어 어떻게 나는 늦은 여름 2012 년 이후로 MAS를 사용했다. 나는 우리가 가게 (infinitekind.com에서 더 많은 정보)에 처음으로 자바 애플 리케이션이라고 생각한다.

나는 당신이 서명하는 방법 중 하나가 문제라고 생각합니다. 앱 스토어에서 승인을 받으려면 JDK를 번들로 묶어야합니다. 이것은 appbundler ant 태스크를 사용하여 수행 할 수 있습니다.

https://bitbucket.org/infinitekind/appbundler

우리는 또한 사소한 수정의 부부와 함께 오픈 JDK의 포크를 만들었습니다 : 공식 하나가 정체되지 받아들이는 업데이트 될 것으로 보인다 이후 우리는 몇 가지 개선이의 포크를 만들었습니다 그게 우리를위한 딜 브레이커 (메뉴 아이템 키보드 단축키 문제) 였어. 이것들은 이제 OpenJDK 메인 라인에 통합되었을 수도 있지만 그렇게 생각하지는 않습니다.

https://bitbucket.org/infinitekind/openjdk7u-jdk

어쨌든, 위의 두 항목은 경우에 필요하지 않을 수 있습니다,하지만 우리는 그것을했고,이 일을 어떻게입니다. 나는 진짜 문제가 당신이 서명하는 순서와 순서라고 생각합니다. 다음은 현재 진행중인 5 가지 업데이트 제출에 대한 내용입니다.

# sign all the jar and dylib files (signing jars is apparently not required by apple, but should be!) 
    find "Path/To/App/AppName.app/Contents" -type f \(-name "*.jar" -or -name "*.dylib" \) -exec codesign -f -s '3rd Party Mac Developer Application: YourCompanyName' --entitlements 'path/to/AppName.entitlements' {} \; 

    # Sign the JDK plugin 
    codesign --verbose -f -s '3rd Party Mac Developer Application: YourCompanyName' --entitlements 'path/to/AppName.entitlements' "Path/To/App/AppName.app/Contents/Plugins/jdk" 

    # sign the whole bundle 
    codesign --verbose -f -s '3rd Party Mac Developer Application: YourCompanyName' --entitlements 'path/to/AppName.entitlements' "Path/To/App/AppName.app" 

도움이 되셨기를 바랍니다.

+0

고마워요! 나는 그것을 지금 시험 할 것이다! 나는 내 문제를 해결할 수 있기를 간절히 바란다. – iDev

+0

감사합니다. 나는 이미 포크를 사용했지만 이전 버전을 사용하고있었습니다. 나는 최신 정보를 가져 왔고 내 문제를 해결했다. 나는 또한 너와 같은 서명 명령을 사용했다. 지금 검토를 기다리고 있습니다! – iDev