From ec56fcfd121d2375bd82c3210dd8e73056461927 Mon Sep 17 00:00:00 2001
From: xEricL <37921711+xEricL@users.noreply.github.com>
Date: Sun, 31 Aug 2025 20:58:54 -0400
Subject: [PATCH] pkg: add entitlements for macOS builds for mic/camera
permissions for some minecraft mods
---
.github/workflows/go-build.yml | 18 ++++++++++++++----
.../Alpine Client.app/Contents/Info.plist | 4 ++++
ci/pkg/darwin/App.entitlements | 10 ++++++++++
3 files changed, 28 insertions(+), 4 deletions(-)
create mode 100644 ci/pkg/darwin/App.entitlements
diff --git a/.github/workflows/go-build.yml b/.github/workflows/go-build.yml
index 77c8894..452797a 100644
--- a/.github/workflows/go-build.yml
+++ b/.github/workflows/go-build.yml
@@ -499,6 +499,7 @@ jobs:
AMD64_DIR="ci/pkg/darwin/x86_64"
mkdir -p "${AMD64_DIR}"
cp -r "ci/pkg/darwin/Alpine Client.app" "${AMD64_DIR}/"
+ cp "ci/pkg/darwin/App.entitlements" "${AMD64_DIR}/"
APP="${AMD64_DIR}/Alpine Client.app/Contents"
mkdir -p "${APP}/MacOS"
@@ -518,7 +519,9 @@ jobs:
p12_file: application_cert.p12
p12_password: ${{ secrets.APPLE_BINARY_CERT_PASSWORD }}
sign: true
- sign_args: "--code-signature-flags=runtime"
+ sign_args: |
+ --code-signature-flags=runtime
+ --entitlements-xml-file=${{ env.AMD64_DIR }}/App.entitlements
- name: "Sign AMD64 App Bundle"
if: inputs.sign
@@ -529,7 +532,9 @@ jobs:
p12_file: application_cert.p12
p12_password: ${{ secrets.APPLE_BINARY_CERT_PASSWORD }}
sign: true
- sign_args: "--code-signature-flags=runtime"
+ sign_args: |
+ --code-signature-flags=runtime
+ --entitlements-xml-file=${{ env.AMD64_DIR }}/App.entitlements
- name: "Package AMD64"
run: >-
@@ -569,6 +574,7 @@ jobs:
ARM64_DIR="ci/pkg/darwin/arm64"
mkdir -p "${ARM64_DIR}"
cp -r "ci/pkg/darwin/Alpine Client.app" "${ARM64_DIR}/"
+ cp "ci/pkg/darwin/App.entitlements" "${ARM64_DIR}/"
APP="${ARM64_DIR}/Alpine Client.app/Contents"
mkdir -p "${APP}/MacOS"
@@ -589,7 +595,9 @@ jobs:
p12_file: application_cert.p12
p12_password: ${{ secrets.APPLE_BINARY_CERT_PASSWORD }}
sign: true
- sign_args: "--code-signature-flags=runtime"
+ sign_args: |
+ --code-signature-flags=runtime
+ --entitlements-xml-file=${{ env.ARM64_DIR }}/App.entitlements
- name: "Sign ARM64 App Bundle"
if: inputs.sign
@@ -600,7 +608,9 @@ jobs:
p12_file: application_cert.p12
p12_password: ${{ secrets.APPLE_BINARY_CERT_PASSWORD }}
sign: true
- sign_args: "--code-signature-flags=runtime"
+ sign_args: |
+ --code-signature-flags=runtime
+ --entitlements-xml-file=${{ env.ARM64_DIR }}/App.entitlements
- name: "Package ARM64"
run: >-
diff --git a/ci/pkg/darwin/Alpine Client.app/Contents/Info.plist b/ci/pkg/darwin/Alpine Client.app/Contents/Info.plist
index 520ad9a..c140277 100644
--- a/ci/pkg/darwin/Alpine Client.app/Contents/Info.plist
+++ b/ci/pkg/darwin/Alpine Client.app/Contents/Info.plist
@@ -30,5 +30,9 @@
false
NSHumanReadableCopyright
Copyright © 2025 Crystal Development, LLC All rights reserved.
+ NSCameraUsageDescription
+ A Minecraft mod wants to access your camera.
+ NSMicrophoneUsageDescription
+ A Minecraft mod wants to access your microphone.
diff --git a/ci/pkg/darwin/App.entitlements b/ci/pkg/darwin/App.entitlements
new file mode 100644
index 0000000..a112145
--- /dev/null
+++ b/ci/pkg/darwin/App.entitlements
@@ -0,0 +1,10 @@
+
+
+
+
+ com.apple.security.device.audio-input
+
+ com.apple.security.device.camera
+
+
+
\ No newline at end of file