Archive for 24 avril 2019

Comment notarier une application développée en AppleScript ?

C’est une des grosses nouveautés à venir de macOS 10.14.5 : les extensions de noyau devront être notariées pour fonctionner. Le contrôle de la notarisation des apps va d’ailleurs être activée par défaut dans macOS 10.15.

Mais au fait, c’est quoi cette histoire d’applications notariées ?

Et bien, j’ai la flemme de vous expliquer et MacG l’a déjà très bien fait, donc suivez cet hyperlien pour en savoir plus.

Maintenant, comme vous le savez peut-être, j’ai écrit il y a quelques temps déjà DiskMaker X, une application pour créer une clé USB d’installation de macOS. Et cette application est développée en AppleScript, un langage qu’Apple soutient propose encore dans macOS. Et théoriquement, chaque app devant être notariée, ça devrait aussi être le cas de DiskMaker X.

Sauf qu’Apple n’a pas expliqué du tout dans ses documentations comment effectuer cette notarisation pour les apps développées en AppleScript. C’est Alex Narvey qui a donné la solution sur Slack : pour que l’application soit notariée, il ne faut pas la notarier elle-même mais il faut notarier l’image-disque au format DMG qui la contient ! 

Et en pratique, donc, selon le code d’Alex (encore non testé), ça donnerait quelque chose comme ça (en anglais parce que de toute façon, si vous faites de l’AppleScript vous parlez anglais) :

0. Get a one time password for your App from your Develper Apple ID account.
1. Export your Script to an unsigned app in a folder on the Desktop:
/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app
2. Clear any extended attributes:

sudo xattr -rc “/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app”
3. CodeSign the script using the hardening option:

codesign --force --options runtime --deep --sign "Developer ID Application: Precursor.ca, Inc. (SERIAL#)" "/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app"
4. Verify the Signature:

codesign -dv --verbose=4 "/Users/precursor/Desktop/MyAppleScript Folder/MyAppleScript.app"
5. with your onetime signature ready, create a DMG from the app’s enclosing folder.

/usr/bin/hdiutil create -imagekey zlib-level=9 -srcfolder "/Users/precursor/Desktop/MyAppleScript Folder" -fs HFS+ -volname Test /Users/precursor/Desktop/MyAppleScript.dmg

(my enclosing folder also has a ReadMe file in it)
6. Upload the dmg to Apple for notarization with your one-time password:
xcrun altool --notarize-app --primary-bundle-id "com.apple.ScriptEditor.id.MyAppleScript" --username "email_address" --password "one-time-pass-word" --file "/Users/precursor/Desktop/MyAppleScript.dmg"
7. Record successful RequestUUID:

ce0af42942-cfec-5580-ad8f-80625ec2d7
8. Validate the Notarization:

xcrun altool --notarization-info ce0af42942-cfec-5580-ad8f-80625ec2d7 --username "email_address" --password "one-time-pass-word"
9. Staple the notarization to the dmg:

xcrun stapler staple "/Users/precursor/Desktop/MyAppleScript.dmg"

Donc, en résumé :

– On crée un mot de passe à usage unique sur le portail développeur d’Apple ;

– On exporte le script comme script non signé ;

– On supprime ses attributs étendus ;

– On le signe et on vérifie la signature ;

– On crée une image-disque DMG depuis le dossier de l’application ;

– On envoie le DMG chez Apple avec son mot de passe unique ;

– On valide la notarisation ;

– On attache la notarisation au fichier DMG. Et on met ce dernier en téléchargement évidemment.

Et c’est tout (et c’est déjà pas mal). 

 

Vous êtes administrateur Apple, Consultant, revendeur Apple ? Inscrivez-vous à Command-iT, la grande conférence des spécialistes Apple, les 15 et 16 mai au Grand Rex à Paris ! J’y animerai une conférence ainsi qu’un workshop ! Plus d’informations sur https://www.command-it.fr.

Faut-il fuir le DNS de Cloudflare ?

À cette question, la réponse simple semble être : oui.

Mais vous pouvez aussi me poser une autre question, comme :

« Euh, c’est quoi le DNS, et c’est quoi Cloudflare ? »

À cela, je vous ferai remarquer que vous posez deux questions et pas une seule. Mais bon, je suis de bonne humeur, et je répondrai aux deux.

Le DNS, c’est quoi ? 

Le DNS, c’est ça. Et grosso-modo, c’est l’annuaire d’Internet : vous tapez le nom www.apple.com et ça vous fait tomber sur le site web d’Apple, site hébergé sur une ou plusieurs adresses IP.

Comment ça se configure ?

La plupart du temps, vous n’avez pas à le configurer : il est automatiquement renvoyé par votre routeur Internet (votre box Internet, par exemple). Ce sont les entrées qu’on trouve dans la préférence Système Réseau > Avancé > DNS.

Préférence Réseau DNS

Bon alors, c’est quoi ton problème, GG ?

Il y a environ un an (le 1er avril 2018, pour être précis), Cloudflare, une société qui propose un service de cache d’informations sur le web (pour accélérer les accès aux sites) et de sécurisation (pour résister à des attaques type DDOS), a proposé son propre service DNS, utilisant les adresses IP 1.1.1.1 et 1.0.0.1. L’énooooooorme avantage était alors de proposer un service DNS théoriquement très rapide. Notez que Google propose aussi son propre service DNS depuis longtemps aux adresses 8.8.8.8 et 8.8.4.4 (mais perso, moins j’utilise les services de Google, mieux je me porte).

Sauf que.

Depuis quelques temps, je rencontrais énormément de lenteurs lors d’affichages de vidéo sur Twitter avec le client Twitterrific, autant sur Mac que sur iOS, mais uniquement connecté sur mon réseau Wi-Fi. Et forcément, ça m’agaçait un peu. J’ai tilté récemment, et j’ai posé la question sur Twitter. Tout juste après, je me suis rendu compte que vous étiez des milliers à avoir le même souci !

Dozens of us arrested development

J’ai donc remplacé mes DNS par ceux de Verisign (64.6.65.6, 64.6.64.6), et la situation s’est laaaaaargement améliorée. Et à priori, j’ai lu aussi quelques commentaires comme quoi les DNS de Cloudflare pouvaient être plus problématiques. J’ai aussi eu beaucoup de lenteurs lors du téléchargement de jeux sur PS4… Peut-être lié également, puisque ces contenus sont souvent mis en cache sur des CDN (Contents Distribution Networks), comme les serveurs d’Akamai.

Donc, méfiance : si vous utilisez les DNS de Cloudflare, pensez éventuellement à basculer vers d’autres serveurs (ceux de votre FAI, Google, Verisign ou autre) si vous rencontrez des lenteurs inexpliquées. Et n’hésitez pas à commenter sous ce billet si vous avez aussi constaté des soucis similaires.

Vous êtes administrateur Apple, Consultant, revendeur Apple ? Inscrivez-vous à Command-iT, la grande conférence des spécialistes Apple, les 15 et 16 mai au Grand Rex à Paris ! J’y animerai une conférence ainsi qu’un workshop ! Plus d’informations sur https://www.command-it.fr.