ElixirKit.Release (elixirkit v0.1.0)

Copy Markdown

Functions for working with Elixir releases.

Summary

Functions

Signs the release for distribution.

Functions

codesign(release)

Signs the release for distribution.

Currently, this function is only executed on macOS.

Environment Variables

  • APPLE_SIGNING_IDENTITY - identity to use for code signing. Defaults to -, that is, Ad-hoc signing. See $ man codesign for more information.

Release Options

  • :entitlements - path to entitlements file.

Examples

In mix.exs:

def project do
  [
    app: :example,
    version: "0.1.0",
    deps: deps(),
    releases: releases()
  ]
end

defp releases do
  [
    app: [
      steps: [:assemble, &ElixirKit.Release.codesign/1],
      entitlements: "#{__DIR__}/src-tauri/App.entitlements"
    ]
  ]
end

In App.entitlements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
  <key>com.apple.security.cs.allow-jit</key>
  <true/>
  <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
  <true/>
  <key>com.apple.security.cs.allow-dyld-environment-variables</key>
  <true/>
  <key>com.apple.security.cs.disable-library-validation</key>
  <true/>
</dict>
</plist>