clean out desktop safari app signing
This commit is contained in:
parent
72bd3bc46f
commit
e318e78444
96
gulpfile.js
96
gulpfile.js
|
@ -2,7 +2,6 @@ const gulp = require('gulp');
|
||||||
const googleWebFonts = require('gulp-google-webfonts');
|
const googleWebFonts = require('gulp-google-webfonts');
|
||||||
const del = require('del');
|
const del = require('del');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const child = require('child_process');
|
|
||||||
|
|
||||||
const paths = {
|
const paths = {
|
||||||
cssDir: './src/css/',
|
cssDir: './src/css/',
|
||||||
|
@ -37,104 +36,9 @@ function fixSweetAlert(cb) {
|
||||||
cb();
|
cb();
|
||||||
}
|
}
|
||||||
|
|
||||||
function pkgMas(cb) {
|
|
||||||
const appPath = paths.dist + 'mas/Bitwarden.app';
|
|
||||||
const pkgPath = paths.dist + 'mas/Bitwarden-mas.pkg';
|
|
||||||
const pkgSignedPath = paths.dist + 'mas/Bitwarden-mas-signed.pkg';
|
|
||||||
|
|
||||||
return del([paths.dist + 'mas/Bitwarden*.pkg'])
|
|
||||||
.then(() => {
|
|
||||||
return signMas(cb);
|
|
||||||
}).then(() => {
|
|
||||||
const proc = child.spawn('productbuild', [
|
|
||||||
'--component',
|
|
||||||
appPath,
|
|
||||||
'/Applications',
|
|
||||||
pkgPath]);
|
|
||||||
stdOutProc(proc);
|
|
||||||
return new Promise((resolve) => proc.on('close', resolve));
|
|
||||||
}).then(() => {
|
|
||||||
const proc = child.spawn('productsign', [
|
|
||||||
'--sign',
|
|
||||||
'3rd Party Mac Developer Installer: 8bit Solutions LLC',
|
|
||||||
pkgPath,
|
|
||||||
pkgSignedPath]);
|
|
||||||
stdOutProc(proc);
|
|
||||||
return new Promise((resolve) => proc.on('close', resolve));
|
|
||||||
}).then(() => {
|
|
||||||
return cb;
|
|
||||||
}, () => {
|
|
||||||
return cb;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function signMas(cb) {
|
|
||||||
return signApp(cb, 'mas');
|
|
||||||
}
|
|
||||||
|
|
||||||
function signMac(cb) {
|
|
||||||
return signApp(cb, 'mac');
|
|
||||||
}
|
|
||||||
|
|
||||||
function signApp(cb, dir) {
|
|
||||||
const appPath = paths.dist + dir + '/Bitwarden.app';
|
|
||||||
const safariAppexPath = appPath + '/Contents/PlugIns/safari.appex';
|
|
||||||
const safariAppexFrameworkPath = safariAppexPath + '/Contents/Frameworks/';
|
|
||||||
const safariEntitlementsPath = paths.resources + 'safari.entitlements';
|
|
||||||
const appEntitlementsPath = paths.resources + 'entitlements.' + dir + '.plist';
|
|
||||||
|
|
||||||
const libs = fs.readdirSync(safariAppexFrameworkPath).filter((p) => p.endsWith('.dylib'))
|
|
||||||
.map((p) => safariAppexFrameworkPath + p);
|
|
||||||
const libPromises = [];
|
|
||||||
var args = dir === 'mas' ?
|
|
||||||
[
|
|
||||||
'--verbose',
|
|
||||||
'--force',
|
|
||||||
'--sign',
|
|
||||||
'3rd Party Mac Developer Application: 8bit Solutions LLC',
|
|
||||||
'--entitlements'
|
|
||||||
] :
|
|
||||||
[
|
|
||||||
'--verbose',
|
|
||||||
'--force',
|
|
||||||
'-o',
|
|
||||||
'runtime',
|
|
||||||
'--sign',
|
|
||||||
'Developer ID Application: 8bit Solutions LLC',
|
|
||||||
'--entitlements'
|
|
||||||
];
|
|
||||||
libs.forEach((i) => {
|
|
||||||
const proc = child.spawn('codesign', args.concat([safariEntitlementsPath, i]));
|
|
||||||
stdOutProc(proc);
|
|
||||||
libPromises.push(new Promise((resolve) => proc.on('close', resolve)));
|
|
||||||
libPromises.push(new Promise((resolve) => setTimeout(() => resolve(), 10000)));
|
|
||||||
});
|
|
||||||
return Promise.all(libPromises).then(() => {
|
|
||||||
const proc = child.spawn('codesign', args.concat([safariEntitlementsPath, safariAppexPath]));
|
|
||||||
stdOutProc(proc);
|
|
||||||
return new Promise((resolve) => proc.on('close', resolve));
|
|
||||||
}).then(() => {
|
|
||||||
const proc = child.spawn('codesign', args.concat([appEntitlementsPath, appPath]));
|
|
||||||
stdOutProc(proc);
|
|
||||||
return new Promise((resolve) => proc.on('close', resolve));
|
|
||||||
}).then(() => {
|
|
||||||
return cb;
|
|
||||||
}, () => {
|
|
||||||
return cb;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function stdOutProc(proc) {
|
|
||||||
proc.stdout.on('data', (data) => console.log(data.toString()));
|
|
||||||
proc.stderr.on('data', (data) => console.error(data.toString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.clean = clean;
|
exports.clean = clean;
|
||||||
exports.cleanupAotIssue = cleanupAotIssue;
|
exports.cleanupAotIssue = cleanupAotIssue;
|
||||||
exports.webfonts = gulp.series(clean, webfonts);
|
exports.webfonts = gulp.series(clean, webfonts);
|
||||||
exports['prebuild:renderer'] = gulp.parallel(webfonts, cleanupAotIssue);
|
exports['prebuild:renderer'] = gulp.parallel(webfonts, cleanupAotIssue);
|
||||||
exports.fixSweetAlert = fixSweetAlert;
|
exports.fixSweetAlert = fixSweetAlert;
|
||||||
exports.pkgMas = pkgMas;
|
|
||||||
exports.signMas = signMas;
|
|
||||||
exports.signMac = signMac;
|
|
||||||
exports.postinstall = fixSweetAlert;
|
exports.postinstall = fixSweetAlert;
|
||||||
|
|
|
@ -35,14 +35,12 @@
|
||||||
"clean:l10n": "git push origin --delete l10n_master",
|
"clean:l10n": "git push origin --delete l10n_master",
|
||||||
"pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never",
|
"pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never",
|
||||||
"pack:mac": "npm run clean:dist && electron-builder --mac -p never",
|
"pack:mac": "npm run clean:dist && electron-builder --mac -p never",
|
||||||
"pack:mac:mas": "npm run clean:dist && electron-builder --mac mas -p never",
|
"pack:mac:mas": "npm run clean:dist && electron-builder --mac mas mas-dev -p never",
|
||||||
"pack:mac:masdev": "npm run clean:dist && electron-builder --mac mas-dev -p never",
|
|
||||||
"pack:win": "npm run clean:dist && electron-builder --win --x64 --ia32 -p never -c.win.certificateSubjectName=\"8bit Solutions LLC\"",
|
"pack:win": "npm run clean:dist && electron-builder --win --x64 --ia32 -p never -c.win.certificateSubjectName=\"8bit Solutions LLC\"",
|
||||||
"pack:win:ci": "npm run clean:dist && electron-builder --win --x64 --ia32 -p never",
|
"pack:win:ci": "npm run clean:dist && electron-builder --win --x64 --ia32 -p never",
|
||||||
"dist:lin": "npm run build && npm run pack:lin",
|
"dist:lin": "npm run build && npm run pack:lin",
|
||||||
"dist:mac": "npm run build && npm run pack:mac",
|
"dist:mac": "npm run build && npm run pack:mac",
|
||||||
"dist:mac:mas": "npm run build && npm run pack:mac:mas && gulp pkgMas",
|
"dist:mac:mas": "npm run build && npm run pack:mac:mas",
|
||||||
"dist:mac:masdev": "npm run build && npm run pack:mac:masdev",
|
|
||||||
"dist:win": "npm run build && npm run pack:win",
|
"dist:win": "npm run build && npm run pack:win",
|
||||||
"dist:win:ci": "npm run build && npm run pack:win:ci",
|
"dist:win:ci": "npm run build && npm run pack:win:ci",
|
||||||
"publish:lin": "npm run build && npm run clean:dist && electron-builder --linux --x64 -p always",
|
"publish:lin": "npm run build && npm run clean:dist && electron-builder --linux --x64 -p always",
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>com.apple.security.app-sandbox</key>
|
|
||||||
<true/>
|
|
||||||
<key>com.apple.security.files.user-selected.read-write</key>
|
|
||||||
<true/>
|
|
||||||
<key>com.apple.security.network.client</key>
|
|
||||||
<true/>
|
|
||||||
<key>com.apple.security.network.server</key>
|
|
||||||
<true/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
|
@ -1,6 +1,5 @@
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
const { notarize } = require('electron-notarize');
|
const { notarize } = require('electron-notarize');
|
||||||
const child = require('child_process');
|
|
||||||
|
|
||||||
exports.default = run;
|
exports.default = run;
|
||||||
|
|
||||||
|
@ -14,13 +13,6 @@ async function run(context) {
|
||||||
const macBuild = context.electronPlatformName === 'darwin';
|
const macBuild = context.electronPlatformName === 'darwin';
|
||||||
|
|
||||||
if (macBuild) {
|
if (macBuild) {
|
||||||
/*
|
|
||||||
console.log('### Sign App w/ Safari Extension');
|
|
||||||
const proc = child.spawn('gulp', ['signMac']);
|
|
||||||
stdOutProc(proc);
|
|
||||||
await new Promise((resolve) => proc.on('close', resolve));
|
|
||||||
*/
|
|
||||||
|
|
||||||
console.log('### Notarizing ' + appPath);
|
console.log('### Notarizing ' + appPath);
|
||||||
return await notarize({
|
return await notarize({
|
||||||
appBundleId: 'com.bitwarden.desktop',
|
appBundleId: 'com.bitwarden.desktop',
|
||||||
|
@ -30,8 +22,3 @@ async function run(context) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function stdOutProc(proc) {
|
|
||||||
proc.stdout.on('data', (data) => console.log(data.toString()));
|
|
||||||
proc.stderr.on('data', (data) => console.error(data.toString()));
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue