Я пытаюсь подписать свое приложение Java / JavaFX, используя кодировку с Gradle. Мой код gradle следующий:
exec {
val codeSignArgs = listOf("-s", "'${macSigningKeyDeveloperIdApp}'", "--timestamp", "--options", "runtime", "--entitlements", "../../../entitlements.plist", "--deep", "-f", "--verbose", "UTMCoordinateConverter.app")
logger.quiet("code sign args: $codeSignArgs")
workingDir = macRel
isIgnoreExitValue = true
executable = codeSignTool.absolutePath
args(codeSignArgs)
}
Где codeSignTool
- /usr/bin/codesign
, а macRel
- каталог, в котором находится файл app
, а macSigningKeyDeveloperIdApp
- мой подписывающий идентификатор разработчика.
Gradle выдает мне следующий вывод:
> Task :codeSign
Inside codeSign
code sign args: [-s, 'Developer ID Application: Victor Ewert (XXXXXXXXXX)', --timestamp, --options, runtime, --entitlements, ../../../entitlements.plist, --deep, -f, --verbose, UTMCoordinateConverter.app]
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
'Developer ID Application: Victor Ewert (XXXXXXXXXX)': no identity found
2:38:26 p.m.: Task execution finished 'codeSign'.
Странно то, что я могу нормально выполнить (эквивалентную) команду из командной строки, используя:
/usr/bin/codesign -s 'Developer ID Application: Victor Ewert (XXXXXXXXX)' --timestamp --options runtime --entitlements ../../../entitlements.plist --deep -f --verbose UTMCoordinateConverter.app
запустить из расположения app
файла.
Я дважды и трижды проверил мой ID разработчика, и он выглядит нормально (проверено с помощью security find-identity -p codesigning -v login.keychain
. Я также убедился, что моя цепочка для ключей входа в систему разблокирована. Я не думаю, что это проблема с моим ID разработчика.
Я предполагаю, что это как-то связано с тем, как gradle выполняет команду, но я не могу понять это.