L'erreur E5640 - 1627 empêche la notarization d'un logiciel pour Mac

Parmi les nombreuses possibilités de déploiement des projets FireMonkey, Delphi propose la diffusion en direct en utilisant les fonctionnalités de notarization imposées par Apple. Il se trouve que dans un cas bien particulier ça ne se passe pas tout seul.

Mon compte développeur est un peu particulier : pour la même adresse email j'ai plusieurs inscriptions comme éditeur / diffuseur chez Apple. Ca peut aussi être votre cas si en plus de logiciels vous publiez des livres, de la musique ou d'autres contenus sur les magasins numériques d'Apple.

Si c'est votre cas vous pourriez vous retrouver avec l'erreur "Your Apple ID account is attached to other providers. You will need to specify which provider you intend to submit content to. Please contact us if you have questions or need help. (1627)" retournée par PAServer avec un code E5640 en plus.

Cette erreur indique tout simplement que les outils de notarization côté Apple ne s'y retrouvent pas et qu'ils veulent le bon itc_provider (pour la bonne branche sur iTunes Connect ou Apple Connect selon les types de fichiers). A mon sens le problème vient d'un défaut de conception de leur part puisqu'ils savent ce qu'on veut faire et ils pourraient choisir automatiquement le compte attaché au Mac App Store, mais passons.

Pour régler ce soucis nous avons heureusement une solution depuis la version 10.4 Sydney de Delphi.

Depuis la version 10.3 Rio le formulaire de configuration de l'outil de notarization se trouve dans le menu Outils / Options / Déploiement / Approvisionnement puis macOS 64 bits - ID Developpeur. Il faut lui indiquer l'email du compte développeur, le mot de passe applicatif généré chez Apple pour ce programme, le nom de votre certificat "Application ID Développeur" généré dans le backoffice des développeurs Apple et idéalement cocher la case d'ajout du ticket aux applications notarisées. Ca, c'est dans le cas standard.

Dans le cas où vous avez une erreur lors de la notarization il est nécessaire de renseigner la rubrique "autres options" en fournissant les bonnes informations. Ce champ de saisie a été ajouté en version 10.4 Sydney de Delphi pour suivre les évolutions de la chaîne de compilation et des outils de Xcode fournis par Apple côté Mac.
Concernant l'erreur E5640 - 1627, c'est le paramètre --asc-provider qui est à utiliser.

Depuis le Mac sur lequel tourne PAServer lancez le terminal afin de pouvoir saisir la commande suivante :

xcrun altool --list-providers -u VotreEmail -p VotreMotDePasseApplicatif

Remplacez VotreEmail par l'email du compte développeur et VotreMotDePasseApplicatif par le mot de passe fourni par Apple que vous utiliserez dans l'EDI. Le résultat de la commande donne un truc comme celui-ci :

ProviderName      ProviderShortname        PublicID                             WWDRTeamID 
----------------- ------------------------ ------------------------------------ ---------- 
patrick premartin MonProviderShortName     UnCodeBarbare                        LeTeamID 

Ce qui nous intéresse dans cette liste c'est le MonProviderShortName car c'est ce que la notarization utilisera au final pour faire son travail. Ajoutez donc "--asc-provider MonProviderShortName" dans le champ d'options sur l'EDI de Delphi et relancez la notarization. Cette fois-ci elle devrait aboutir.

Si ça ne passe pas et que vous aviez plusieurs lignes dans la liste, essayez les autres valeurs jusqu'à tomber sur la bonne.

Si ça ne passe toujours pas, passez PAServer en mode verbose, copiez les commandes envoyées pour les refaire une par une dans le terminal et voir le détail des erreurs retournées. Vous pourrez ensuite trouver la réponse du côté des forums ou de la documentation développeur chez Apple.

Au passage, rappel important : si on vous demande les lignes entrées pour aboutir à l'erreur, pensez à en masquer votre mot de passe applicatif... car si vous ne le faitez pas, n'importe qui pourra diffuser des logiciels en votre nom !


Mug Chinese New Year 2023 : year of the rabbitMug Toucan DX dans la baie de Rio