Files
mqtt-explorer/scripts/notarize.ts

50 lines
1.2 KiB
TypeScript

import { notarize } from '@electron/notarize'
import * as path from 'path'
interface Context {
electronPlatformName: string
appOutDir: string
packager: {
appInfo: {
productFilename: string
}
}
}
export default async function notarizing(context: Context) {
const { electronPlatformName, appOutDir } = context
// Only notarize macOS builds
if (electronPlatformName !== 'darwin') {
return
}
// Check for required environment variables
const appleId = process.env.APPLE_ID
const appleIdPassword = process.env.APPLE_APP_SPECIFIC_PASSWORD
const teamId = process.env.APPLE_TEAM_ID
if (!appleId || !appleIdPassword || !teamId) {
console.warn('Skipping notarization: APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD, or APPLE_TEAM_ID not set')
return
}
const appName = context.packager.appInfo.productFilename
const appPath = path.join(appOutDir, `${appName}.app`)
console.log(`Notarizing ${appPath}...`)
try {
await notarize({
appPath,
appleId,
appleIdPassword,
teamId,
})
console.log('Notarization successful!')
} catch (error) {
console.error('Notarization failed:', error)
throw error
}
}