App Sandboxing (OS X)

This commit is contained in:
Feross Aboukhadijeh
2016-05-21 01:08:42 -07:00
parent b367c0b72e
commit 93a9ba11b6
4 changed files with 44 additions and 11 deletions

View File

@@ -103,7 +103,7 @@ var all = {
var darwin = {
// Build for OS X
platform: 'darwin',
platform: 'mas',
// Build 64 bit binaries only.
arch: 'x64',
@@ -211,6 +211,8 @@ function buildDarwin (cb) {
}
]
infoPlist.ElectronTeamID = '5MAMC8G3L8'
fs.writeFileSync(infoPlistPath, plist.build(infoPlist))
// Copy torrent file icon into app bundle
@@ -248,8 +250,9 @@ function buildDarwin (cb) {
*/
var signOpts = {
app: appPath,
platform: 'darwin',
verbose: true
entitlements: path.join(config.STATIC_PATH, 'parent.entitlements'),
'entitlements-inherit': path.join(config.STATIC_PATH, 'child.entitlements'),
platform: 'mas'
}
console.log('OS X: Signing app...')

View File

@@ -26,14 +26,14 @@ if (process.platform === 'win32') {
argv = argv.filter((arg) => arg.indexOf('--squirrel') === -1)
}
if (!shouldQuit) {
// Prevent multiple instances of app from running at same time. New instances signal
// this instance and quit.
shouldQuit = app.makeSingleInstance(onAppOpen)
if (shouldQuit) {
app.quit()
}
}
// if (!shouldQuit) {
// // Prevent multiple instances of app from running at same time. New instances signal
// // this instance and quit.
// shouldQuit = app.makeSingleInstance(onAppOpen)
// if (shouldQuit) {
// app.quit()
// }
// }
if (!shouldQuit) {
init()

10
static/child.entitlements Normal file
View File

@@ -0,0 +1,10 @@
<?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.inherit</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,20 @@
<?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.downloads.read-write</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/>
<key>com.apple.security.application-groups</key>
<array>
<string>5MAMC8G3L8.io.webtorrent.webtorrent</string>
</array>
</dict>
</plist>