2026 Notarisation iOS et macOS
sur Mac cloud en six régions

notarytool · stapler · trousseau · jour vers mois · Apple

2026 Notarisation iOS et macOS sur Mac cloud
Quand la notarisation quitte le portable pour un Mac cloud bare metal, les risques dominants deviennent chaînes d’upload, domaines de trousseau et dérive multi-locataire. Cet article liste cinq signatures, compare hôtes dédiés, mixtes et CI, donne un squelette de commandes, un runbook en six étapes de location journalière à engagement mensuel, et des garde-fous numériques pour seize contre vingt-quatre gigaoctets avant la FAQ vers tarifs et aide.
01

Cinq signatures qui réorientent mal les incidents de notarisation cloud

Lorsque la notarisation Developer ID et stapler quittent le Mac portable du bureau pour un Mac cloud bare metal loué, les incidents ressemblent rarement à un simple drapeau xcodebuild manquant. Vous voyez plutôt des files notarytool intermittentes, une héritage HTTPS_PROXY différent entre SSH interactif et jobs launchd, des domaines de recherche de trousseau qui dérivent après qu’un coéquipier importe un certificat de distribution dans le trousseau de session, et des répertoires ZIP temporaires qui disputent DerivedData sur le même volume APFS.

La première signature est un délai réseau dans notarytool alors que curl vers les points de terminaison Apple semble sain. L’enfant hérite souvent d’un autre proxy ou PATH que votre shell de debug, ou l’inspection TLS d’entreprise diverge entre session GUI et session non interactive. Affichez env dans la même session utilisateur que submit, comparez scutil --proxy, et refaites un ZIP minimal avant de changer de région.

La deuxième signature est un message Invalid brutal pour un identifiant de bundle qui passait hier. C’est en général un glissement d’entitlements, un exportOptions incohérent, ou une signature automatique qui change de profil en silence. Diffez _CodeSignature et exportOptions avant de réinstaller Xcode.

La troisième signature est stapler validate sur l’hôte de build alors que les clients voient encore un logiciel endommagé. Vous avez probablement agrafé un intermédiaire ou recompressé après coup. Hachez le fichier téléchargé au bord et comparez au ticket.

La quatrième signature n’apparaît qu’avec du partage temporel multi-développeurs. C’est presque toujours l’ordre de recherche du trousseau ou des trousseaux de session partagés. Déplacez les identités de distribution vers un trousseau fichier dédié et documentez l’équipe Apple comme source de vérité.

La cinquième signature est un échec d’upload alors que df montre encore de l’espace. Les rafales IO entre staging ZIP, objets Git et pics d’indexation sont typiques. Isolez TMPDIR pour la notarisation et surveillez iostat.

01

Timeout malgré curl sain:Vérifiez proxy, PATH et inspection TLS d’abord.

02

Hier ok, aujourd’hui Invalid:Diffez entitlements et exportOptions.

03

Validate ok, client bloqué:Vérifiez l’artefact exact servi au CDN.

04

Flaky seulement en partage:Trousseau fichier et utilisateurs séparés.

05

df libre mais upload casse:Séparez TMPDIR et mesurez IO.

Après avoir nommé la signature, écrivez la politique : les sessions de notarisation restent séparées des expériences de signature, et les clones mono-repo suivent le guide des clones peu profonds pour ne pas affamer le staging ZIP.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

02

Hôtes dédiés contre postes mélangés

Il n’existe pas de topologie éternellement correcte, seulement la capacité d’expliquer quelle session utilisateur, quel fichier de trousseau et quel chemin de sortie chaque soumission a utilisés. La matrice est volontairement grossière pour aligner en dix minutes risque certificat, interférence humaine, IO, région et durée de location entre Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest.

Dimension Hôte dédié Mélangé avec Xcode CI sans présence
Risque certificat Faible avec trousseau fichier Plus élevé si signing mixte Moyen, rotation planifiée
Interférence humaine Faible Élevée Faible, fenêtres de nuit
IO Temp isolable Concurrence DerivedData Clone + temp séparés
Région Fuseau du signataire Fuseau des devs Registre et Git
Location Jour puis mois Hebdo contrôle Trimestre + nettoyage

La stabilité dépend moins du ping que du fait que submit, staple et validate partagent une session auditable.

Documentez par hôte l’identifiant d’équipe et le chemin du trousseau, sinon les changements d’entitlements ressemblent à une instabilité régionale. La notarisation est plus sensible à l’horloge, au proxy et à l’IO temporaire qu’au RTT seul.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

03

notarytool et stapler comme squelette auditable

L’hypothèse stable est que chaque invocation notarytool partage la même chaîne d’environnement héritée, pas moitié CI et moitié correctif SSH manuel. Stockez les identifiants App Store Connect avec un profil nommé, puis figez l’ordre store-credentials, submit --wait, log, stapler staple, stapler validate.

Squelette minimal
xcrun notarytool store-credentials "AC_PROFILE" --keychain "$HOME/Library/Keychains/ci-notary.keychain-db" --apple-id "..." --team-id "..." --password "spécifique-app"
xcrun notarytool submit ./Dist/MyApp.zip --keychain-profile "AC_PROFILE" --wait
xcrun notarytool log SUBMISSION_ID --keychain-profile "AC_PROFILE"
xcrun stapler staple ./Dist/MyApp.zip
xcrun stapler validate ./Dist/MyApp.zip

Documentez trois classes de trousseaux sur une page wiki : session, système, fichier dédié. Les fichiers remplacent plus vite une surface entière après corruption que de chasser chaque certificat.

Note : archivez le JSON notarytool log à côté du hachage d’artefact.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

04

Runbook en six étapes du jour à l’engagement mensuel

Chaque étape doit produire un artefact : champ de ticket, tarball ou journal horodaté pour éviter la connaissance tribale.

01

Geler les rôles:Utilisateur, chemin trousseau, équipe.

02

Sauver exportOptions:Tarball UTC.

03

Burn-in location jour:Petit ZIP de bout en bout.

04

Séparer temp:Ne pas partager DerivedData.

05

Observer horloge et proxy:Propriétaires NTP et magasin TLS.

06

Verrou mensuel:Nettoyage hebdo et rotation logs.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

05

Seuils pour horloge, mémoire et disques temporaires

Ces seuils sont des garde-fous de communication, pas des garanties matérielles. Calibrez avec vos histogrammes mais gardez-les explicites pour les post-mortems.

A

Dérive d’horloge:Si écart d’environ deux minutes et rejets intermittents, corrigez NTP avant le CPU.

B

Charge mixte 16 Go:Indexer, ZIP, simulateur simultanés créent du swap : traitez comme incident de dimensionnement.

C

Espace temp:Environ trente gigaoctets de marge pour le temp de notarisation, en dessous de quinze bloquez les grosses archives.

Attention : seuils indicatifs, pas SLA cloud.

Compter uniquement sur des redémarrages ou un seul Mac de bureau empile risque trousseau contre stabilité d’upload. Séparer les hôtes et louer à la journée dans six métropoles permet un burn-in avant engagement mensuel. La location bare metal MESHLAUNCH reste souvent le meilleur compromis pour une notarisation reproductible.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

Quand notarytool partage une machine avec des sessions Xcode interactives, les collisions IO sur APFS imitent des pannes réseau intermittentes.

Singapour, Tokyo, Séoul, Hong Kong, US Est et US Ouest exigent une feuille de route claire sur le fuseau du signataire, la sortie réseau et le dépôt Git principal.

La chaîne de confiance TLS et les proxys d’entreprise doivent être identiques entre launchd et SSH, sinon les soumissions échouent de façon non déterministe.

Un trousseau fichier dédié isole les identités de distribution et évite que la recherche par défaut mélange certificats de développement et de production.

stapler doit cibler l’archive exacte servie aux clients, pas un zip intermédiaire recompressé par un pipeline CDN.

Les fenêtres de maintenance doivent séparer uploads et indexation pour garder des latences prévisibles.

Les journaux notarytool doivent être stockés avec hachage d’artefact pour corrélation post-incident.

Les équipes doivent documenter quelle instance est la source de vérité pour chaque équipe Apple Developer.

FAQ

Utilisez des utilisateurs dédiés et un trousseau fichier. Lisez le runbook d’isolement et les tarifs.

Appliquez clones peu profonds et sparse-checkout depuis le guide disque mono-repo et le centre d’aide.

Priorisez fuseau du signataire et sortie stable, puis Git et artefacts. Qualité de session : matrice SSH et Mosh.