2017-04-24 1 views
0

J'ai besoin de deux fonctionnalités que je n'ai pas réussi à trouver. La première consiste à modifier le nom d'une configuration Xcode via un script bash. Pour cela, j'ai essayé:Xcode 8 Modifier la configuration via la ligne de commande

xcodebuild -target "target name" -configuration existingConfig CONFIGURATION=newConfigName 

La commande ci-dessus s'exécute avec succès mais ne change pas le nom de la configuration. Il compile simplement la source. C'est probablement à prévoir si j'utilise xcodebuild.

Pour modifier le nom de la configuration, j'ai également examiné les fichiers xcconfig. Par exemple, je voudrais créer un dans Xcode avec le nom projectname-existingConfigName.xcconfig et je voudrais ajouter un nouveau nom de configuration comme ceci:

CONFIGURATION = NewConfigName 

Cependant, dans le cas ci-dessus, je crains que je ne l'utilise Fichiers xcconfig correctement. Y a-t-il une bonne référence à ce sujet quelque part?

La deuxième fonctionnalité pour laquelle je n'ai pas pu trouver de support est l'ajout d'une nouvelle configuration à la volée via bash ou via xcconfig.

En fin de compte, je voudrais effectuer cela en utilisant bash, mais je suis ouvert à d'autres opinions qui ne comprennent pas l'ouverture de Xcode pour le faire. J'utilise des sous-modules git ici et je les intègre et j'ajoute des configurations dynamiques pendant le temps de construction de CI. C'est de là que vient ce problème.

Il y a peut-être un moyen plus simple de le faire mais je pensais poser ma question ici d'abord pour voir si je suis sur la bonne voie.

Répondre

0

Il existe une gemme ruby ​​appelée Xcodeproj qui est également utilisée par CocoaPods. Cela vous permet essentiellement de voir le fichier projet en tant qu'objet, de le changer et enfin de le sauvegarder. Le code suivant doit répondre à la première partie de votre question sur le renommage:

#!/usr/bin/ruby 
require 'xcodeproj' 

project_path = '../folder/yourproject.xcodeproj' 
project = Xcodeproj::Project.open(project_path) 

project.build_configurations.each do |configuration| 
    if configuration.name == "existingConfig" 
     configuration.name = "NewConfigName" 
    end 
end 

project.save() 

Ajout d'une nouvelle configuration devrait également être possible avec Xcodeproj, mais qui est quelque chose que je ne l'ai pas encore fait. Documentation se trouve ici:

https://github.com/CocoaPods/Xcodeproj http://www.rubydoc.info/gems/xcodeproj/Xcodeproj/Project