From 191f832e5289fd5df9aa08a87b4e87587b6ddf8c Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 5 Sep 2023 16:42:12 +0400 Subject: [PATCH] Use notarytool instead of altool for notarization. --- Telegram/build/build.sh | 93 +-------------------------------------- Telegram/build/updates.py | 69 ++--------------------------- 2 files changed, 5 insertions(+), 157 deletions(-) diff --git a/Telegram/build/build.sh b/Telegram/build/build.sh index 65bb3725c..8239bb71b 100755 --- a/Telegram/build/build.sh +++ b/Telegram/build/build.sh @@ -402,66 +402,8 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "macstore" ]; then cd "$ReleasePath" fi fi - if [ "$NotarizeRequestId" == "" ]; then - echo "Beginning notarization process." - set +e - xcrun altool --notarize-app --primary-bundle-id "com.tdesktop.Telegram" --username "$AC_USERNAME" --password "@keychain:AC_PASSWORD" --file "$SetupFile" > request_uuid.txt - set -e - while IFS='' read -r line || [[ -n "$line" ]]; do - Prefix=$(echo $line | cut -d' ' -f 1) - Value=$(echo $line | cut -d' ' -f 3) - if [ "$Prefix" == "RequestUUID" ]; then - RequestUUID=$Value - fi - done < "request_uuid.txt" - if [ "$RequestUUID" == "" ]; then - cat request_uuid.txt - Error "Could not extract Request UUID." - fi - echo "Request UUID: $RequestUUID" - rm request_uuid.txt - else - RequestUUID=$NotarizeRequestId - echo "Continue notarization process with Request UUID: $RequestUUID" - fi - - RequestStatus= - LogFile= - while [[ "$RequestStatus" == "" ]]; do - sleep 5 - xcrun altool --notarization-info "$RequestUUID" --username "$AC_USERNAME" --password "@keychain:AC_PASSWORD" > request_result.txt - while IFS='' read -r line || [[ -n "$line" ]]; do - Prefix=$(echo $line | cut -d' ' -f 1) - Value=$(echo $line | cut -d' ' -f 2) - if [ "$Prefix" == "LogFileURL:" ]; then - LogFile=$Value - fi - if [ "$Prefix" == "Status:" ]; then - if [ "$Value" == "in" ]; then - echo "In progress..." - else - RequestStatus=$Value - echo "Status: $RequestStatus" - fi - fi - done < "request_result.txt" - done - if [ "$RequestStatus" != "success" ]; then - echo "Notarization problems, response:" - cat request_result.txt - if [ "$LogFile" != "" ]; then - echo "Requesting log: $LogFile" - curl $LogFile - fi - Error "Notarization FAILED." - fi - rm request_result.txt - - if [ "$LogFile" != "" ]; then - echo "Requesting log: $LogFile" - curl $LogFile > request_log.txt - fi - + echo "Beginning notarization process." + xcrun notarytool submit "$SetupFile" --keychain-profile "preston" --wait xcrun stapler staple "$ReleasePath/$BundleName" if [ "$MacArch" != "" ]; then @@ -543,34 +485,3 @@ sleep 1; echo -en "\007"; sleep 1; echo -en "\007"; - -if [ "$BuildTarget" == "mac" ]; then - if [ -f "$ReleasePath/request_log.txt" ]; then - DisplayingLog= - while IFS='' read -r line || [[ -n "$line" ]]; do - if [ "$DisplayingLog" == "1" ]; then - echo $line - else - Prefix=$(echo $line | cut -d' ' -f 1) - Value=$(echo $line | cut -d' ' -f 2) - if [ "$Prefix" == '"issues":' ]; then - if [ "$Value" != "null" ]; then - echo "NB! Notarization log issues:" - echo $line - DisplayingLog=1 - else - DisplayingLog=0 - fi - fi - fi - done < "$ReleasePath/request_log.txt" - if [ "$DisplayingLog" != "0" ] && [ "$DisplayingLog" != "1" ]; then - echo "NB! Notarization issues not found:" - cat "$ReleasePath/request_log.txt" - else - rm "$ReleasePath/request_log.txt" - fi - else - echo "NB! Notarization log not found :(" - fi -fi diff --git a/Telegram/build/updates.py b/Telegram/build/updates.py index 2b5418605..d1cdc7203 100644 --- a/Telegram/build/updates.py +++ b/Telegram/build/updates.py @@ -109,53 +109,9 @@ if building: finish(1, 'Adding tdesktop to archive.') print('Beginning notarization process.') - lines = subprocess.check_output('xcrun altool --notarize-app --primary-bundle-id "com.tdesktop.Telegram" --username "' + username + '" --password "@keychain:AC_PASSWORD" --file "' + archive + '"', stderr=subprocess.STDOUT, shell=True).decode('utf-8') - print('Response received.') - uuid = '' - for line in lines.split('\n'): - parts = line.strip().split(' ') - if len(parts) > 2 and parts[0] == 'RequestUUID': - uuid = parts[2] - if uuid == '': - finish(1, 'Could not extract Request UUID. Response: ' + lines) - print('Request UUID: ' + uuid) - else: - print('Continue with request UUID: ' + uuid) - - requestStatus = '' - logUrl = '' - while requestStatus == '': - time.sleep(5) - print('Checking...') - lines = subprocess.check_output('xcrun altool --notarization-info "' + uuid + '" --username "' + username + '" --password "@keychain:AC_PASSWORD"', stderr=subprocess.STDOUT, shell=True).decode('utf-8') - statusFound = False - for line in lines.split('\n'): - parts = line.strip().split(' ') - if len(parts) > 1: - if parts[0] == 'LogFileURL:': - logUrl = parts[1] - elif parts[0] == 'Status:': - if parts[1] == 'in': - print('In progress.') - statusFound = True - else: - requestStatus = parts[1] - print('Status: ' + requestStatus) - statusFound = True - if not statusFound: - print('Nothing: ' + lines) - if requestStatus != 'success': - print('Notarization problems, response: ' + lines) - if logUrl != '': - print('Requesting log...') - result = subprocess.call('curl ' + logUrl, shell=True) - if result != 0: - finish(1, 'Error calling curl ' + logUrl) - finish(1, 'Notarization failed.') - logLines = '' - if logUrl != '': - print('Requesting log...') - logLines = subprocess.check_output('curl ' + logUrl, shell=True).decode('utf-8') + result = subprocess.call('xcrun notarytool submit "' + archive + '" --keychain-profile "preston" --wait', shell=True) + if result != 0: + finish(1, 'Notarizing the archive.') result = subprocess.call('xcrun stapler staple Telegram.app', shell=True) if result != 0: finish(1, 'Error calling stapler') @@ -175,25 +131,6 @@ if building: subprocess.call('mv ' + archive + ' ' + outputFolder + '/', shell=True) subprocess.call('rm -rf ' + today, shell=True) print('Finished.') - - if logLines != '': - displayingLog = 0 - for line in logLines.split('\n'): - if displayingLog == 1: - print(line) - else: - parts = line.strip().split(' ') - if len(parts) > 1 and parts[0] == '"issues":': - if parts[1] != 'null': - print('NB! Notarization log issues:') - print(line) - displayingLog = 1 - else: - displayingLog = -1 - if displayingLog == 0: - print('NB! Notarization issues not found: ' + logLines) - else: - print('NB! Notarization log not found.') finish(0) commandPath = scriptPath + '/../../out/' + conf + '/' + outputFolder + '/command.txt'