Skip to content

Commit 0e0c758

Browse files
committed
Add --keychain param to pkg build
1 parent 89bbf11 commit 0e0c758

1 file changed

Lines changed: 22 additions & 4 deletions

File tree

lib/package/macos.ex

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ defmodule Desktop.Deployment.Package.MacOS do
107107
end
108108

109109
dmg = make_dmg(pkg)
110-
make_pkg(pkg, developer_id)
110+
maybe_make_pkg(pkg)
111111

112112
if developer_id != nil do
113113
package_sign(developer_id, dmg)
@@ -128,13 +128,21 @@ defmodule Desktop.Deployment.Package.MacOS do
128128
)
129129
end
130130

131-
defp make_pkg(%Package{release: %Mix.Release{path: path, version: vsn}} = pkg, developer_id) do
131+
defp maybe_make_pkg(%Package{release: %Mix.Release{path: path, version: vsn}} = pkg) do
132132
build_root = Path.join([path, "..", ".."]) |> Path.expand()
133133
app_root = Path.join(build_root, "#{pkg.name}.app")
134134
out_file = Path.join(build_root, "#{pkg.name}-#{vsn}.pkg")
135135
args = ["--component", app_root, "/Applications"]
136-
args = if developer_id != nil, do: ["--sign", developer_id] ++ args, else: args
137-
cmd!("productbuild", args ++ [out_file])
136+
installer_id = find_installer_id()
137+
138+
args =
139+
if installer_id != nil do
140+
["--keychain", keychain(), "--sign", installer_id] ++ args
141+
else
142+
args
143+
end
144+
145+
cmd("productbuild", args ++ [out_file])
138146
end
139147

140148
defp make_dmg(%Package{release: %Mix.Release{path: path, version: vsn}} = pkg) do
@@ -391,6 +399,16 @@ defmodule Desktop.Deployment.Package.MacOS do
391399
end
392400
end
393401

402+
def find_installer_id() do
403+
cond do
404+
System.get_env("MACOS_INSTALLER_ID") != nil ->
405+
System.get_env("MACOS_INSTALLER_ID")
406+
407+
true ->
408+
find_developer_id()
409+
end
410+
end
411+
394412
defp do_find_developer_id(uids) do
395413
ids = find_identity()
396414
Enum.find(uids, fn uid -> String.contains?(ids, uid) end)

0 commit comments

Comments
 (0)