src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java
branchJDK-8200758-branch
changeset 58117 69465ef51b0c
parent 58114 42df7de58e39
child 58415 73f8e557549a
--- a/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java	Thu Sep 12 10:46:10 2019 -0400
+++ b/src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/MacAppBundler.java	Thu Sep 12 12:03:00 2019 -0400
@@ -29,8 +29,6 @@
 import java.io.IOException;
 import java.math.BigInteger;
 import java.text.MessageFormat;
-import java.util.Arrays;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
@@ -278,6 +276,20 @@
                         I18N.getString("error.explicit-sign-no-cert"),
                         I18N.getString("error.explicit-sign-no-cert.advice"));
             }
+
+            // Signing will not work without Xcode with command line developer tools
+            try {
+                ProcessBuilder pb = new ProcessBuilder("xcrun", "--help");
+                Process p = pb.start();
+                int code = p.waitFor();
+                if (code != 0) {
+                    throw new ConfigException(
+                        I18N.getString("error.no.xcode.signing"),
+                        I18N.getString("error.no.xcode.signing.advice"));
+                }
+            } catch (IOException | InterruptedException ex) {
+                throw new ConfigException(ex);
+            }
         }
 
         return true;