java - 尝试签署openjdk时“already signed”错误

标签 java gradle codesign openjfx

我们最近从oracle jdk切换到openjdk。当我们尝试使用javafx-gradle-plugin构建和签名应用程序时,在签名过程中会出现错误。

我们已经尝试使用强制标志(-f)执行代码签名,因为如果我们手动签名有问题的文件,这样做确实有帮助。为此,我们在build.gradle中添加了AdditionalJarsignerParameters = [“-f”]行。但这似乎并不影响代码签名的执行。

    Running [codesign, -s, Developer ID Application: <...>, --prefix, de.<...>.client., -vvvv, /Users/macuser/builds/40a17a50/0/applications/<...>-client/build/jfx/native/<...>.app/Contents/PlugIns/Java.runtime/Contents/Home/jre/lib/jli/libjli.dylib]
    /Users/macuser/builds/40a17a50/0/applications/<...>-client/build/jfx/native/<...>.app/Contents/PlugIns/Java.runtime/Contents/Home/jre/lib/jli/libjli.dylib: is already signed
    java.io.IOException: Exec failed with code 1 command [[codesign, -s, Developer ID Application: <...>, --prefix, de.<...>.client., -vvvv, /Users/macuser/builds/40a17a50/0/applications/<...>-client/build/jfx/native/<...>.app/Contents/PlugIns/Java.runtime/Contents/Home/jre/lib/jli/libjli.dylib] in unspecified directory
    java.io.IOException: Exec failed with code 1 command [[codesign, -s, Developer ID Application: <...>, --prefix, de.<...>.client., -vvvv, /Users/macuser/builds/40a17a50/0/applications/<...>-client/build/jfx/native/<...>.app/Contents/PlugIns/Java.runtime/Contents/Home/jre/lib/jli/libjli.dylib] in unspecified directory
        at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:165)
        at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:138)
        at com.oracle.tools.packager.IOUtils.exec(IOUtils.java:132)
        at com.oracle.tools.packager.mac.MacBaseInstallerBundler.lambda$signAppBundle$18(MacBaseInstallerBundler.java:277)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
        at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
        at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373)
        at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
        at java.util.Iterator.forEachRemaining(Iterator.java:116)
        at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
        at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
        at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
        at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
        at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
        at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
        at com.oracle.tools.packager.mac.MacBaseInstallerBundler.signAppBundle(MacBaseInstallerBundler.java:246)
        at com.oracle.tools.packager.mac.MacBaseInstallerBundler.signAppBundle(MacBaseInstallerBundler.java:219)
        at com.oracle.tools.packager.mac.MacAppBundler.doBundle(MacAppBundler.java:546)
        at com.oracle.tools.packager.mac.MacAppBundler.execute(MacAppBundler.java:1104)
        at de.dynamicfiles.projects.gradle.plugins.javafx.tasks.workers.JfxNativeWorker.jfxnative(JfxNativeWorker.java:348)
        at de.dynamicfiles.projects.gradle.plugins.javafx.tasks.JfxNativeTask.jfxnative(JfxNativeTask.java:32)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:46)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:780)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:747)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
        at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)

最佳答案

jarsignercodesign不同。您需要将-f添加到codesign cmd中,而不是jarsigner

关于java - 尝试签署openjdk时“already signed”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54645049/

相关文章:

javascript - 将 js 从文件系统加载到 spring boot jar 应用程序中(使用 thymeleaf)

java - 使用 gradle 的 Android Studio 错误

maven - 无法在 Android Studio 中访问 Guava

java - 使用 GIT 的 IDEA 新 gradle spring boot 项目。正确的创建顺序是什么?

c++ - Command CodeSign 出现问题失败,退出代码为非零,还给了我 Signing Identity : "-"

java - 无法签署 Mac OS X 应用程序

java - 将 JPanel 的扩展添加到 JFrame

java - & 和 && 和有什么不一样?

java - Java 中间件在核心银行和 ATM 服务器之间的可扩展性

java - jpackage pkg codesign -- appstore 提交错误