Browse Source

macOS: Fix building, update instructions

Signed-off-by: Panagiotis Vasilopoulos <hello@alwayslivid.com>
pull/332/head
Panagiotis Vasilopoulos 10 months ago
parent
commit
79d7db6aa7
No known key found for this signature in database GPG Key ID: FD806FDB3B2C5270
  1. 2
      cmake-proxies/cmake-modules/AudacityCodeSigning.cmake
  2. 2
      cmake-proxies/cmake-modules/MacOSXBundleInfo.plist.in
  3. 20
      mac/scripts/build_dist.sh
  4. 16
      mac/signing.txt
  5. 2
      scripts/build/macOS/NotarizeMacos.cmake

2
cmake-proxies/cmake-modules/AudacityCodeSigning.cmake

@ -26,7 +26,7 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin")
install( CODE "set( APP_IDENTIFIER \"org.tenacityaudio.tenacity\" )" )
install( CODE "get_filename_component( APP_LOCATION \${CMAKE_INSTALL_PREFIX}/Tenacity.app ABSOLUTE )" )
install( CODE "set( APPLE_CODESIGN_ENTITLEMENTS ${CMAKE_SOURCE_DIR}/mac/Audacity.entitlements )")
install( CODE "set( APPLE_CODESIGN_ENTITLEMENTS ${CMAKE_SOURCE_DIR}/mac/Tenacity.entitlements )")
install( SCRIPT "scripts/build/macOS/SignMacos.cmake" )

2
cmake-proxies/cmake-modules/MacOSXBundleInfo.plist.in

@ -19,7 +19,7 @@
<string>application/x-audacity-project</string>
</array>
<key>CFBundleTypeName</key>
<string>Audacity Project</string>
<string>Tenacity Audio</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>auDp</string>

20
mac/scripts/build_dist.sh

@ -89,8 +89,8 @@ then
echo "Usage: ${0} srcroot dstroot"
echo
echo " srcroot path to the 'mac' subdirectory of your source tree"
echo " dstroot path to where Audacity was built:"
echo " legacy build = /tmp/Audacity.dst"
echo " dstroot path to where Tenacity was built:"
echo " legacy build = /tmp/Tenacity.dst"
echo " cmake build = <build directory/bin/Release"
exit 1
fi
@ -110,7 +110,7 @@ VERSION=$VERSION.$RELEASE.$REVISION
IDENT=$(plist "${DSTROOT}/Tenacity.app/Contents/Info.plist" "CFBundleIdentifier")
#
# This depends on a file in the builders HOME directory called ".audacity_signing" that
# This depends on a file in the builders HOME directory called ".tenacity_signing" that
# contains the following four lines with the appropriate values specified. If the file
# doesn't exist or one of the values is missing the distribution will be built unsigned
# and unnotarized.
@ -127,19 +127,19 @@ IDENT=$(plist "${DSTROOT}/Tenacity.app/Contents/Info.plist" "CFBundleIdentifier"
# "org.tenacityaudio.tenacity" as the application identifier.
#
SIGNING=
if [ -r ~/.audacity_signing ]
if [ -r ~/.tenacity_signing ]
then
source ~/.audacity_signing
source ~/.tenacity_signing
if [ -n "${CODESIGN_APP_IDENTITY}" -a -n "${NOTARIZE_USERNAME}" -a -n "${NOTARIZE_PASSWORD}" ]
then
SIGNING="y"
fi
fi
VOL="Audacity $VERSION"
DMG="audacity-macos-$VERSION"
VOL="Tenacity $VERSION"
DMG="tenacity-macos-$VERSION"
echo "Audacity has been installed to: ${DSTROOT}"
echo "Tenacity has been installed to: ${DSTROOT}"
cd "${DSTROOT}/.."
# Make sure we have consistent ownership and permissions
@ -156,7 +156,7 @@ then
--timestamp \
--identifier "${IDENT}" \
--options runtime \
--entitlements "${SRCROOT}/Audacity.entitlements" \
--entitlements "${SRCROOT}/Tenacity.entitlements" \
--sign "${CODESIGN_APP_IDENTITY}" \
${DSTROOT}/Tenacity.app/Contents/modules/*
@ -164,7 +164,7 @@ then
--timestamp \
--identifier "${IDENT}" \
--options runtime \
--entitlements "${SRCROOT}/Audacity.entitlements" \
--entitlements "${SRCROOT}/Tenacity.entitlements" \
--sign "${CODESIGN_APP_IDENTITY}" \
${DSTROOT}/Tenacity.app/Contents/plug-ins/*

16
mac/signing.txt

@ -2,12 +2,12 @@ To sign, notarize, staple, and build the distribution DMG, you need to have
an Apple Developer ID and a certificate. Once you have obtained these, proceed
with the following:
1) Create a file in your home directory called ".audacity_signing" and add
1) Create a file in your home directory called ".tenacity_signing" and add
the following three lines. Ensure you put in the email address you used
for your Apple Developer account:
NOTARIZE_USERNAME="specify your Apple developer email address"
NOTARIZE_PASSWORD="@keychain:AUDACITY_PASSWORD"
NOTARIZE_PASSWORD="@keychain:TENACITY_PASSWORD"
CODESIGN_APP_IDENTITY="Developer ID Application:"
2) You need to create an application specific password in your Developer
@ -21,19 +21,19 @@ with the following:
https://support.apple.com/guide/keychain-access/add-a-password-to-a-keychain-kyca1120/mac
Use "AUDACITY_PASSWORD" for the name as it must match the NOTARIZE_PASSWORD
Use "TENACITY_PASSWORD" for the name as it must match the NOTARIZE_PASSWORD
value above. Storing the password in your keychain protects it from curious
eyes.
4) Build the Release version of Audacity. You can follow the cmake_build.txt
4) Build the Release version of Tenacity. You can follow the cmake_build.txt
instructions in this folder. Once complete, you should find "Tenacity.app"
in:
audacity/bld/bin/Release
tenacity/bld/bin/Release
5) Open a terminal and change to the CMake build directory:
audacity/bld
tenacity/bld
6) Run this script to sign, notarize, staple and create the distribution DMG:
@ -41,8 +41,8 @@ with the following:
As it goes through the notarization process twice, once for the app bundle
and again for the DMG, it will take awhile to run and you will see progress
while waiting. If it is successful, you will find the Audacity DMG in
"audacity/bld/bin" and you will receive an email confirming it was notarized.
while waiting. If it is successful, you will find the Tenacity DMG in
"tenacity/bld/bin" and you will receive an email confirming it was notarized.
In the event of a failure, you will find a URL in the output messages
displayed in the terminal. Paste that into a browser for information as

2
scripts/build/macOS/NotarizeMacos.cmake

@ -2,7 +2,7 @@
# Arguments:
# APP_IDENTIFIER - app identifier
# APP_LOCATION - the path to Tenacity.app
# DMG_LOCATION - the path to Audaicty dmg package
# DMG_LOCATION - the path to Tenacity dmg package
# APPLE_NOTARIZATION_USER_NAME - notarization user name
# APPLE_NOTARIZATION_PASSWORD - notarization password

Loading…
Cancel
Save