Skip to content

Commit 5b32b1c

Browse files
authored
macOS signing and notarization (#516)
* Allow to pass p12 certificates to CI for macOS signing * test passing secrets to CI job * fix html file location for web-meters example * push all builds for notarization
1 parent d38701a commit 5b32b1c

4 files changed

Lines changed: 48 additions & 2 deletions

File tree

.github/workflows/cmake.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ jobs:
4949
with:
5050
submodules: recursive
5151
- uses: distrho/dpf-cmake-action@v1
52+
env:
53+
MACOS_APP_CERTIFICATE: ${{ secrets.MACOS_APP_CERTIFICATE }}
54+
MACOS_INSTALLER_CERTIFICATE: ${{ secrets.MACOS_INSTALLER_CERTIFICATE }}
55+
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
56+
MACOS_NOTARIZATION_USER: ${{ secrets.MACOS_NOTARIZATION_USER }}
57+
MACOS_NOTARIZATION_PASS: ${{ secrets.MACOS_NOTARIZATION_PASS }}
58+
MACOS_NOTARIZATION_TEAM: ${{ secrets.MACOS_NOTARIZATION_TEAM }}
5259
with:
5360
dpf_path: .
5461
suffix: _14
@@ -64,6 +71,13 @@ jobs:
6471
with:
6572
submodules: recursive
6673
- uses: distrho/dpf-cmake-action@v1
74+
env:
75+
MACOS_APP_CERTIFICATE: ${{ secrets.MACOS_APP_CERTIFICATE }}
76+
MACOS_INSTALLER_CERTIFICATE: ${{ secrets.MACOS_INSTALLER_CERTIFICATE }}
77+
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
78+
MACOS_NOTARIZATION_USER: ${{ secrets.MACOS_NOTARIZATION_USER }}
79+
MACOS_NOTARIZATION_PASS: ${{ secrets.MACOS_NOTARIZATION_PASS }}
80+
MACOS_NOTARIZATION_TEAM: ${{ secrets.MACOS_NOTARIZATION_TEAM }}
6781
with:
6882
dpf_path: .
6983
suffix: _15

.github/workflows/example-plugins.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ jobs:
4949
with:
5050
submodules: recursive
5151
- uses: distrho/dpf-makefile-action@v1
52+
env:
53+
MACOS_APP_CERTIFICATE: ${{ secrets.MACOS_APP_CERTIFICATE }}
54+
MACOS_INSTALLER_CERTIFICATE: ${{ secrets.MACOS_INSTALLER_CERTIFICATE }}
55+
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
56+
MACOS_NOTARIZATION_USER: ${{ secrets.MACOS_NOTARIZATION_USER }}
57+
MACOS_NOTARIZATION_PASS: ${{ secrets.MACOS_NOTARIZATION_PASS }}
58+
MACOS_NOTARIZATION_TEAM: ${{ secrets.MACOS_NOTARIZATION_TEAM }}
5259
with:
5360
dpf_path: .
5461
suffix: _14
@@ -64,6 +71,13 @@ jobs:
6471
with:
6572
submodules: recursive
6673
- uses: distrho/dpf-makefile-action@v1
74+
env:
75+
MACOS_APP_CERTIFICATE: ${{ secrets.MACOS_APP_CERTIFICATE }}
76+
MACOS_INSTALLER_CERTIFICATE: ${{ secrets.MACOS_INSTALLER_CERTIFICATE }}
77+
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
78+
MACOS_NOTARIZATION_USER: ${{ secrets.MACOS_NOTARIZATION_USER }}
79+
MACOS_NOTARIZATION_PASS: ${{ secrets.MACOS_NOTARIZATION_PASS }}
80+
MACOS_NOTARIZATION_TEAM: ${{ secrets.MACOS_NOTARIZATION_TEAM }}
6781
with:
6882
dpf_path: .
6983
suffix: _15

examples/WebMeters/Makefile

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,17 @@ TARGETS += clap
4343
TARGETS += au
4444

4545
ifeq ($(MACOS_APP_BUNDLE),true)
46+
aufiles += $(TARGET_DIR)/$(NAME).component/Contents/Resources/index.html
47+
clapfiles += $(TARGET_DIR)/$(NAME).clap/Contents/Resources/index.html
4648
jackfiles += $(TARGET_DIR)/$(NAME).app/Contents/Resources/index.html
49+
vst2files += $(TARGET_DIR)/$(NAME).vst/Contents/Resources/index.html
4750
else
51+
clapfiles += $(TARGET_DIR)/$(NAME).clap/resources/index.html
4852
jackfiles += $(TARGET_DIR)/resources/index.html
53+
lv2files += $(TARGET_DIR)/$(NAME).lv2/resources/index.html
54+
vst2files += $(TARGET_DIR)/$(NAME).vst/resources/index.html
4955
endif
5056

51-
clapfiles += $(TARGET_DIR)/$(NAME).clap/resources/index.html
52-
vst2files += $(TARGET_DIR)/$(NAME).vst/resources/index.html
5357
vst3files += $(TARGET_DIR)/$(NAME).vst3/Contents/Resources/index.html
5458

5559
all: $(TARGETS) $(jackfiles) $(clapfiles) $(vst2files) $(vst3files)

utils/package-osx-bundles.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,20 @@ else
2020
exit
2121
fi
2222

23+
if [ -n "${MACOS_APP_CERTIFICATE}" ] && [ -n "${MACOS_INSTALLER_CERTIFICATE}" ] && [ -n "${MACOS_CERTIFICATE_PASSWORD}" ]; then
24+
security create-keychain -p "" $(pwd)/keychain.db
25+
security unlock-keychain -p "" $(pwd)/keychain.db
26+
echo -n "${MACOS_APP_CERTIFICATE}" | base64 --decode -o cert.p12
27+
security import cert.p12 -P "${MACOS_CERTIFICATE_PASSWORD}" -A -t cert -f pkcs12 -k $(pwd)/keychain.db
28+
echo -n "${MACOS_INSTALLER_CERTIFICATE}" | base64 --decode -o cert.p12
29+
security import cert.p12 -P "${MACOS_CERTIFICATE_PASSWORD}" -A -t cert -f pkcs12 -k $(pwd)/keychain.db
30+
rm cert.p12
31+
# security set-key-partition-list -S apple-tool:,apple: -k "" $(pwd)/keychain.db
32+
security list-keychain -d user -s $(pwd)/keychain.db
33+
export MACOS_APP_DEV_ID="$(security find-identity -v $(pwd)/keychain.db | grep 'Developer ID Application:' | head -n 1 | cut -d' ' -f 5-99 | sed 's/\"//g')"
34+
export MACOS_INSTALLER_DEV_ID="$(security find-identity -v $(pwd)/keychain.db | grep 'Developer ID Installer:' | head -n 1 | cut -d' ' -f 5-99 | sed 's/\"//g')"
35+
fi
36+
2337
# can be overridden by environment variables
2438
MACOS_PKG_LICENSE_FILE=${MACOS_PKG_LICENSE_FILE:=""}
2539
MACOS_PKG_NAME=${MACOS_PKG_NAME:="$(basename $(git rev-parse --show-toplevel))"}

0 commit comments

Comments
 (0)