Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mac Os (MAS) sandbox build freezes after being code-signed - The <app> Helper.app #87

Closed
screenmeet opened this issue Oct 11, 2016 · 7 comments
Labels

Comments

@screenmeet
Copy link

screenmeet commented Oct 11, 2016

OS: 10.11.6

electron-builder: 7.11.4
npm: 3.10.9
electron: 1.4.2

Mac App store

As soon as the mac app-store built is signed, when the app is launched, it freezes, particularly, the BrowserWindow.

After doing a lot of digging, I've narrowed the issue to the Helper.app being signed. As soon as that's signed - problem.

Please help. I spent many hours yesterday of banging my head against the wall until 3 am until I gave up. Maybe something is wrong with my entitlements?

I made a very basic "hello world" app to do the testing.

Here is my child.plist

<?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.network.client</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <string>U3AQW9824Q.com.projector.screenmeet.testbuild</string>
  </dict>
</plist>

parent.plist:

<?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.network.client</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <string>U3AQW9824Q.com.projector.screenmeet.testbuild</string>
  </dict>
</plist>

build section from my package.json:

  "build": {
    "appId": "com.projector.screenmeet.testbuild",
    "asar" : false,
    "mac": {
      "target" : "mas",
      "category": "public.app-category.productivity",
      "identity" : "U3AQW9824Q"
    },
    "mas" : {
      "identity" : "U3AQW9824Q",
      "entitlements": "child.plist",
      "category": "public.app-category.productivity",
      "entitlementsInherit" : "parent.plist"

    }
  },

And finally, the build output:


Skip app dependencies rebuild because dev and app dependencies are not separated
Packaging for platform mas x64 using electron 1.4.3 to dist/mas

Warning: Application icon is not set, default Electron icon will be used
Signing app (identity: 3rd Party Mac Developer Application: Projector LLC (U3AQW9824Q))

  electron-osx-sign Pre-sign operation enabled for entitlements automation with versions >= `1.1.1`; disable by setting `pre-auto-entitlements` to `false`. +0ms
  electron-osx-sign Automating entitlement app group... +1ms
  electron-osx-sign:warn `ElectronTeamID` not found in `Info.plist`, use parsed from signing identity: U3AQW9824Q +4ms
  electron-osx-sign `com.apple.security.application-groups` found in entitlements file: U3AQW9824Q.com.projector.screenmeet.testbuild +3ms
  electron-osx-sign Signing application... +1ms
  electron-osx-sign > application         /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +0ms
  electron-osx-sign > platform            mas +0ms
  electron-osx-sign > entitlements        child.plist +0ms
  electron-osx-sign > child-entitlements  parent.plist +0ms
  electron-osx-sign > additional-binaries undefined +0ms
  electron-osx-sign > identity            3rd Party Mac Developer Application: Projector LLC (U3AQW9824Q) +0ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app/Contents/MacOS/AwesomeTestApp Helper EH +36ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app +213ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app/Contents/MacOS/AwesomeTestApp Helper NP +216ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app +214ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app/Contents/MacOS/AwesomeTestApp Helper +214ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app +210ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework +215ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib +1s
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib +260ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework +501ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/MacOS/AwesomeTestApp +4s
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +235ms
  electron-osx-sign Verifying... +235ms
  electron-osx-sign Verifying application bundle with codesign... +0ms
  electron-osx-sign Result:
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app

--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app: valid on disk
/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app: satisfies its Designated Requirement
 +609ms
  electron-osx-sign Verified. +0ms
  electron-osx-sign Displaying entitlements... +0ms
  electron-osx-sign Entitlements (prefixed with blob header):
��qq�<?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.network.client</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <string>U3AQW9824Q.com.projector.screenmeet.testbuild</string>
  </dict>
</plist> +17ms
  electron-osx-sign Application signed. +0ms
Signing app (identity: 3rd Party Mac Developer Application: Projector LLC (U3AQW9824Q))

  electron-osx-sign Pre-sign operation enabled for entitlements automation with versions >= `1.1.1`; disable by setting `pre-auto-entitlements` to `false`. +432ms
  electron-osx-sign Automating entitlement app group... +0ms
  electron-osx-sign `ElectronTeamID` found in `Info.plist`: U3AQW9824Q +2ms
  electron-osx-sign `com.apple.security.application-groups` found in entitlements file: U3AQW9824Q.com.projector.screenmeet.testbuild +0ms
  electron-osx-sign Signing application... +0ms
  electron-osx-sign > application         /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +0ms
  electron-osx-sign > platform            mas +0ms
  electron-osx-sign > entitlements        child.plist +0ms
  electron-osx-sign > child-entitlements  parent.plist +0ms
  electron-osx-sign > additional-binaries undefined +0ms
  electron-osx-sign > identity            3rd Party Mac Developer Application: Projector LLC (U3AQW9824Q) +0ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app/Contents/MacOS/AwesomeTestApp Helper EH +41ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app +216ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app/Contents/MacOS/AwesomeTestApp Helper NP +214ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app +215ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app/Contents/MacOS/AwesomeTestApp Helper +214ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app +213ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Electron Framework +215ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib +1s
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib +251ms
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework +460ms
node_modules
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/MacOS/AwesomeTestApp +1s
  electron-osx-sign Signing... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +233ms
  electron-osx-sign Verifying... +235ms
  electron-osx-sign Verifying application bundle with codesign... +0ms
  electron-osx-sign Result:
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper NP.app
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper EH.app
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/AwesomeTestApp Helper.app
--prepared:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
--validated:/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app/Contents/Frameworks/Electron Framework.framework/Versions/Current/.
/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app: valid on disk
/Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app: satisfies its Designated Requirement
 +608ms
  electron-osx-sign Verified. +1ms
  electron-osx-sign Displaying entitlements... +0ms
  electron-osx-sign Entitlements (prefixed with blob header):
��qq�<?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.network.client</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <string>U3AQW9824Q.com.projector.screenmeet.testbuild</string>
  </dict>
</plist> +17ms
  electron-osx-sign Application signed. +0ms
  electron-osx-sign:warn No `install` passed in arguments, will fallback to default `/Applications`. +2ms
  electron-osx-sign Flattening application... +431ms
  electron-osx-sign > application    /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +0ms
  electron-osx-sign > package-output /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp-1.0.3.pkg +0ms
  electron-osx-sign > install-path   /Applications +1ms
node_modules
  electron-osx-sign > identity       3rd Party Mac Developer Installer: Projector LLC (U3AQW9824Q) +0ms
  electron-osx-sign Flattening... /Users/eugene/WebstormProjects/testbuild/dist/mas/AwesomeTestApp.app +0ms
  electron-osx-sign Application flattened. +7s
MacBook-Pro:testbuild eugene$ ./dist/mas/AwesomeTestApp.app/Contents/Resources/
am.lproj/     bg.lproj/     cs.lproj/     el.lproj/     es.lproj/     fa.lproj/     fr.lproj/     hi.lproj/     id.lproj/     kn.lproj/     lv.lproj/     ms.lproj/     pl.lproj/     ro.lproj/     sl.lproj/     sw.lproj/     th.lproj/     vi.lproj/
app/          bn.lproj/     da.lproj/     en.lproj/     es_419.lproj/ fi.lproj/     gu.lproj/     hr.lproj/     it.lproj/     ko.lproj/     ml.lproj/     nb.lproj/     pt_BR.lproj/  ru.lproj/     sr.lproj/     ta.lproj/     tr.lproj/     zh_CN.lproj/
ar.lproj/     ca.lproj/     de.lproj/     en_GB.lproj/  et.lproj/     fil.lproj/    he.lproj/     hu.lproj/     ja.lproj/     lt.lproj/     mr.lproj/     nl.lproj/     pt_PT.lproj/  sk.lproj/     sv.lproj/     te.lproj/     uk.lproj/     zh_TW.lproj/
@develar
Copy link
Contributor

develar commented Oct 11, 2016

@screenmeet I missed "electron-builder: 3.10.9" — please use latest version, 3 is outdated.

@screenmeet
Copy link
Author

What is the latest? This is what the default npm install gave me...

@develar
Copy link
Contributor

develar commented Oct 11, 2016

7.11.4 is the latest release.

@screenmeet
Copy link
Author

Ok, it was with the latest, I made a mistake. That was my npm version. My electron-osx-sign is 7.11.4.

@sethlu
Copy link
Contributor

sethlu commented Oct 13, 2016

Hi @screenmeet, sorry for my late reply. Below are some suggested changes I have...

child.plist:

<?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>

parent.plist:

<?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.network.client</key>
    <true/>
    <key>com.apple.security.application-groups</key>
    <array>
      <string>U3AQW9824Q.com.projector.screenmeet.testbuild</string>
    </array>
  </dict>
</plist>

Build section from package.json:

  "build": {
    "appId": "com.projector.screenmeet.testbuild",
    "asar" : false,
    "mac": {
      "target" : "mas",
      "category": "public.app-category.productivity",
      "identity" : "U3AQW9824Q"
    },
    "mas" : {
      "identity" : "U3AQW9824Q",
      "entitlements": "parent.plist",
      "category": "public.app-category.productivity",
      "entitlementsInherit": "child.plist"
    }
  },

@develar I'm not exactly sure (without digging electron-builder references) how the package.json works with your maintaining module :/ But @screenmeet let me know if it helps. 😸

@screenmeet
Copy link
Author

Thanks guys, I figured it out. The problem was being caused by the "entitlementsInherit" property in the "mas" section. After I removed it everything worked fine.

@sethlu
Copy link
Contributor

sethlu commented Oct 13, 2016

@screenmeet oh great! Just to clarify... entitlementsInherit defaults to the plist something like here:

<?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>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants