electron-releases icon indicating copy to clipboard operation
electron-releases copied to clipboard

Request to extend support to include MAS target for native mac app store support

Open bartsidee opened this issue 7 years ago • 10 comments

Currently only the darwin target is included for MacOS, it would be great if this could be extended with the 'mas' binary for mac app store support.

bartsidee avatar Apr 20 '18 12:04 bartsidee

Thank you for your suggestion, I'll bring it up on the next planning meeting and we'll see if this is something that we can put on the roadmap.

khwaaj avatar Apr 20 '18 13:04 khwaaj

Sorry for the delay in answering.

We have been discussing this internally and, from what we can tell, it will be difficult for us to provide a MAS enabled build. For example, the MAS guidelines, sections 2.4.5 and 2.5.2, state that "Apps should be self-contained" and may not "download, install, or execute code". These requirements are in conflict with the way the CDM binary is dynamically installed/updated and executed, which is another requirement we have to fulfil. This means the application will likely face rejection when it is submitted to the MAS, and Apple is not known to relax their restrictions easily, so getting an exception is probably difficult.

That said, none of us working on this have any direct experience with the MAS and if you are of a different opinion regarding the above conclusion, please let us know how/why and we’ll take it back under advisement.

khwaaj avatar May 08 '18 13:05 khwaaj

Hi khwaaj, thank you for the feedback. Understandably there are app store restrictions that need to be taken into account, and personally I can not confirm if apple will fail or approve the above CDM logic. But I think the risk on this might be a decision that is preferably made by the party actioning the submission, as the party involved might actually make a custom arrangement with apple to approve such logic. It would be good to make a clear notice about the above though in the Readme if support would be added.

bartsidee avatar Jul 11 '18 13:07 bartsidee

For anyone following this, v12.0.5-wvvmp includes experimental MAS artifacts:

This release includes experimental MAS artifacts to allow interested parties to try and get an application accepted into the Mac App Store. Because of technical & licensing limitations related to using the Widevine CDM, as well as rules prohibiting dynamically downloaded code in the MAS, there are reasons to believe that getting an app accepted will be a challenge (see #10 for additional information). Upcoming releases will not include these artifacts.

If an application using the new artifacts is accepted into the MAS, and there are no other unexpected issues, we may consider permanently adding MAS artifacts to our releases.

We are interested to know the results of any attempts to use these new artifacts to be able to make an informed decision on this topic going forward.

khwaaj avatar Apr 22 '21 22:04 khwaaj

hi @khwaaj, In order to publish the application to the app store, i use v12.0.5-wvvmp in my project(base on electron-react-boilerplate) , but cannot work, May I ask what is the reason?

The error message is as follows

> cross-env NODE_ENV=development MAS=true electron ./internals/scripts/BabelRegister app/main/main.dev.js

node:events:353
      throw er; // Unhandled 'error' event
      ^

Error: spawn electron EACCES
    at Process.ChildProcess._handle.onexit (node:internal/child_process:276:19)
    at onErrorNT (node:internal/child_process:476:16)
    at processTicksAndRejections (node:internal/process/task_queues:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (node:internal/child_process:282:12)
    at onErrorNT (node:internal/child_process:476:16)
    at processTicksAndRejections (node:internal/process/task_queues:80:21) {
  errno: -13,
  code: 'EACCES',
  syscall: 'spawn electron',
  path: 'electron',
  spawnargs: [ './internals/scripts/BabelRegister', 'app/main/main.dev.js' ]
}

ywc6688 avatar May 10 '21 08:05 ywc6688

@ywc6688, while this is certainly not something I'm familiar with, shouldn't there be an -r argument in between electron and ./internals/scripts/BabelRegister?

khwaaj avatar May 10 '21 08:05 khwaaj

hi @khwaaj I Use https://github.com/castlabs/electron-releases/releases/tag/v12.0.5-wvvmp in mas-x64.zip package, Entitlements is configured with com.apple.security. App-sandbox true Failed to install Widevine components And <Error>: SeatBeltExecServer: Failed to Initialize sandbox: -1 Operation not permitted problem. Could you please help to check what might be the reason

fengyy51 avatar May 17 '21 07:05 fengyy51

Any updates on this? I'd love to be able to put our app on the Mac App Store but unfortunately this seems like a non priority.

cryptofyre avatar Jun 18 '22 23:06 cryptofyre

You are right, it is not a priority since we have no indications that it will actually bear any fruit as it breaks the rules of the store.

Now that all stable releases have moved to using the Component Updater (at the request of Google) we have even less control over the installation of the CDM, so unfortunately we may need to declare this topic dead - unless new information and/or store rules comes to light.

khwaaj avatar Jun 19 '22 19:06 khwaaj

Unfortunate but I see where your coming from, appreciate the response.

cryptofyre avatar Jun 19 '22 19:06 cryptofyre