diff --git a/ChangeLog b/ChangeLog
index 1b5489c680..42ed905627 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
### 3.8.0dev <- NOTE: the release version number will be 3.8.1 ###
+- Internal: mac/deploy_mac.sh now takes an optional parameter to a certificate name to sign the build with.
+ (contributed by @emlynmac)
+
- CLI: Jamulus now shows a link to the Website for translated content (#1759).
(contributed by @henkdegroot)
diff --git a/Jamulus.entitlements b/Jamulus.entitlements
new file mode 100644
index 0000000000..9f3c0e8c3c
--- /dev/null
+++ b/Jamulus.entitlements
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.device.audio-input
+
+ com.apple.security.network.client
+
+ com.apple.security.network.server
+
+
+
diff --git a/Jamulus.pro b/Jamulus.pro
index 3394cfe7ab..12cfd5896b 100644
--- a/Jamulus.pro
+++ b/Jamulus.pro
@@ -128,10 +128,10 @@ win32 {
DEFINES += SERVER_BUNDLE
TARGET = $${TARGET}Server
- MACOSX_BUNDLE_ICON_FILE = jamulus-server-icon-2020.icns
+ MACOSX_BUNDLE_ICON.files = mac/jamulus-server-icon-2020.icns
RC_FILE = mac/jamulus-server-icon-2020.icns
} else {
- MACOSX_BUNDLE_ICON_FILE = mainicon.icns
+ MACOSX_BUNDLE_ICON.files = mac/mainicon.icns
RC_FILE = mac/mainicon.icns
}
@@ -141,11 +141,20 @@ win32 {
HEADERS += mac/activity.h
OBJECTIVE_SOURCES += mac/activity.mm
CONFIG += x86
- QMAKE_TARGET_BUNDLE_PREFIX = net.sourceforge.llcon
+ QMAKE_TARGET_BUNDLE_PREFIX = io.jamulus
QMAKE_APPLICATION_BUNDLE_NAME. = $$TARGET
+ OSX_ENTITLEMENTS.files = Jamulus.entitlements
+ OSX_ENTITLEMENTS.path = Contents/Resources
+ QMAKE_BUNDLE_DATA += OSX_ENTITLEMENTS
+
macx-xcode {
QMAKE_INFO_PLIST = mac/Info-xcode.plist
+ XCODE_ENTITLEMENTS.name = CODE_SIGN_ENTITLEMENTS
+ XCODE_ENTITLEMENTS.value = Jamulus.entitlements
+ QMAKE_MAC_XCODE_SETTINGS += XCODE_ENTITLEMENTS
+ MACOSX_BUNDLE_ICON.path = Contents/Resources
+ QMAKE_BUNDLE_DATA += MACOSX_BUNDLE_ICON
} else {
QMAKE_INFO_PLIST = mac/Info-make.plist
}
@@ -184,7 +193,7 @@ win32 {
HEADERS += ios/ios_app_delegate.h
HEADERS += ios/sound.h
OBJECTIVE_SOURCES += ios/sound.mm
- QMAKE_TARGET_BUNDLE_PREFIX = com.jamulussoftware.jamulus
+ QMAKE_TARGET_BUNDLE_PREFIX = io.jamulus
QMAKE_APPLICATION_BUNDLE_NAME. = $$TARGET
LIBS += -framework CoreFoundation \
-framework CoreServices \
diff --git a/mac/Info-make.plist b/mac/Info-make.plist
index 503eb9141a..b6dfd557d3 100644
--- a/mac/Info-make.plist
+++ b/mac/Info-make.plist
@@ -12,6 +12,16 @@
APPL
CFBundleVersion
@FULL_VERSION@
+ CFBundleShortVersionString
+ @SHORT_VERSION@
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ LSApplicationCategoryType
+ public.app-category.music
+ LSMinimumSystemVersion
+ 10.13.0
CFBundleExecutable
@EXECUTABLE@
CFBundleDevelopmentRegion
@@ -19,8 +29,7 @@
CFBundleIconFile
@ICON@
CFBundleGetInfoString
- Created by Qt/QMake
-
+ Jamulus - Created with QT
NSPrincipalClass
NSApplication
NSMicrophoneUsageDescription
diff --git a/mac/Info-xcode.plist b/mac/Info-xcode.plist
index 31b543d5ea..74e9383333 100644
--- a/mac/Info-xcode.plist
+++ b/mac/Info-xcode.plist
@@ -1,32 +1,40 @@
-
- CFBundleName
- ${EXECUTABLE_NAME}
- CFBundleDisplayName
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- ${PRODUCT_BUNDLE_IDENTIFIER}
- CFBundlePackageType
- APPL
- CFBundleVersion
- ${QMAKE_FULL_VERSION}
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleDevelopmentRegion
- en
- CFBundleIconFile
- ${ASSETCATALOG_COMPILER_APPICON_NAME}
- CFBundleGetInfoString
- Created by Qt/QMake
-
- NSPrincipalClass
- NSApplication
- NSMicrophoneUsageDescription
- Jamulus needs access to the microphone to record and stream your music to other musicians
-
- NSRequiresAquaSystemAppearance
- true
-
+
+ CFBundleName
+ ${EXECUTABLE_NAME}
+ CFBundleDisplayName
+ ${EXECUTABLE_NAME}
+ CFBundleIdentifier
+ ${PRODUCT_BUNDLE_IDENTIFIER}
+ CFBundlePackageType
+ APPL
+ CFBundleVersion
+ ${QMAKE_FULL_VERSION}
+ CFBundleShortVersionString
+ ${QMAKE_SHORT_VERSION}
+ CFBundleSupportedPlatforms
+
+ MacOSX
+
+ LSApplicationCategoryType
+ public.app-category.music
+ LSMinimumSystemVersion
+ 10.13.0
+ CFBundleExecutable
+ ${EXECUTABLE_NAME}
+ CFBundleDevelopmentRegion
+ en
+ CFBundleIconFile
+ mainicon.icns
+ CFBundleGetInfoString
+ Jamulus - Created with QT
+ NSPrincipalClass
+ NSApplication
+ NSMicrophoneUsageDescription
+ Jamulus needs access to the microphone to record and stream your music to other musicians
+ NSRequiresAquaSystemAppearance
+ true
+
diff --git a/mac/deploy_mac.sh b/mac/deploy_mac.sh
index 19b1c307e3..438fc38a7b 100755
--- a/mac/deploy_mac.sh
+++ b/mac/deploy_mac.sh
@@ -7,7 +7,28 @@ macdeploy_path="${root_path}/mac"
resources_path="${root_path}/src/res"
build_path="${root_path}/build"
deploy_path="${root_path}/deploy"
-
+cert_name=""
+
+
+while getopts 'hs:' flag; do
+ case "${flag}" in
+ s)
+ cert_name=$OPTARG
+ if [[ -z "$cert_name" ]]; then
+ echo "Please add the name of the certificate to use: -s \"\""
+ fi
+ # shift 2
+ ;;
+ h)
+ echo "Usage: -s for signing mac build"
+ exit 0
+ ;;
+ *)
+ exit 1
+ ;;
+
+ esac
+done
cleanup()
{
@@ -29,7 +50,11 @@ build_app()
make -f "${build_path}/Makefile" -C "${build_path}" -j "${job_count}"
# Add Qt deployment dependencies
- macdeployqt "${build_path}/${target_name}.app" -verbose=2 -always-overwrite
+ if [[ -z "$cert_name" ]]; then
+ macdeployqt "${build_path}/${target_name}.app" -verbose=2 -always-overwrite
+ else
+ macdeployqt "${build_path}/${target_name}.app" -verbose=2 -always-overwrite -hardened-runtime -timestamp -appstore-compliant -sign-for-notarization="${cert_name}"
+ fi
mv "${build_path}/${target_name}.app" "${deploy_path}"
# Cleanup