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

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

Open
bartsidee opened this issue Apr 20, 2018 · 10 comments

Comments

@bartsidee
Copy link

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.

@khwaaj
Copy link
Collaborator

khwaaj commented Apr 20, 2018

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
Copy link
Collaborator

khwaaj commented May 8, 2018

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.

@bartsidee
Copy link
Author

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.

@khwaaj
Copy link
Collaborator

khwaaj commented Apr 22, 2021

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.

@ywc6688
Copy link

ywc6688 commented May 10, 2021

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' ]
}

@khwaaj
Copy link
Collaborator

khwaaj commented May 10, 2021

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

@fengyy51
Copy link

fengyy51 commented May 17, 2021

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 : SeatBeltExecServer: Failed to Initialize sandbox: -1 Operation not permitted problem. Could you please help to check what might be the reason

@cryptofyre
Copy link

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.

@khwaaj
Copy link
Collaborator

khwaaj commented Jun 19, 2022

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.

@cryptofyre
Copy link

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

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

No branches or pull requests

5 participants