Workplace, Project, Scheme e Target nello sviluppo iOS
Molti di noi hanno visto workspace, project, targete schemeabbastanza spesso durante lo sviluppo di iOS, ma cosa sono esattamente e come sono collegati tra loro?
Posto di lavoro
Workplace in Xcode è uno strumento per la gestione e l'organizzazione dei file di progetto. Ti consente di navigare e modificare facilmente il tuo codice, nonché di gestire le risorse del tuo progetto come immagini, file audio e altre risorse. Workplace può aiutarti a rimanere organizzato ed efficiente quando lavori a progetti grandi o complessi in Xcode. Contiene uno o più progetti, solitamente denominati come file [workspace_name].xcworkspace. Questo è spesso visto durante l'utilizzo cocoapodsdi per gestire le librerie. Ogni posto di lavoro ha uno o più progetti.
Progetto
Contiene codice e risorse, normalmente denominate come [project_name].xcodeproj. Analogamente, un progetto è un contenitore per tutti i file, le risorse e le informazioni necessarie per creare un'app. Organizza tutti i componenti necessari e fornisce un unico luogo in cui gli sviluppatori possono lavorare sul codice e sulle risorse.
Quando crei un nuovo progetto in Xcode, ti viene chiesto di scegliere un modello per il progetto. Questo modello determina il tipo di app che stai creando e configura i file e le risorse necessari per tale app. Ad esempio, se scegli il modello "App a vista singola", Xcode creerà un progetto con un'interfaccia utente di base e un controller a vista singola.
Obbiettivo
Un "target" è un prodotto specifico creato dai file nel progetto.
- Ogni progetto ha uno o più obiettivi
- Utilizzato per diverse distribuzioni dello stesso progetto, ad esempio, il progetto richiede di avere una
proversione e unanormalversione, la cui versione pro ha caratteristiche leggermente diverse come icone diverse e così via. - Utilizzato per aggiungere un'estensione, ad esempio l'aggiunta di un'estensione per Apple Watch e così via. Con l'orologio e il widget Apple (iOS 14 e versioni successive), possiamo avere più estensioni per un'app.
- Utilizzato per aggiungere test, ad esempio test unitari e test dell'interfaccia utente
- La firma è su ciascuno degli obiettivi, il che significa che possiamo avere
Uno "schema" è un insieme di istruzioni che specifica quali obiettivi devono essere compilati, quali test devono essere eseguiti e quali configurazioni di compilazione devono essere utilizzate durante la creazione del progetto.
- Ogni obiettivo ha uno o più schemi
- Scheme definisce la configurazione su
Build,RuneTestcosì via. Ad esempio, nel target Unit test, possiamo definire quali unit test possono essere eseguiti, inoltre possiamo escludere alcuni unit test durante il test.

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































