mirror of
				https://github.com/vector-im/element-web.git
				synced 2025-11-04 02:02:14 +01:00 
			
		
		
		
	We can actually just supply a custom signing module here to do our signing rather than manually signing things in the afterSign hook. This means all 4 executable files get signed (the main exe, the stub exe, Update.exe and the installer).
		
			
				
	
	
		
			25 lines
		
	
	
		
			948 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			948 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const { notarize } = require('electron-notarize');
 | 
						|
 | 
						|
exports.default = async function(context) {
 | 
						|
    const { electronPlatformName, appOutDir } = context;
 | 
						|
 | 
						|
    if (electronPlatformName === 'darwin') {
 | 
						|
        const appName = context.packager.appInfo.productFilename;
 | 
						|
        // We get the password from keychain. The keychain stores
 | 
						|
        // user IDs too, but apparently altool can't get the user ID
 | 
						|
        // from the keychain, so we need to get it from the environment.
 | 
						|
        const userId = process.env.NOTARIZE_APPLE_ID;
 | 
						|
        if (userId === undefined) {
 | 
						|
            throw new Error("User ID not found. Set NOTARIZE_APPLE_ID.");
 | 
						|
        }
 | 
						|
 | 
						|
        console.log("Notarising macOS app. This may be some time.");
 | 
						|
        return await notarize({
 | 
						|
            appBundleId: 'im.riot.app',
 | 
						|
            appPath: `${appOutDir}/${appName}.app`,
 | 
						|
            appleId: userId,
 | 
						|
            appleIdPassword: '@keychain:NOTARIZE_CREDS',
 | 
						|
        });
 | 
						|
    }
 | 
						|
};
 |