Xcode: qu'est-ce qu'un objectif et un schéma en langage clair?
205
Oui, le titre le dit :-) Que signifient-ils en langage simple anglais? Je ne comprends vraiment pas l'explication sur le site Web d'Apple et je dois renommer ma cible et j'ai peur que rien ne fonctionne après cela ..
Espace de travail - Contient un ou plusieurs projets . Ces projets sont généralement liés les uns aux autres
Projet - Contient du code et des ressources, etc. (vous y serez habitué!)
Cible - Chaque projet a une ou plusieurs cibles.
Chaque cible définit une liste de paramètres de construction pour ce projet
Chaque cible définit également une liste de classes, de ressources, de scripts personnalisés, etc. à inclure / utiliser lors de la construction.
Les cibles sont généralement utilisées pour différentes distributions d'un même projet.
Par exemple, mon projet a deux cibles, une build "normale" et une build "office" qui a des fonctionnalités de test supplémentaires et peut contenir plusieurs pistes de musique de fond et un bouton pour changer la piste (comme c'est le cas actuellement).
Vous serez habitué à ajouter des classes et des ressources à votre cible par défaut au fur et à mesure que vous les ajoutez.
Vous pouvez choisir quelles classes / ressources sont ajoutées à quelle cible.
Dans mon exemple, j'ai une classe "DebugHandler" qui est ajoutée à ma version de bureau
Si vous ajoutez des tests, cela ajoute également une nouvelle cible.
Schéma - Un schéma définit ce qui se passe lorsque vous appuyez sur "Build", "Test", "Profile", etc.
Habituellement, chaque cible a au moins un schéma
Vous pouvez créer automatiquement des schémas pour vos cibles en allant dans Schéma> Gérer les schémas et en appuyant sur «Créer automatiquement des schémas maintenant»
Essayons si j'ai bien compris ... Je programme une application et fais deux cibles. Une que je téléchargerai sur l'App Store et une dans laquelle je développerai déjà la prochaine version de la même application. Et dans les schémas, je fais par exemple un schéma dans les deux cibles à exécuter et un schéma pour le débogage? Mais pourquoi ai-je besoin de schémas différents pour cela? Je ne comprenais pas l'avantage de celui de BJ Homer ..
MichiZH
FWIW, je n'utilise pas de schémas différents pour la publication et le débogage, sauf si j'ajoute des fonctionnalités de débogage supplémentaires comme je le décris dans ma réponse.
James Webster
2
Superbe explication frère! ! !
Sagar Kalathil
6
que voulez-vous dire que votre build de bureau a un bouton de musique en bas. Votre application actuelle a-t-elle du code supplémentaire qui n'est activé que dans la version Office ou la musique est-elle exécutée sur votre Mac? Désolé, je suis confus
3366784
Ce type de définit les éléments qui composent chaque concept, mais pas le but de chaque élément. Pour moi, c'est ce que le PO demandait.
O'Rooney
67
Une cible est un produit final créé en exécutant "build" dans Xcode. Il peut s'agir d'une application, d'un framework, d'une bibliothèque statique ou d'un bundle de tests unitaires. Quoi qu'il en soit, il correspond généralement à un seul élément du dossier "produits construits".
Un schéma représente un ensemble de cibles avec lesquelles vous travaillez ensemble. Il définit les cibles à utiliser lorsque vous choisissez diverses actions dans Xcode (Exécuter, Tester, Profil, etc.) Souvent, vous n'aurez qu'un seul schéma, qui utilise la cible principale de l'application pour les actions Exécuter, Archiver et Profil, et un cible de test unitaire pour l'action Test. Si vous construisiez deux applications liées, vous pourriez avoir deux schémas qui utilisaient le même ensemble de tests unitaires mais des cibles d'application différentes.
Le principal avantage des schémas (introduits dans Xcode 4) est qu'ils vous permettent de basculer entre l'exécution de votre application et vos tests unitaires sans avoir à basculer la cible sélectionnée.
Je suis une personne visuelle, donc pour expliquer le concept, je vais utiliser un diagramme.
Lorsque vous avez plusieurs cibles, elles peuvent être mises en correspondance un à un avec les actions Exécuter, Tester, Profil de Xcode, ce concept définit un schéma
Une cible est une version de votre projet , c'est-à-dire que les cibles diffèrent légèrement dans les classes et les ressources à utiliser pendant la construction. Un projet peut avoir plusieurs paramètres de temps de construction pour des exigences de distribution distinctes.
Ce diagramme semble faux. Un schéma doit être lié à une cible particulière, je ne vois pas où dans un schéma vous pouvez avoir plusieurs cibles.
Boon
6
@Boon Non, carelesslyChoosy est correct. Dans l'éditeur de schéma, cliquez sur l'élément «build» à gauche. Dans la zone de droite, cliquez sur «+» et vous pouvez ajouter d'autres cibles à ce schéma. Cochez les cases souhaitées. Les exécutables de ces cibles sont ensuite disponibles dans les autres actions (Exécuter, Profil, etc.) dans la liste déroulante des exécutables.
occulus
C'est bien mais il manque la partie de configuration de construction des schémas. Je pense au schéma comme une collection de la façon dont les actions (Run, Test, Profile) correspondent à une combinaison de cibles et de configurations de construction (débogage, version, qa, prod, etc.).
Steve Moser
3
Workspace( .xcworkspace) - est un conteneur de multiples projects. Il a été créé comme une prochaine étape de cross-project references[À propos]
Workspacecontient tout schemesde inclusprojects
Workspacegère tout implicit dependencies[À propos]
Observations:
Il est sûr de travailler avec différents projets à l'intérieur d'un même workspaceet de ne pas intercepterCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods[À propos] travailler avecworkspaceoù crée le Podsprojet
Project( .xcodeproj) - C'est un conteneur pour targetset scheme. Il définit les fichiers de code, les ressources ...
Target- PBXNativeTargetsection. Définit un ensemble spécifique de paramètres de génération qui génèrent:
Application target
Library and framework targets
Test
Aggregate[À propos] . Par exemple, il est utilisé pour créer unUniversal frameworkouUmbrella framework
Scheme- une Project'sconfiguration pour l'action dans Xcode: exécuter , tester , profiler , analyser et archiver . Schemapeut être partagé ce qui vous aide dans CI, Carthage... et localisé:
Dependency- Targetspeut avoir dependencies. La dépendance est un lien source contre. Ces dépendances peuvent être liées statiquement ou dynamiquement [À propos] Il en existe deux types:
Explicit Dependency[À propos] - Code source de la dépendance qui se trouve dans le même projet ou projet imbriqué
Implicit Dependency[À propos] - Code source / fermé de la dépendance qui se trouve dans le projet qui fait partie du même espace de travail.
Réponses:
J'ai également ajouté dans Workspace et Project!
la source
Une cible est un produit final créé en exécutant "build" dans Xcode. Il peut s'agir d'une application, d'un framework, d'une bibliothèque statique ou d'un bundle de tests unitaires. Quoi qu'il en soit, il correspond généralement à un seul élément du dossier "produits construits".
Un schéma représente un ensemble de cibles avec lesquelles vous travaillez ensemble. Il définit les cibles à utiliser lorsque vous choisissez diverses actions dans Xcode (Exécuter, Tester, Profil, etc.) Souvent, vous n'aurez qu'un seul schéma, qui utilise la cible principale de l'application pour les actions Exécuter, Archiver et Profil, et un cible de test unitaire pour l'action Test. Si vous construisiez deux applications liées, vous pourriez avoir deux schémas qui utilisaient le même ensemble de tests unitaires mais des cibles d'application différentes.
Le principal avantage des schémas (introduits dans Xcode 4) est qu'ils vous permettent de basculer entre l'exécution de votre application et vos tests unitaires sans avoir à basculer la cible sélectionnée.
la source
Je suis une personne visuelle, donc pour expliquer le concept, je vais utiliser un diagramme.
Lorsque vous avez plusieurs cibles, elles peuvent être mises en correspondance un à un avec les actions Exécuter, Tester, Profil de Xcode, ce concept définit un schéma
Une cible est une version de votre projet , c'est-à-dire que les cibles diffèrent légèrement dans les classes et les ressources à utiliser pendant la construction. Un projet peut avoir plusieurs paramètres de temps de construction pour des exigences de distribution distinctes.
la source
Workspace
(.xcworkspace
) - est un conteneur de multiplesprojects
. Il a été créé comme une prochaine étape decross-project references
[À propos]Workspace
contient toutschemes
de inclusprojects
Workspace
gère toutimplicit dependencies
[À propos]Observations:
workspace
et de ne pas intercepterCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods
[À propos] travailler avecworkspace
où crée lePods
projetProject
(.xcodeproj
) - C'est un conteneur pourtargets
etscheme
. Il définit les fichiers de code, les ressources ...Target
-PBXNativeTarget
section. Définit un ensemble spécifique de paramètres de génération qui génèrent:Application target
Library and framework targets
Test
Aggregate
[À propos] . Par exemple, il est utilisé pour créer unUniversal framework
ouUmbrella framework
Scheme
- uneProject's
configuration pour l'action dans Xcode: exécuter , tester , profiler , analyser et archiver .Schema
peut être partagé ce qui vous aide dans CI,Carthage
... et localisé:Dependency
-Targets
peut avoirdependencies
. La dépendance est un lien source contre. Ces dépendances peuvent être liées statiquement ou dynamiquement [À propos] Il en existe deux types:Explicit Dependency
[À propos] - Code source de la dépendance qui se trouve dans le même projet ou projet imbriquéImplicit Dependency
[À propos] - Code source / fermé de la dépendance qui se trouve dans le projet qui fait partie du même espace de travail.[Vocabulaire]
la source