58 private static void verifyDMG(JPackageCommand cmd) { |
58 private static void verifyDMG(JPackageCommand cmd) { |
59 Path outputBundle = cmd.outputBundle(); |
59 Path outputBundle = cmd.outputBundle(); |
60 SigningBase.verifyCodesign(outputBundle, false); |
60 SigningBase.verifyCodesign(outputBundle, false); |
61 } |
61 } |
62 |
62 |
63 private static void verifyAppImageInDMG(JPackageCommand cmd) throws Exception { |
63 private static void verifyAppImageInDMG(JPackageCommand cmd) { |
64 Path disk = Paths.get("/Volumes", cmd.name()); |
64 MacHelper.withExplodedDmg(cmd, disk -> { |
65 try { |
|
66 new Executor() |
|
67 .setExecutable("/usr/bin/hdiutil") |
|
68 .addArgument("attach").addArgument(cmd.outputBundle()) |
|
69 .execute().assertExitCodeIsZero(); |
|
70 |
|
71 Path appImageInDMG = disk.resolve(cmd.name() + ".app"); |
65 Path appImageInDMG = disk.resolve(cmd.name() + ".app"); |
72 Path launcherPath = appImageInDMG.resolve(Path.of("Contents", "MacOS", cmd.name())); |
66 Path launcherPath = appImageInDMG.resolve(Path.of("Contents", "MacOS", cmd.name())); |
73 SigningBase.verifyCodesign(launcherPath, true); |
67 SigningBase.verifyCodesign(launcherPath, true); |
74 SigningBase.verifyCodesign(appImageInDMG, true); |
68 SigningBase.verifyCodesign(appImageInDMG, true); |
75 SigningBase.verifySpctl(appImageInDMG, "exec"); |
69 SigningBase.verifySpctl(appImageInDMG, "exec"); |
76 } finally { |
70 }); |
77 new Executor() |
|
78 .setExecutable("/usr/bin/hdiutil") |
|
79 .addArgument("detach").addArgument(disk) |
|
80 .execute().assertExitCodeIsZero(); |
|
81 } |
|
82 } |
71 } |
83 |
72 |
84 public static void main(String[] args) throws Exception { |
73 public static void main(String[] args) throws Exception { |
85 TKit.run(args, () -> { |
74 TKit.run(args, () -> { |
86 SigningCheck.checkCertificates(); |
75 SigningCheck.checkCertificates(); |
92 cmd.addArguments("--mac-sign", |
81 cmd.addArguments("--mac-sign", |
93 "--mac-signing-key-user-name", SigningBase.DEV_NAME, |
82 "--mac-signing-key-user-name", SigningBase.DEV_NAME, |
94 "--mac-signing-keychain", "jpackagerTest.keychain"); |
83 "--mac-signing-keychain", "jpackagerTest.keychain"); |
95 }) |
84 }) |
96 .forTypes(PackageType.MAC_PKG) |
85 .forTypes(PackageType.MAC_PKG) |
97 .addBundleVerifier(cmd -> { |
86 .addBundleVerifier(SigningPackageTest::verifyPKG) |
98 verifyPKG(cmd); |
|
99 }) |
|
100 .forTypes(PackageType.MAC_DMG) |
87 .forTypes(PackageType.MAC_DMG) |
101 .addBundleVerifier(cmd -> { |
88 .addBundleVerifier(SigningPackageTest::verifyDMG) |
102 verifyDMG(cmd); |
89 .addBundleVerifier(SigningPackageTest::verifyAppImageInDMG) |
103 verifyAppImageInDMG(cmd); |
|
104 }) |
|
105 .run(); |
90 .run(); |
106 }); |
91 }); |
107 } |
92 } |
108 } |
93 } |