web-dev-qa-db-fra.com

Comment changer le répertoire de sortie d'une cible

J'utilise un espace de travail dans lequel j'ai un projet principal, puis un projet de bibliothèque statique utilisé par l'application principale. Je souhaite que le projet de bibliothèque statique crache libX.a dans le répertoire principal du projet de l'application, car je souhaite insérer ce libX.a dans mon dépôt Git. 

Le changement de paramètres de chemin de construction pour le projet de bibliothèque statique doit être placé dans son propre dépôt git afin que les autres utilisateurs ne soient pas obligés de gérer ce changement encore et encore.

J'ai essayé de changer 'Build Products Path' en "$ (SRCROOT) /../ SharedData" pour la cible de la bibliothèque statique mt mais cela n'a aucun effet.

Merci!

47
Kuldeep Kapade
  1. Allez dans Fichier -> Paramètres du projet. 

  2. Cliquez sur le bouton Avancé sous Emplacement des données dérivées. Sous build emplacement sélectionnez personnalisé et choisissez votre répertoire de sortie. Cette volonté remplacez la variable $ (BUILD_DIR) par tout ce que vous avez défini dans ce champ.

  3. Cliquez sur Terminé et accédez aux paramètres de votre cible. Sous Emplacement de construction, vous peut maintenant spécifier où les cibles sont produites en fonction de cela Macro $ (BUILD_DIR).

45
Jeff Sternberg

Mise à jour des instructions pour Xcode 5 jusqu'à 6.3.

  1. Go to File -> Project settings
  2. Click the Advanced button
  3. Select "Custom" and select "Relative to Workspace" in the pull down
  4. click done, done

Et vous avez terminé!

37
gp-coder

Voici une solution que vous pouvez vérifier dans le contrôle de code source et que je vérifie déjà qui fonctionne avec Xcode 6.2.

  1. Ajoutez un fichier .xcconfig à votre projet - voir cette question SO pour plus de détails.
  2. Dans le fichier .xcconfig, spécifiez les variables d'environnement standard Xcode PROJECT_TEMP_DIR, CONFIGURATION_BUILD_DIR et BUILT_PRODUCTS_DIR pour indiquer l'endroit où les fichiers doivent être terminés.

En lisant la référence de format xcconfig de Apple, il semblerait que le simple fait de remplacer OBJROOT et SYMROOT dans le fichier .xcconfig ferait l'affaire - mais dans mes tests sur Xcode 6.2, leur modification n'a aucun effet. Vous devez modifier ces trois variables d’environnement spécifiques répertoriées ci-dessus.

C'est ce que j'ai mis dans un fichier Xcode 6.2 .xcconfig afin que les fichiers intermédiaires et les exécutables se placent dans leurs emplacements "traditionnels":

// Intermediate build files go here
PROJECT_TEMP_DIR = $(SRCROOT)/build/$(PROJECT_NAME).build

// Build-related files for the active build configuration go here
CONFIGURATION_BUILD_DIR = $(SRCROOT)/build/$CONFIGURATION

// The final product executables and other build products go here
BUILT_PRODUCTS_DIR = $(SRCROOT)/build/$CONFIGURATION
24
Bob Murphy

Selon @ gp-coder, le scénario suivra pour xcode 9. * Suivez les étapes indiquées dans l'image

 enter image description here  enter image description here  enter image description here

Et Do Done

C'est tout, merci

6
Abhishek Mitra

Si vous souhaitez modifier le chemin de génération de votre projet, vous pouvez modifier les étapes suivantes.

1) Choisissez Xcode> Préférences, puis cliquez sur Emplacements.

2) Cliquez sur le bouton Avancé pour le paramètre Données dérivées.

3) Sélectionnez un emplacement de construction parmi les options disponibles, puis cliquez sur Terminé.

ex. si vous choisissez "Personnalisé" dans Emplacement de construction option, votre construction sera générée à l'emplacement suivant: "Utilisateurs/XYZ/Bureau/Construction/Produits" Emplacement

4
Hardik Thakkar

Dans Xcode 8.x, j'ai défini le répertoire dérivé avec une option de ligne de commande dans un fichier .sh qui construit le projet. Les développeurs peuvent créer dans leurs répertoires utilisateur (préférence Xcode par défaut), tandis que la version officielle crée la version dans le domaine traditionnel:

SCRIPT_DIR = "$ (cd" $ (nom de répertoire "$ {BASH_SOURCE [0]}") "&& pwd)"

xcodebuild -workspace 'mon projet.xcworkspace' -scheme 'mon projet' -configuration Release -derivedDataPath '$ SCRIPT_DIR/build'

1
DaveSawyer