2015-04-19 9 views
0

У меня был большой успех, скомпилировав мой Jar в приложении, а затем создав файл DMG для его установки на Mac. Я сейчас пытаюсь подписать его, но, не имея никакой удачи с% CodeSign -sНевозможно подписать мое приложение с кодами.

Я думаю, что мой синтаксис является правильным (в этом примере я заслоняя мое фактическое CommonName с My Name 0000000000):

CodeSign - s "Разработчик ID Применение: My Name (0000000000)" XMarker.app

результат:

XMarker.app: код объекта не подписан на всех В подкомпоненте:/Пользователи/MyName/Desktop/XM -dev/XLIFF2Modules/XMarker.app/Содержание/PlugIns/jdk1.8.0_40.jdk

И, конечно, если я проверить это:

CodeSign -d --verbose = 4 XMarker.app XMarker.app: код объекта не подписан на всех

Если кто-то может сказать мне, что я Делая что-то не так, я оценил это

ответ

0

Спасибо Майклу Даутерманну! Твои подсказки поставили меня на правильном пути!

Going «--deep» не путь, потому что мы все еще не в

spctl --assess --type execute XMarker.app test. 

Но вторая часть его ответа привели меня к тому, что работал.

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

cd /Users/myname/Desktop/XM-dev/XLIFF2Modules/XMarker.app/Contents/PlugIns/ 

codesign -s "Developer ID Application: My Name (0000000000)" jdk1.8.0_40.jdk 


cd /Users/myname/Desktop/XM-dev/XLIFF2Modules 

codesign -s "Developer ID Application: My Name (0000000000)" XMarker.app 

codesign -d --verbose=4 XMarker.app 

[получить подтверждение правильно подписанного приложения]

spctl --assess --type execute XMarker.app 

[получать нет ошибки, которые = подтверждение, что приложение пройдет]

[следующее я еще не сделал, но ожидаю успеха - если нет, я отредактирую эту часть]

spctl --assess --type install XMarker.dmg 
1

Попробуйте пойти «--deep».

То есть:

codesign --deep -s "Developer ID Application: My Name (0000000000)" XMarker.app 

Apple recommends against doing "--deep" for production releases, предпочитая вместо этого подписать отдельные компоненты (например, "jdk1.8.0_40.jdk") перед вложением их в окончательном приложении.

+0

Просто хочу быть уверенным, что я читаю это право. Вы говорите, что не используйте --deep, а вместо этого подписываете jdk, а затем мое приложение, предположительно, в двух отдельных шагах командной строки? Если это сработает, я буду вне себя от радости (не говоря уже о благодарности). –

+0

Я собираюсь попробовать «-deep», и если это сработает, попробуйте второй подход. –