3

Я пытаюсь отправить приложение Java в App Store MacOS X. Весь мой код правильно подписан (банки, dylib и т. Д.). К сожалению, при отправке двоичного файла я всегда получаю ошибку «Недействительный двоичный код» со следующим сообщением:Как вставить JavaAppLauncher в песочницу для магазина приложений

Уважаемый разработчик, Мы обнаружили одну или несколько проблем с вашей недавней доставкой для «tamaggo ibi desktop». Чтобы обработать вашу доставку, необходимо устранить следующие проблемы: Недоступная песочница приложения. Следующие исполняемые файлы должны включать в себя право на «com.apple.security.app-sandbox» с логическим значением true в списке свойств прав. Дополнительную информацию о песочнице вашего приложения см. На странице «Песочница приложений». • tamaggo ibi.app/Contents/MacOS/JavaAppLauncher Как только эти проблемы были исправлены, перейдите на страницу сведений о версии и нажмите «Готово для загрузки двоичного файла». Продолжайте процесс подачи, пока не появится статус приложения «Ожидание загрузки». Затем вы можете доставить исправленный двоичный файл. С уважением, Команда App Store

I Googled это в течение целого дня, но ничего не нашел. Кто-нибудь знает, как изолировать JavaAppLauncher в файле .entitlements?

Для того, чтобы дать больше информации, вот как я подписывать код: /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

У нас было Java-приложение на MAS с конца лета 2012 года. Я думаю, что мы были первым java-приложением в магазине (подробнее на сайте infinkind.com).

Я думаю, что одна проблема заключается в том, как вы подписываете. Чтобы быть принятым в магазине приложений, вам нужно связать JDK. Это можно сделать, используя задачу appbundler ant. Мы создали форк это с некоторыми улучшениями, так как официальная, кажется, застойные и не принимать обновления:

https://bitbucket.org/infinitekind/appbundler

Мы также создали форк OpenJDK с парой мелких исправлений которые были обработчиками (проблемы с клавиатурой для элементов меню) для нас. Теперь они могут быть включены в основной OpenJDK, но я так не думаю.

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

Во всяком случае, вышеуказанные два элемента не могут быть необходимы в вашем случае, но это, как мы сделали это, и она работала. Я думаю, что настоящая проблема заключается в том, что вы подписываете и в каком порядке. Вот что мы делаем, и это было принято пяти представлений обновления в настоящее время:

# 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

Смежные вопросы