@@ -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