Build With Me · macOS
Construisons votre app macOS.
D’une idée de logiciel à une app Mac signée, notarisée et tenue à jour.
Une app Mac native se construit en Swift avec Xcode : l’interface en SwiftUI, et en AppKit là où SwiftUI ne suffit pas. Mais le Mac n’est pas un grand iPhone. On y travaille des heures, avec plusieurs fenêtres, une barre de menus, des raccourcis clavier et des fichiers que l’on ouvre et enregistre. Avant d’écrire du code, deux décisions changent tout le reste : le canal de distribution — le Mac App Store, qui impose la sandbox, ou la distribution directe, signée Developer ID et notarisée — et le niveau d’accès au système dont votre app a réellement besoin.
Vérifié le
En bref
- Langage et outils
- Swift, Xcode, SwiftUI — avec AppKit pour ce que SwiftUI ne couvre pas
- Deux canaux
- Mac App Store (sandbox obligatoire, App Review) ou distribution directe (Developer ID + notarisation)
- Compte Apple
- Apple Developer Program : 99 USD par année d’adhésion, ou l’équivalent en monnaie locale — nécessaire pour notariser et publier
- Versions utiles
- macOS 13 pour MenuBarExtra et les éléments d’ouverture (SMAppService) ; macOS 14 pour SwiftData et @Observable
- Chez Bynilson
- Guide et ressources officielles ; co-construction ou réalisation étudiées au cas par cas
Trois façons de construire
Apprendre, construire ensemble, ou faire réaliser.
Apprendre et construire
Le parcours ci-dessous, étape par étape, renvoie chaque fois à la documentation officielle d’Apple. Build School enseigne les produits web, pas Swift : pour une app Mac, ce sont ce guide et les tutoriels d’Apple.
Construire ensemble
Vous gardez le code et les décisions ; la relecture porte sur l’architecture, la distribution et la sécurité, par écrit. Il n’y a pas encore d’app native publiée dans le portfolio Bynilson : la demande est étudiée au cas par cas, et la réponse peut être une orientation vers un spécialiste.
Le faire réaliser
Une demande décrit le produit, le canal de distribution visé et les accès système nécessaires. Elle est étudiée au cas par cas — sans forfait ni prix publié — et peut aboutir à un cadrage, à une alternative web, ou à l’adresse d’un studio spécialisé.
Pas encore d’application native publiée dans le portfolio Bynilson : une demande de co-construction ou de réalisation est étudiée au cas par cas, et la réponse peut être une orientation vers un spécialiste.
01 — Le Mac
Ce qui change sur un Mac
Les guidelines d’Apple décrivent un usage assis, à 30–90 cm d’un grand écran, souvent avec plusieurs apps ouvertes, pour quelques minutes ou plusieurs heures de concentration. Tout le design en découle.
- Plusieurs fenêtres
- Une app Mac peut ouvrir plusieurs fenêtres du même type (un document par fenêtre) ou des fenêtres uniques (un inspecteur, une bibliothèque). Leur taille, leur position et leur restauration au relancement font partie du produit.
- Pointeur et clavier
- Survol, clic droit, sélection multiple, glisser-déposer, raccourcis : les utilisateurs Mac attendent de tout faire au clavier quand ils connaissent l’app. Une interface pensée pour le doigt paraît lente et vide.
- La barre de menus
- Chaque commande importante a sa place dans un menu, avec son raccourci. Les menus servent aussi d’index : on y découvre ce que l’app sait faire.
- Des documents
- Beaucoup d’apps Mac créent, ouvrent et enregistrent des fichiers que l’utilisateur range où il veut. C’est un modèle différent du stockage caché d’une app iPhone.
- Des sessions longues
- Une app ouverte toute la journée doit rester légère en mémoire, reprendre où l’on s’était arrêté et ne jamais perdre une saisie.
Si vous avez déjà une app iPad, Mac Catalyst permet d’en tirer une version Mac depuis le même projet. Elle reste une app pensée pour l’iPad : menus, fenêtres et pointeur sont à adapter pour qu’elle paraisse à sa place.
02 — Interface
Fenêtres, menus, barres d’outils et raccourcis
SwiftUI décrit une app Mac en scènes : des fenêtres, une scène de réglages, des menus. Les briques ci-dessous suffisent à la plupart des apps.
- Fenêtres
- WindowGroup ouvre autant de fenêtres que nécessaire ; Window (macOS 13) déclare une fenêtre unique. La taille par défaut et la façon dont une fenêtre se redimensionne (WindowResizability, macOS 13) se déclarent sur la scène.
- Menus et commandes
- Le modificateur commands ajoute vos commandes aux menus standard (Fichier, Édition…) ou crée vos propres menus, chacune avec son raccourci clavier.
- Barre d’outils
- Les actions fréquentes vont dans la barre d’outils de la fenêtre (modificateur toolbar) ; les rares restent dans les menus.
- Réglages
- La scène Settings crée la fenêtre « Réglages… » du menu de l’app, ouverte par ⌘, — l’endroit où les utilisateurs Mac cherchent les préférences.
- Glisser-déposer
- draggable et dropDestination (macOS 13) font glisser du texte, des images ou des fichiers entre vos vues, vers le Finder ou depuis d’autres apps.
- Accessibilité
- VoiceOver, la navigation complète au clavier et la taille du texte se testent dès les premiers écrans. Les contrôles standard de SwiftUI et d’AppKit en font l’essentiel ; les vues sur mesure demandent des libellés explicites.
import SwiftUI
@main
struct NotesApp: App {
@State private var library = Library()
var body: some Scene {
WindowGroup {
NotesList(library: library)
.frame(minWidth: 480, minHeight: 320)
}
.commands {
// Adds “New Note” to the File menu, with ⇧⌘N.
CommandGroup(after: .newItem) {
Button("New Note") { library.add() }
.keyboardShortcut("n", modifiers: [.command, .shift])
}
}
}
}
@Observable
final class Library {
var notes: [String] = []
func add() { notes.append("Note \(notes.count + 1)") }
}
struct NotesList: View {
let library: Library
var body: some View {
List(library.notes, id: \.self) { Text($0) }
.toolbar {
Button("New Note", systemImage: "square.and.pencil") { library.add() }
}
}
}Typechecked: Xcode 27.1, macOS SDK 27.0, target macOS 14 — 2026-10-23
Les règles détaillées — tailles de fenêtres, structure des menus, raccourcis réservés — sont dans les Human Interface Guidelines pour macOS.
03 — Fichiers
Ouvrir, enregistrer et retrouver des fichiers
La manière dont votre app touche aux fichiers décide souvent de son canal de distribution. À régler avant les écrans.
- Panneaux Ouvrir et Enregistrer
- Quand l’utilisateur choisit un fichier ou un dossier dans le panneau du système (fileImporter / fileExporter en SwiftUI, NSOpenPanel / NSSavePanel en AppKit), macOS ouvre la sandbox à cet élément — et, pour un dossier, à tout son contenu.
- Retrouver l’accès au relancement
- Pour rouvrir le même fichier au lancement suivant sans redemander, l’app enregistre un signet à portée de sécurité (security-scoped bookmark), puis encadre chaque accès par startAccessingSecurityScopedResource et stopAccessingSecurityScopedResource.
- Apps à documents
- DocumentGroup (SwiftUI) et NSDocument (AppKit) fournissent le modèle de document du système : une fenêtre par document, Ouvrir, Enregistrer, documents récents.
- Types de fichiers
- Uniform Type Identifiers déclare les types que votre app ouvre ou crée, pour que le Finder sache quels fichiers lui confier.
- Le conteneur
- Une app sandboxée a un accès complet à son propre conteneur (dans ~/Library/Containers) et seulement ce que l’utilisateur lui donne ailleurs.
04 — Système
Arrière-plan, permissions et intégrations
- Utilitaire de barre de menus
- MenuBarExtra (macOS 13) place votre app dans la barre de menus. Pour qu’elle n’apparaisse pas dans le Dock, la clé LSUIElement d’Info.plist la déclare comme « agent ».
- Lancement à l’ouverture de session
- SMAppService (macOS 13) enregistre l’app ou un assistant comme élément d’ouverture. Sur le Mac App Store, rien ne peut démarrer à l’ouverture de session ni continuer à tourner après fermeture de l’app sans le consentement de l’utilisateur (règle 2.4.5(iii)).
- Permissions
- Caméra, micro, enregistrement de l’écran, contrôle d’autres apps via l’accessibilité, certains dossiers protégés : macOS demande l’accord de l’utilisateur. Expliquez dans l’interface, avant la demande, pourquoi l’app en a besoin — et prévoyez le cas du refus.
- Intégrations
- App Intents (macOS 13) expose vos actions à Raccourcis et à Spotlight ; WidgetKit ajoute des widgets ; des extensions de partage ou du Finder relient votre app au reste du système.
- Extensions bas niveau
- Extensions système, pilotes, privilèges administrateur : chaque capacité a ses propres règles et entitlements. Le Mac App Store interdit l’installation de kexts ou de code additionnel (2.4.5(iv)) et l’élévation en root (2.4.5(v)). Vérifiez chaque capacité dans la documentation d’Apple avant de vous engager : c’est souvent elle qui décide du canal.
import SwiftUI
@main
struct FocusTimerApp: App {
@AppStorage("minutes") private var minutes = 25
var body: some Scene {
// A menu bar utility. To keep it out of the Dock, set
// LSUIElement (“Application is agent”) to YES in Info.plist.
MenuBarExtra("Focus", systemImage: "timer") {
TimerPanel(minutes: minutes)
}
.menuBarExtraStyle(.window)
// Settings… (⌘,) — the standard macOS place for preferences.
Settings {
Form {
Stepper("Session: \(minutes) min", value: $minutes, in: 5...90, step: 5)
}
.padding()
.frame(width: 320)
}
}
}
struct TimerPanel: View {
let minutes: Int
@State private var running = false
var body: some View {
VStack(alignment: .leading, spacing: 12) {
Text(running ? "Session in progress" : "Ready: \(minutes) min")
.font(.headline)
HStack {
Button(running ? "Stop" : "Start") { running.toggle() }
.keyboardShortcut(.defaultAction)
SettingsLink { Text("Settings…") }
}
Divider()
Button("Quit") { NSApplication.shared.terminate(nil) }
.keyboardShortcut("q")
}
.padding()
.frame(width: 240)
}
}Typechecked: Xcode 27.1, macOS SDK 27.0, target macOS 14 — 2026-10-23
05 — Technologies
Les briques d’une app Mac, et quand les utiliser
SwiftUI
Le cadre d’interface déclaratif d’Apple, commun à toutes ses plateformes.
Quand : Par défaut pour une nouvelle app : fenêtres, menus, réglages, listes, formulaires.
Pas quand : Quand un contrôle Mac avancé n’existe pas encore en SwiftUI — on le prend alors dans AppKit.
AppKit
Le cadre historique des apps Mac, le plus complet sur macOS.
Quand : Éditeurs de texte riches, tableaux très denses, contrôle fin des fenêtres, code existant.
Pas quand : Pour tout réécrire par principe : on peut l’introduire écran par écran.
SwiftUI + AppKit
NSViewRepresentable place une vue AppKit dans SwiftUI ; NSHostingView fait l’inverse.
Quand : Presque toujours, à un moment : c’est la norme sur Mac, pas un aveu d’échec.
SwiftData / Core Data
Persistance locale : SwiftData (macOS 14) en Swift moderne, Core Data pour les projets existants ou des besoins avancés.
Quand : Données structurées gardées sur le Mac, avec ou sans synchronisation.
Pas quand : Pour des fichiers que l’utilisateur gère lui-même : c’est le modèle de document.
Keychain
Le trousseau du système, chiffré, pour les mots de passe, jetons et clés.
Quand : Dès qu’un secret est stocké sur le Mac — jamais dans UserDefaults ni dans un fichier.
Swift Package Manager
Le gestionnaire de dépendances intégré à Xcode.
Quand : Pour ajouter une bibliothèque ou découper votre propre code en modules.
Xcode
L’environnement pour écrire, tester, signer et distribuer.
Quand : Toujours : c’est lui qui produit l’app signée.
Sparkle
Framework open source de mises à jour, très utilisé hors App Store (non édité par Apple).
Quand : Distribution directe : vérifier, télécharger et installer une nouvelle version signée.
Pas quand : Sur le Mac App Store, qui seul distribue les mises à jour (2.4.5(vii)).
Sparkle — mises à jour pour apps macOS (open source)Sparkle project
Foundation Models / Core ML
Foundation Models (macOS 26) donne accès aux modèles d’Apple Intelligence ; Core ML exécute vos propres modèles sur l’appareil.
Quand : Outils IA de bureau qui doivent garder les données sur le Mac.
Pas quand : Si vos utilisateurs n’ont pas tous un Mac compatible Apple Intelligence : Foundation Models en dépend — prévoyez une alternative.
06 — Distribution
Mac App Store ou distribution directe
Sur Mac, contrairement à l’iPhone, les deux canaux sont légitimes. Ils imposent des règles différentes ; certaines apps existent même dans les deux.
| Mac App Store | Distribution directe (Developer ID) | |
|---|---|---|
| Sandbox | Obligatoire (règle 2.4.5(i)) | Recommandée, pas obligatoire |
| Contrôle par Apple | App Review, par des personnes, à chaque version | Notarisation : un scan automatisé, qui n’est pas une revue de l’app |
| Installation | Depuis l’App Store, sans installeur tiers (2.4.5(ii)) | Votre fichier (ZIP, DMG ou paquet d’installation), depuis votre site |
| Mises à jour | Uniquement par le Mac App Store (2.4.5(vii)) | Votre mécanisme, par exemple Sparkle — chaque version notarisée |
| Paiement | Achats intégrés d’Apple pour débloquer des fonctions (règle 3.1.1) | Vos propres moyens de paiement et licences |
| Licences | Pas d’écran de licence ni de clé au lancement (2.4.5(vi)) | Libres |
| Découverte | La recherche et les pages de l’App Store | Votre site, votre référencement, votre marketing |
- L’app doit accéder à des fichiers que l’utilisateur ne choisit pas un par un (sauvegarde, indexation, nettoyage).
- Outil pour développeurs qui exécute d’autres programmes ou installe des composants.
- Assistant privilégié, extension système ou pilote, quand Apple le permet hors App Store.
- Modèle économique par clés de licence ou licences en volume pour des entreprises.
- Un canal bêta et un rythme de mises à jour que vous maîtrisez.
Ce sont les cas où la distribution directe est un choix fondé, pas un contournement. Dans les deux canaux, l’app est signée ; seule la distribution directe demande la notarisation.
07 — Signature
Signer et notariser une app distribuée hors App Store
Gatekeeper vérifie, au premier lancement, qu’une app téléchargée est signée avec un certificat Developer ID et notarisée par Apple. Depuis macOS 10.15, tout logiciel distribué avec Developer ID et compilé après le 1er juin 2019 doit être notarisé.
- Adhérer à l’Apple Developer Program : Developer ID et notarisation n’existent pas avec un compte gratuit.
- Créer le certificat « Developer ID Application » — seul le titulaire du compte (Account Holder) peut le générer.
- Activer le Hardened Runtime dans Xcode : la notarisation l’exige.
- Envoyer l’app au service de notarisation avec notarytool (altool n’est plus accepté depuis le 1er novembre 2023).
- Agrafer le ticket à l’app avec stapler, puis la distribuer en ZIP ou en DMG.
# Once: store your notarization credentials in the Keychain.
xcrun notarytool store-credentials "notary" --apple-id "you@example.com" --team-id "TEAMID"
# Each release: zip the signed app, submit it, wait for the verdict.
ditto -c -k --keepParent "MyApp.app" "MyApp.zip"
xcrun notarytool submit "MyApp.zip" --keychain-profile "notary" --wait
# Attach the ticket to the app itself, then package it (ZIP or DMG).
xcrun stapler staple "MyApp.app"08 — Versions
Publier, mettre à jour, suivre macOS
- Numéros de version
- La version affichée (CFBundleShortVersionString) et le numéro de build (CFBundleVersion) avancent à chaque publication ; le canal de mise à jour s’appuie sur eux.
- Chaque version notarisée
- En distribution directe, chaque build publié repasse par la signature, la notarisation et l’agrafage. Automatisez-le dans un script dès la deuxième version.
- Canal de mise à jour
- Mac App Store : les mises à jour passent par App Store Connect, et TestFlight sert à la bêta. Distribution directe : un flux de mises à jour signé (celui de Sparkle, par exemple) et, si besoin, un canal bêta séparé.
- Déploiement progressif
- Publier d’abord à un petit groupe, regarder les plantages, puis élargir — c’est moins coûteux qu’une version à retirer.
- Le rythme d’Apple
- Une nouvelle version de macOS sort chaque automne, précédée de bêtas en juin. Testez votre app sur ces bêtas et décidez des versions de macOS que vous continuez à prendre en charge.
Avant de publier une version
09 — Exemples
Types d’apps Mac, et ce qui compte pour chacun
Des descriptions de catégories pour cadrer votre projet — pas des réalisations Bynilson.
- Productivité
- Plusieurs fenêtres, raccourcis pour tout, état restauré, synchronisation si l’utilisateur a plusieurs appareils.
- Utilitaires de barre de menus
- Une fonction, toujours à portée de main : MenuBarExtra, démarrage à l’ouverture de session avec consentement, très faible consommation.
- Outils IA de bureau
- Le Mac fait tourner des modèles en local (Core ML, Foundation Models sur Mac compatible) : un argument fort quand les données ne doivent pas quitter la machine.
- Gestion de fichiers
- Tout repose sur l’accès aux fichiers : c’est souvent la question qui décide entre sandbox et distribution directe.
- Vidéo et image
- Gros fichiers, rendus longs, beaucoup de mémoire : progression visible, annulation, travail en arrière-plan qui n’interrompt pas l’interface.
- Outils pour développeurs
- Terminal, Git, processus externes : ils touchent souvent hors de la sandbox — voir la section suivante.
- Logiciels métier
- Comptes d’équipe, données sensibles, déploiement à plusieurs postes : la distribution et les mises à jour comptent autant que l’interface.
- Flux professionnels
- Audio, mise en page, analyse : formats de fichiers, raccourcis et performances sont le produit.
10 — Outils dev
Outils pour développeurs sur Mac
- Un outil en ligne de commande
- Un exécutable Swift (créé avec Swift Package Manager) suffit souvent. Hors App Store, il doit être signé et notarisé comme une app.
- Une app de barre de menus
- Pour une fonction qu’on appelle souvent sans quitter son éditeur : un raccourci global, un statut, un lanceur.
- Une app complète
- Quand l’outil a des documents, des réglages et des fenêtres à lui.
Côté distribution, beaucoup d’outils pour développeurs passent par un téléchargement direct ou par Homebrew, un gestionnaire de paquets tiers très répandu : ce sont des options à vérifier selon votre public, pas des canaux d’Apple.
11 — Multiplateforme
Si vous avez aussi besoin de Windows ou de Linux
Un seul code pour trois systèmes est possible. Le prix se paie en taille d’app, en intégration au système ou en licences — rarement nulle part.
| Approche | Ce que vous obtenez | Ce que ça coûte |
|---|---|---|
| Une app native par système | SwiftUI/AppKit sur Mac, WinUI ou WPF (.NET) sur Windows, GTK ou Qt sur Linux : chaque app parfaitement à sa place | Deux ou trois codes à écrire et à maintenir |
| Tauri | Un cœur en Rust et une interface web affichée par le moteur web du système : des apps légères | Le rendu dépend du moteur web de chaque système, à tester sur chacun |
| Electron | Chromium et Node.js embarqués : un rendu identique partout, un écosystème mûr | Des apps plus lourdes en taille et en mémoire |
| .NET (WinUI, WPF, MAUI) | Des apps Windows natives ; MAUI vise aussi le Mac via Mac Catalyst | Sur Mac, l’intégration reste moins fine qu’en SwiftUI/AppKit |
| Qt | C++ ou QML, Windows, macOS et Linux depuis un même code | Licence open source (LGPL/GPL) ou commerciale à choisir avec soin |
12 — Cadrage
Cadrer votre app Mac en six questions
Distribution, accès aux fichiers, intégrations système, sécurité, arrière-plan, hors-ligne : vos réponses indiquent le canal le plus probable et ce qu’il faut vérifier avant d’écrire du code. Rien n’est enregistré.
Répondez à une question pour voir ce qui s’applique à votre app.
13 — Parcours
Le parcours, de l’idée à la première version publiée
Chaque étape renvoie à la ressource officielle qui l’explique. L’étape marquée « prévu » n’existe pas encore.
- 01
Définir ce que l’app fait sur un Mac
Une phrase : pour qui, quelle tâche, pourquoi sur Mac plutôt que dans un navigateur. Lire les fondamentaux du design pour macOS.
DisponibleConcevoir pour macOSApple
- 02
Choisir le canal de distribution
Mac App Store ou Developer ID, en fonction des fichiers et des accès système nécessaires — la section 06 et le cadrage ci-dessus.
- 03
Installer Xcode et créer le projet
Un projet « macOS App » avec une interface SwiftUI ; le lancer sur votre Mac fonctionne avec un compte Apple gratuit.
DisponibleXcodeApple
- 04
Les bases de Swift
Types, optionnels, structures et classes, closures, async/await.
DisponibleThe Swift Programming Language (le livre de référence)Swift.org
- 05
Les bases de SwiftUI
Vues, état, listes, navigation — les tutoriels d’Apple, en sachant qu’une partie vise l’iPhone.
DisponibleTutoriels SwiftUIApple
- 06
Fenêtres, menus et réglages
Scènes, commandes et raccourcis, scène Settings.
DisponibleCommands (menus)Apple
- 07
Fichiers et documents
Panneaux Ouvrir/Enregistrer, DocumentGroup, types de fichiers.
DisponibleDocumentGroup (apps à documents)Apple
- 08
Persister les données
SwiftData pour les données de l’app, sauvegarde et migration.
DisponibleSwiftDataApple
- 09
Sécuriser les secrets
Le trousseau pour tout mot de passe ou jeton.
DisponibleKeychain Services (trousseau)Apple
- 10
Configurer la sandbox et les entitlements
Activer seulement les accès nécessaires, puis tester l’app avec.
DisponibleConfigurer l’App Sandbox macOSApple
- 11
Tester
Tests unitaires avec Swift Testing, puis l’app réelle sur la plus ancienne version de macOS prise en charge.
DisponibleSwift TestingApple
- 12
Signer et distribuer
Notarisation pour la distribution directe ; App Store Connect et TestFlight pour le Mac App Store.
DisponibleNotariser un logiciel macOS avant distributionApple
- 13
Surveiller et itérer
Rapports de plantage, retours des utilisateurs, version suivante.
DisponibleRécupérer les rapports de plantageApple
- 14
Démonstration Bynilson : du projet vide au DMG notarisé
Un enregistrement d’écran sous-titré, pas à pas. Pas encore enregistré.
Prévu
Questions fréquentes
SwiftUI ou AppKit pour une nouvelle app Mac ?
SwiftUI par défaut : fenêtres, menus, réglages, listes et formulaires s’y décrivent bien. AppKit reste le cadre le plus complet sur Mac, et l’on y recourt pour un contrôle avancé ou du code existant — en l’intégrant écran par écran dans une app SwiftUI. La plupart des apps Mac sérieuses utilisent les deux.
Comment distribuer une app Mac ?
Par le Mac App Store (sandbox obligatoire, App Review, mises à jour par le Store) ou directement depuis votre site, avec une app signée Developer ID et notarisée par Apple. Les deux demandent une adhésion à l’Apple Developer Program.
Mac App Store ou distribution directe : que choisir ?
Le Mac App Store si votre app tient dans la sandbox et que la découverte par l’App Store vous importe. La distribution directe si l’app doit accéder largement aux fichiers ou au système, si vous vendez des licences, ou si vous voulez maîtriser les mises à jour. Le cadrage de cette page vous indique le canal probable.
Comment fonctionnent la signature et la notarisation ?
L’app est signée avec un certificat Developer ID, compilée avec le Hardened Runtime, puis envoyée avec notarytool au service de notarisation d’Apple, un scan automatisé. Le ticket obtenu est agrafé à l’app avec stapler ; au premier lancement, Gatekeeper le vérifie.
Puis-je développer une app Mac sans payer ?
Oui pour apprendre et tester : avec un compte Apple gratuit, Xcode compile et lance l’app sur votre Mac. Developer ID, notarisation, TestFlight et App Store Connect demandent l’Apple Developer Program, à 99 USD par année d’adhésion ou l’équivalent en monnaie locale.
Combien coûte le développement d’une app Mac ?
Cela dépend surtout des fichiers, des intégrations système et du canal de distribution — c’est pourquoi aucun prix n’est publié ici. Le coût fixe certain est l’adhésion Apple. Le constructeur de projet produit un périmètre et une feuille de route argumentés, pas un devis.
Mon app iPad peut-elle devenir une app Mac ?
Mac Catalyst permet de produire une version Mac depuis le même projet iPad. Elle fonctionne, mais reste pensée pour l’iPad : menus, fenêtres, pointeur et raccourcis sont à adapter pour qu’elle paraisse à sa place sur Mac.
Sources
- Documentation SwiftUIAppleVérifié le 23 oct. 2026
- Documentation AppKitAppleVérifié le 23 oct. 2026
- SwiftDataAppleVérifié le 23 oct. 2026
- Keychain Services (trousseau)AppleVérifié le 23 oct. 2026
- Paquets Swift (Swift Package Manager)AppleVérifié le 23 oct. 2026
- XcodeAppleVérifié le 23 oct. 2026
- Foundation Models (modèles Apple sur l’appareil)AppleVérifié le 23 oct. 2026
- Concevoir pour macOSAppleVérifié le 23 oct. 2026
- Developer ID (distribution hors App Store)AppleVérifié le 23 oct. 2026
- The Swift Programming Language (le livre de référence)Swift.orgVérifié le 23 oct. 2026
- Tutoriels SwiftUIAppleVérifié le 23 oct. 2026
- Commands (menus)AppleVérifié le 23 oct. 2026
- DocumentGroup (apps à documents)AppleVérifié le 23 oct. 2026
- Configurer l’App Sandbox macOSAppleVérifié le 23 oct. 2026
- Swift TestingAppleVérifié le 23 oct. 2026
- Notariser un logiciel macOS avant distributionAppleVérifié le 23 oct. 2026
- Récupérer les rapports de plantageAppleVérifié le 23 oct. 2026