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