Le Mac App Store bloque les apps Electron pour cause d’API privées

Nicolas Furno |

Plusieurs développeurs signalent que le Mac App Store a refusé leur nouvelle app ou une mise à jour suite à l’utilisation d’API privées. C’est en effet une règle de base de la boutique d’apps d’Apple, seules les API publiques et documentées par la firme peuvent servir. Les développeurs qui utilisent des API privées sont automatiquement bloquées par le processus de validation mis en place par l’entreprise.

Le seul hic dans l’affaire, c’est que ces développeurs en question n’utilisent pas sciemment ces API privées. Ils exploitent tous Electron, le framework multiplateforme créé par GitHub qui permet de créer des apps pour macOS, Windows et Linux en utilisant des technologies issues du web. Même si Apple n’a jamais incité les développeurs à l’utiliser, ce framework a jusque-là été parfaitement accepté sur le Mac App Store, comme en témoigne notamment la présence de la messagerie instantanée Slack.

S’agit-il d’une nouvelle politique d’Apple contre Electron ? Maintenant que le projet Catalyst favorise la création d’apps macOS depuis iOS avec macOS Catalina, la théorie ne serait pas totalement absurde. Mais le plus réaliste est sans doute qu’Apple a renforcé ses mesures de vérification et que les apps Electron passaient jusque-là, mais sont désormais bloquées par le processus de validation automatisé.

Le problème concerne toutes les versions actuelles d’Electron et il n’y a pas encore de solutions. Cela dit, les créateurs du framework vont certainement s’atteler au problème et supprimer les API privées concernées. En attendant, vous pouvez toujours essayer d’argumenter, mais Apple est inflexible sur cette règle. Et attention, les règles sont très claires : si vous essayez trop souvent d’utiliser des APIs privées, Apple peut supprimer votre compte développeur et toutes vos apps. Mieux vaut patienter pour une réponse officielle de la part des concepteurs d’Electron…


avatar byte_order | 

Le rapport c'est que certains considèrent que vivre sous la dictature d'une multinationale serait préférable que de devoir vivre avec les inconvénients de la démocratie.

On est pas loin du Meilleur des Mondes, dans certains commentaires.

avatar fte | 

@byte_order

"On est pas loin du Meilleur des Mondes, dans certains commentaires."

Autant je peux comprendre qu’on puisse accepter un contrôle plus ou moins bienveillant visant, parait-il, à garantir un certain niveau de qualité et de sécurité...

Autant j’ai un peu plus de mal à comprendre qu’on défende ces positions bec et ongles sans travailler pour Apple, considérant certaines compromissions ou actions d’actualité récente, fort douteuses... tant qu’on est pas une victime directe de ces actions, tout va bien ?

Tout n’est pas mauvais dans la pomme, mais il y a quand-même un gros trognon. Certains aiment affirmer le contraire, c’est étrange.

avatar mouahahaha | 

1 an en corée du nord devrait probblement calmer leurs ardeurs et envie de vivre dans un monde où ils n'ont aucune liberté. :)

avatar byte_order | 

@vince29
> Apple va pouvoir mettre en difficulté les autres navigateurs et
> pousser ses propres technos (safari et catalyst).

Cela va être rigolo de voir tous les défenseurs de longue date d'Apple qui soutenaient, à raison, que c'était scandaleux que Microsoft utilise des API privées dans ses propres logiciels tout en s'en servant pour entraver la concurrence, mais qui maintenant vont devoir choisir entre l'intégrité ou défendre le même comportement mais cette fois-ci du Big Brother qu'est devenue Apple (non sans ironie).

avatar reborn | 

@byte_order

Il n’y a pas de Chrome ni de Firefox dans le mac app store.

avatar fte | 

@reborn

"Il n’y a pas de Chrome ni de Firefox dans le mac app store."

Comme c’est étrange.

avatar reborn | 

@fte

Étrange ? 🤔

Plutôt normal, si tu n’accepte pas les limitations d’Apple tu distribue ton application en dehors du store. Comme avant le mac app store quoi..

Rien de surprenant/grave/exceptionnel

avatar fte | 

@reborn

"Étrange ? 🤔"

C’était ironique.

Quand les API privées seront exclues de la notarisation, on va bien se marrer.

avatar reborn | 

@fte

Quand les API privées seront exclues de la notarisation, on va bien se marrer.

Ah c’est prévu ? 🤔
Encore une prédiction basé sur du vent.

Encore une fois la notarization n’a rien n’a voir avec la validation d’une app mac app store.

Une app peut être notarizée alors qu’elle n’a même pas été conçu avec des technos Apple et est distribué hors du store.

avatar fte | 

@reborn

"Ah c’est prévu ? 🤔
Encore une prédiction basé sur du vent."

On verra. J’espère que c’est du vent. Disons qu’il souffle dans une direction plutôt qu’une autre.

"Encore une fois la notarization n’a rien n’a voir avec la validation d’une app mac app store."

Techniquement, certes. Encore que. "Philosophiquement", c’est déjà plus proche. Le futur nous dira s’il y a convergence ou non.

"Une app peut être notarizée alors qu’elle n’a même pas été conçu avec des technos Apple et est distribué hors du store."

Je sais. Et ?

Qu’est-ce qui empêcherait Apple d’interdire à ce stade l’usage d’API privées par exemple ? Ou un autre moteur JavaScript que le sien ?

La bienveillance de Sa Majesté La Reine ? God save the Queen. Elle est immortelle à ce qu’il parait.

avatar reborn | 

@fte

Qu’est-ce qui empêcherait Apple d’interdire à ce stade l’usage d’API privées par exemple ? Ou un autre moteur JavaScript que le sien ?

Rien, et on s’en fou. Il suffit de télécharger en dehors du MAS.

Je comprend pas pourquoi on en fait des tonnes pour ce MAS alors qu’ils existent d’autres options.

avatar fte | 

@reborn

"Rien, et on s’en fou. Il suffit de télécharger en dehors du MAS.

Je comprend pas pourquoi on en fait des tonnes pour ce MAS alors qu’ils existent d’autres options."

C’est qui "on" ? "On" ne s’en fout pas tous. "On" est attaché au libre usage des machines qu’"on" a payé avec notre argent.

Parce qu’il y a une gentille alerte incitant à la méfiance lorsqu’on ouvre une app non signée. Si on autorise son exécution. Qu’il faut valider en l’ouvrant autrement que par un double-click de base. Si je ne m’abuse.

Mais ce n’est pas grave si tu ne comprends pas. D’autres comprennent dans quel sens le vent souffle. Peut-être qu’il ne fait que souffler et qu’"on" n’attrapera pas de pneumonie. J’ai enfilé un pull pour ma part.

Enfin, je t’accorde en tout cas qu’une part de plus en plus grande des clients Mac se fout des lubies d’Apple, parce qu’une part de plus en plus grande de ceux qui ne s’en foutent pas se barre.

avatar reborn | 

@fte

Enfin, je t’accorde en tout cas qu’une part de plus en plus grande des clients Mac se fout des lubies d’Apple, parce qu’une part de plus en plus grande de ceux qui ne s’en foutent pas se barre.

Je m’en fou car... attention surprise... je n’utilise que très peu le MAS comme pas mal d’utilisateur mac.
J’aime installer mes apps sans store quand je suis sur os de bureau.

Ça n’empêche pas Apple de vendre 20 millions de Mac chaque année.

D’autres se barre de macOS, d’autres y arrivent.

avatar fte | 

@reborn

"Ça n’empêche pas Apple de vendre 20 millions de Mac chaque année."

Et il s’est vendu 35 mio d’aspirateurs aux USA en 2018.

avatar reborn | 

@fte

👍..

Et tu veux en venir où ? Qu’on s’en fou ?

Oui on s’en fou. Apple vends ses macs comme d’autre vendent des aspirateurs c’est génial

avatar fte | 

@reborn

"Et tu veux en venir où ?"

Que les chiffres de ventes ne veulent rien dire.

Facebook a des milliards d’utilisateurs, malgré une éthique inexistante et de nombreux scandales à son actif.

Apple vend 20 mio de Mac et alors ? Ça signifie que Apple fait tout juste ?

Microsoft et Google / Android ont beaucoup plus tout juste selon cette stat.

Facebook doit détenir la Vérité Divine, ainsi que Tencent, à ce rythme. Prions Facebook.

Je n’ai aucune idée de pourquoi tu avances des chiffres de ventes. Comprends pas.

avatar reborn | 

@fte

Bah que le macs se vend, donc qu’il a des utilisateurs.. 🤷‍♂️

T’as une telle haine de ce que fais Apple que cela en altère ton raisonnement.

Il y a des options pour tout le monde chez Apple et ailleurs, je comprend pas ton excitation autour d’une pseudo mort des environnements Apple.

À l’échelle mondiale les produits Apple ne sont que très peu utilisé et sont loin d’être incontournable donc je comprend pas du tout ton cirque.

avatar fte | 

@reborn

"T’as une telle haine de ce que fais Apple que cela en altère ton raisonnement."

Ad hominem, boom.

Je suis un hater. Ainsi mourut la conversation. Paix à son âme.

avatar fte | 

@reborn

"À l’échelle mondiale les produits Apple ne sont que très peu utilisé et sont loin d’être incontournable donc je comprend pas du tout ton cirque."

Et ça continue. Tu ne comprends pas, donc c’est moi qui fait du cirque, qui gesticule, qui brasse de l’air.

Je crois que tu ne comprends pas ce que je vois et ce qui me dérange (et d’autres), simplement. Nous ne gesticulons pas. Tout ce que tu ne comprends pas n’est pas du cirque.

Mais tu l’as dit plus tôt, tu t’en fous. Si tu t’y intéressais, tu entreverrais peut-être ce que certains ici et ailleurs voient, dans la puce T1 par exemple, ou la notarisation, ou d’autres choses encore, sans même parler des interventions sur les matériels qui ne sont pas sa propriété.

avatar reborn | 

@fte

Oui t’es frustré car Apple c’est fermé blablabla.. 🙄

Heuresement qu’il existe autre chose qu’Apple

avatar fte | 

@reborn

"Heuresement qu’il existe autre chose qu’Apple"

Fuck yes!

Comme quoi on peut être d’accord :)

avatar BeePotato | 

@ fte : « Qu’est-ce qui empêcherait Apple d’interdire à ce stade l’usage d’API privées par exemple ? »

Moi, la question que je me pose est plutôt de savoir ce qui pourrait motiver Apple à décider de faire ça.

Parce que bon, la raison de l’interdiction d’usage de classes ou méthodes privées par les applications de l’AppStore, elle est claire et évidente : Apple n’a pas envie de se retrouver, du jour au lendemain, distributeur d’un paquet d’applications qui ne fonctionnent plus correctement (voire plus du tout) à cause d’une modification d’une partie de l’OS qu’elles n’étaient pas censées utiliser directement. On comprend fort bien le point de vue du propriétaire de boutique qui ne veut pas d’un tel bazar dans son catalogue.

Mais pour les applications hors AppStore, quelle serait la raison suffisamment motivante pour se lancer dans une telle entreprise ?
C’est une vraie question — il y a peut-être une réelle bonne raison qui m’a échappé, après tout.

avatar fte | 

@BeePotato

"C’est une vraie question — il y a peut-être une réelle bonne raison qui m’a échappé, après tout."

Pourquoi certaines API permettant d’accélérer drastiquement le rendu de browsers seraient privées ? Pour donner un avantage compétitif à Safari ? Ça serait assez retors.

Posons la question différemment. Pourquoi alors qu’elles ont démonté leur efficacité et puissance, ces API restent-elles privées ? Apple pourrait reconnaître leur utilité publique et, heu, les documenter et publier. On peut imaginer paresse, je m’en foutisme, ou un moyen de garder le contrôle d’un avantage compétitif en gardant sous le coude l’option de bloquer, je ne sais pas, voyons, la notarisation des apps en faisant usage. Ça serait vraiment retors.

Retors, sans doute, mais est-ce plausible ? Qu’en penses-tu ?

avatar byte_order | 

@reborn
Les règles de ce qui peut être notarisée ou pas étant édictées par Apple, y'a aucune garantie de ce qui peut être ou ne pas être demain, après demain, l'année prochaine.

De facto, c'est donc une épée de Damoclès au dessus de n'importe quelle app pour macOS, quelque soit le circuit de sa distribution.

avatar reborn | 

@byte_order

Ah..

Le fameux l’avenir est incertain, tout peux arriver..

Demain Microsoft peut faire pareil.

Ou une météorite peut s’écraser sur Cupertino.

Sauf que encore une fois c’est cela a été précisé en juin: You will always be able to run any software of your choosing on macOS

avatar fte | 

@reborn

"Demain Microsoft peut faire pareil."

Oui. Sauf que le vent ne souffle pas dans cette direction à Seattle.

"Ou une météorite peut s’écraser sur Cupertino."

Un gros tremblement de terre est plus probable.

"Sauf que encore une fois c’est cela a été précisé en juin: You will always be able to run any software of your choosing on macOS"

Pas s’il n’est pas 64bit, par exemple. Quoi demain ?

avatar reborn | 

@fte

Sauf que le vent ne souffle pas dans cette direction à Seattle.

Ah il souffle vers où alors ?

Pas s’il n’est pas 64bit, par exemple

Ouais Apple ne fait pas dans le legacy, comme Microsoft. Impossible d’exécuter une app 16 bits sous W10.

Mais là c’est un autre débat.

avatar fte | 

@reborn

"Ouais Apple ne fait pas dans le legacy, comme Microsoft. Impossible d’exécuter une app 16 bits sous W10."

Si, on peut. Il suffit d’activer NTVDM (NT Vie De Merde, moyen mnémotechnique), ce que Windows suggère si on ouvre une telle app et qu’il n’est pas installé.

avatar byte_order | 

@reborn
> Ouais Apple ne fait pas dans le legacy, comme Microsoft.
> Impossible d’exécuter une app 16 bits sous W10.

Mince, exemple raté.

> Mais là c’est un autre débat.

Non, justement, c'est *précisément* le débat : les différences d'autoritarisme des éditeurs d'OS.

avatar mouahahaha | 

"Ouais Apple ne fait pas dans le legacy, comme Microsoft. Impossible d’exécuter une app 16 bits sous W10.

Mais là c’est un autre débat."

Et contrairement à apple, MS n'interdit pas d'installer windows XP ou windows 7 sur un PC que tu vas acheter demain pour faire fonctionner une vieille application qui passerait mal sur l'OS le plus récent. :)

Essaie d'installer 10.5 sur un mac tout neuf pour voir ? :)

Et comparer les logiciels 16 bits d'ya plusieurs décennies avec le fait de foutre en l'air toute la logithèque 32bits...
Bizzarement ça n'a pas l'air de déranger apple qu'une partie de ses clients va devoir passer à la caisse pour changer la machine pour suivre le cycle de mise à jour qu'elle impose aux éditeurs en forcant sur ça et sur l'OS... on se demande bien pourquoi hein.

Mais bon t'es pas à une connerie de plus ou de moins de toute façon. :)

avatar byte_order | 

> Demain Microsoft peut faire pareil.

Oh, l'argument "d'autres font/peuvent faire pareil" pour justifier de faire un truc, circulez, y'a rien à voir. Des régimes dans le monde tuent sans véritable justice. Du coup, hein, à quoi bon défendre l'accès à une véritable justice.

> Ou une météorite peut s’écraser sur Cupertino.

Curieux de voir si le diamètre intérieur de l'Apple Park a été pensé avec génie ou pas, dans ce cas.

Par ailleurs, comparer le risque posé par le contrôle par une entreprise sur votre activité à un risque astrophysique où aucun humain n'a le moindre pouvoir d'influence, chapeau, dans le genre analogie totalement à côté, cela se pose là.

Perso, si je ne peux rien faire pour éviter qu'un astéroïde m'écrase par hasard, je peux faire quelque chose pour éviter qu'un constructeur par son contrôle juge et partie tue mon activité.

Je n'hésite donc pas depuis plusieurs années déjà de fortement déconseiller d'investir temps et argent sur la plateforme mac aux clients qui me demandent mon avis.

> Sauf que encore une fois c’est cela a été précisé en juin:
> You will always be able to run any software of your choosing on macOS

Ouais.
C'est comme pour la promesse de l'ouverture du protocole de iMessages.
Ou la promesse que Apple restera 1000 ans en Inde.
Ou la promesse que Apple veut rendre le monde meilleur.

Elles n'engagent que ceux qui veulent y croire.

J'ai passé l'âge de faire confiance aux promesses, en ce qui me concerne.
A la place, j'évalue les risques, j'observe les tendances, et je fais des choix en conséquence.

avatar reborn | 

@byte_order

C’est donc un problème de confiance.

avatar byte_order | 

> C’est donc un problème de confiance.

Tout à fait.
Et comme la confiance cela se gagne, cela ne s'ordonne pas, ben, voilà, quoi.

avatar reborn | 

@byte_order

Ok 👍

avatar byte_order | 

@reborn
> Il n’y a pas de Chrome ni de Firefox dans le mac app store.

Mais y'a bien un DevID derrière le développement de Chrome et de Firefox pour macOS.
Vous entretenez, tout comme votre marque préférée, l'ambiguité de plus en plus marquée autour des règles à respecter pour avoir le droit de distribuer sur le MAS et les règles à respecter pour avoir le droit de développer une app pour macOS tout court.

avatar reborn | 

@byte_order

L’ambiguïté c’est toi qui la créé en mélangeant développement, signature du code et distribution.

Tu peux developper une app sans dev id et la distribuer où tu veux, sauf sur le MAS.

Si tu veux signer ton app il te faut un dev id

avatar byte_order | 

@reborn
> Tu peux developper une app sans dev id

On télécharge comment XCode et les SDKs sans compte Apple Developer ?

avatar reborn | 

@byte_order

Xcode et cie ne sont pas obligatoire pour developper des apps qui tournent sous macOS. On peut faire sans

D’ailleurs j’ai pas payé 99$ par an pour télécharger xCode

avatar byte_order | 

@reborn
> Xcode et cie ne sont pas obligatoire pour developper des apps qui tournent sous macOS.
> On peut faire sans

Merci d'expliquer comment vous développez une application native utilisant les kits natifs de macOS dernière version sans XCode et les SDKs d'Apple.

avatar reborn | 

@byte_order

Merci d'expliquer comment vous développez une application native utilisant les kits natifs de macOS dernière version sans XCode et les SDKs d'Apple.

Si tu veux Xcode et cie pour une app native il suffit de le télécharger.
Qu’est-ce qui t’en empêche ?

Tu veux developper avec les API d’Apple sans avoir besoin de télécharger l’outil conçu par Apple qui contiennent ces APIs.. 🤔

Tu peux aussi faire sans les outils d’Apple. Comme sous Windows

avatar byte_order | 

@reborn
> Si tu veux Xcode et cie pour une app native il suffit de le télécharger.
> Qu’est-ce qui t’en empêche ?

Il faut un DevID pour pouvoir télécharger les SDKs.
Il faut un DevID pour pouvoir télécharger les outils en ligne de commande permettant de compiler une application native pour macOS.
https://developer.apple.com/downloads/index.action?=command%20line%20tools

> Tu veux developper avec les API d’Apple sans avoir besoin de télécharger l’outil
> conçu par Apple qui contiennent ces APIs.. 🤔

C'est vous qui affirmez qu'on peut développer une app macOS native, donc utilisant les API d'Apple, sans avoir besoin d'un DevID.

C'est pas une histoire de vouloir, c'est une histoire de pouvoir le faire sans avoir besoin d'un DevID, comme vous affirmez que c'est possible. J'attends donc que vous m'expliquer comment c'est possible.

avatar reborn | 

@byte_order

Si tu veux Xcode télécharge le, c’est gratuit.

avatar byte_order | 

@reborn

Vous ne répondez pas à la question.
La question c'est "faut-il oui ou non un DevID pour pouvoir compiler une application macOS native" ?

La question c'est pas de savoir si le téléchargement de tel outil est gratuit mais s'il est libre, c'est à dire sans attache envers Apple. Si les applications développées ainsi ne risquent en aucun cas une décision unilatérale qui rendrait à postériori leurs exécutions par des utilisateurs difficiles, y compris après installation.

Donc, merci d'indiquer comment un dev lamba peut développer une app native pour macOS sans devoir ouvrir un DevID (et donc souscrire, au passage, car c'est pas gratuit, non).

avatar reborn | 

@byte_order

merci d'indiquer comment un dev lamba peut développer une app native pour macOS sans devoir ouvrir un DevID (et donc souscrire, au passage, car c'est pas gratuit, non).

Pas besoin d’un Apple developer ID pour compiler une app native.

avatar byte_order | 

@reborn
Ah, autant pour moi, vous avez raison, je confonds.
Okay, mea culpa, on peut bien compiler une application native pour macOS sans devoir avoir un Developer ID.

avatar reborn | 

@byte_order

Tu confond compte Apple avec compte Apple developper id.

N’importe qui avec un compte Apple peut télécharger ces outils

avatar Deckard | 

Bonne nouvelle !

avatar byte_order | 

> Your app includes a version of an SDK from Electron that violates the App Store Review
> Guidelines.
> The version of the Electron SDK you are using in your app attempts to hide the use
> of private APIs. This is a violation Section 2.5.1 of the App Store Review Guidelines.

Electron SDK, qui est full open source, "attempts to hide" !?
Sérieusement ?

Jamais à court d'exagération, Apple.
Amazing.

Pages

CONNEXION UTILISATEUR