fix: add verbose logging to notarize script for debugging

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
sanasol
2026-01-28 15:14:59 +01:00
parent be78f67439
commit 0aaf74a3db

View File

@@ -1,25 +1,50 @@
const { notarize } = require('@electron/notarize'); console.log('[Notarize] Script loaded');
let notarize;
try {
notarize = require('@electron/notarize').notarize;
console.log('[Notarize] @electron/notarize loaded successfully');
} catch (err) {
console.error('[Notarize] Failed to load @electron/notarize:', err.message);
throw err;
}
const path = require('path'); const path = require('path');
exports.default = async function notarizing(context) { exports.default = async function notarizing(context) {
console.log('[Notarize] afterSign hook called');
console.log('[Notarize] Context:', JSON.stringify({
platform: context.electronPlatformName,
appOutDir: context.appOutDir,
outDir: context.outDir
}, null, 2));
const { electronPlatformName, appOutDir } = context; const { electronPlatformName, appOutDir } = context;
// Only notarize macOS builds // Only notarize macOS builds
if (electronPlatformName !== 'darwin') { if (electronPlatformName !== 'darwin') {
console.log('Skipping notarization: not macOS'); console.log('[Notarize] Skipping: not macOS');
return; return;
} }
// Skip if credentials not provided (local builds) // Check credentials
if (!process.env.APPLE_ID || !process.env.APPLE_APP_SPECIFIC_PASSWORD || !process.env.APPLE_TEAM_ID) { const hasAppleId = !!process.env.APPLE_ID;
console.log('Skipping notarization: missing credentials (APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, or APPLE_TEAM_ID)'); const hasPassword = !!process.env.APPLE_APP_SPECIFIC_PASSWORD;
const hasTeamId = !!process.env.APPLE_TEAM_ID;
console.log('[Notarize] Credentials check:', { hasAppleId, hasPassword, hasTeamId });
if (!hasAppleId || !hasPassword || !hasTeamId) {
console.log('[Notarize] Skipping: missing credentials');
return; return;
} }
const appName = context.packager.appInfo.productFilename; const appName = context.packager.appInfo.productFilename;
const appPath = path.join(appOutDir, `${appName}.app`); const appPath = path.join(appOutDir, `${appName}.app`);
console.log(`Notarizing ${appPath}...`); console.log('[Notarize] Starting notarization...');
console.log('[Notarize] App path:', appPath);
console.log('[Notarize] Team ID:', process.env.APPLE_TEAM_ID);
try { try {
await notarize({ await notarize({
@@ -28,9 +53,10 @@ exports.default = async function notarizing(context) {
appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD, appleIdPassword: process.env.APPLE_APP_SPECIFIC_PASSWORD,
teamId: process.env.APPLE_TEAM_ID, teamId: process.env.APPLE_TEAM_ID,
}); });
console.log('Notarization complete!'); console.log('[Notarize] Notarization complete!');
} catch (error) { } catch (error) {
console.error('Notarization failed:', error); console.error('[Notarize] Notarization failed:', error.message);
console.error('[Notarize] Full error:', error);
throw error; throw error;
} }
}; };