diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json
index 661d47a5a27..6757015b537 100644
--- a/apps/desktop/electron-builder.json
+++ b/apps/desktop/electron-builder.json
@@ -38,6 +38,13 @@
"hardenedRuntime": true,
"entitlements": "resources/entitlements.mac.plist",
"entitlementsInherit": "resources/entitlements.mac.plist",
+ "extraFiles": [
+ {
+ "from": "macos/build/Release/autofill-extension.appex",
+ "to": "PlugIns/autofill-extension.appex"
+ }
+ ],
+ "x64ArchFiles": "**/autofill-extension.appex/**/*",
"extendInfo": {
"ITSAppUsesNonExemptEncryption": false,
"CFBundleLocalizations": [
diff --git a/apps/desktop/gulpfile.js b/apps/desktop/gulpfile.js
new file mode 100644
index 00000000000..3183cd6b96d
--- /dev/null
+++ b/apps/desktop/gulpfile.js
@@ -0,0 +1,28 @@
+const child = require("child_process");
+
+const paths = {
+ build: "./build/",
+ dist: "./dist/",
+ node_modules: "./node_modules/",
+ macOsProject: "./macos/desktop.xcodeproj",
+ macOsBuild: "./build-macos",
+};
+
+async function buildMacOs(cb) {
+ const proc = child.spawn("xcodebuild", [
+ "-project",
+ paths.macOsProject,
+ "-alltargets",
+ "-configuration",
+ "Release",
+ ]);
+ stdOutProc(proc);
+ await new Promise((resolve) => proc.on("close", resolve));
+}
+
+function stdOutProc(proc) {
+ proc.stdout.on("data", (data) => console.log(data.toString()));
+ proc.stderr.on("data", (data) => console.error(data.toString()));
+}
+
+exports["build:macos"] = buildMacOs;
diff --git a/apps/desktop/package.json b/apps/desktop/package.json
index f1639dc51a1..a0fa0936a52 100644
--- a/apps/desktop/package.json
+++ b/apps/desktop/package.json
@@ -23,6 +23,7 @@
"build:dev": "concurrently -n Main,Rend -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\"",
"build:preload": "cross-env NODE_ENV=production webpack --config webpack.preload.js",
"build:preload:watch": "cross-env NODE_ENV=production webpack --config webpack.preload.js --watch",
+ "build:macos-extension": "gulp build:macos",
"build:main": "cross-env NODE_ENV=production webpack --config webpack.main.js",
"build:main:dev": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js",
"build:main:watch": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js --watch",
@@ -36,8 +37,8 @@
"pack:lin": "npm run clean:dist && electron-builder --linux --x64 -p never",
"pack:mac": "npm run clean:dist && electron-builder --mac --universal -p never",
"pack:mac:arm64": "npm run clean:dist && electron-builder --mac --arm64 -p never",
- "pack:mac:mas": "npm run clean:dist && electron-builder --mac mas --universal -p never",
- "pack:mac:masdev": "npm run clean:dist && electron-builder --mac mas-dev --universal -p never",
+ "pack:mac:mas": "npm run clean:dist && npm run build:macos-extension && electron-builder --mac mas --universal -p never",
+ "pack:mac:masdev": "npm run clean:dist && npm run build:macos-extension && electron-builder --mac mas-dev --universal -p never",
"pack:win": "npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p never -c.win.certificateSubjectName=\"8bit Solutions LLC\"",
"pack:win:ci": "npm run clean:dist && electron-builder --win --x64 --arm64 --ia32 -p never",
"dist:dir": "npm run build && npm run pack:dir",
diff --git a/apps/desktop/resources/entitlements.mac.plist b/apps/desktop/resources/entitlements.mac.plist
index 48f7bf5cece..915232b83f6 100644
--- a/apps/desktop/resources/entitlements.mac.plist
+++ b/apps/desktop/resources/entitlements.mac.plist
@@ -8,5 +8,7 @@
com.apple.security.cs.disable-library-validation
+ com.apple.developer.authentication-services.autofill-credential-provider
+
diff --git a/apps/desktop/resources/entitlements.mas.inherit.plist b/apps/desktop/resources/entitlements.mas.inherit.plist
index 3ee76423e4c..3634c84f81a 100644
--- a/apps/desktop/resources/entitlements.mas.inherit.plist
+++ b/apps/desktop/resources/entitlements.mas.inherit.plist
@@ -10,5 +10,7 @@
com.apple.security.cs.disable-library-validation
+ com.apple.developer.authentication-services.autofill-credential-provider
+
diff --git a/apps/desktop/resources/entitlements.mas.plist b/apps/desktop/resources/entitlements.mas.plist
index 5bfeba83a61..1617668bb4c 100644
--- a/apps/desktop/resources/entitlements.mas.plist
+++ b/apps/desktop/resources/entitlements.mas.plist
@@ -12,6 +12,8 @@
com.apple.security.files.user-selected.read-write
+ com.apple.developer.authentication-services.autofill-credential-provider
+
com.apple.security.temporary-exception.files.home-relative-path.read-write
/Library/Application Support/Mozilla/NativeMessagingHosts/