2016-10-25 1 views
1

Existe-t-il un moyen de transmettre des variables à mes tests d'unité d'application iOS via la ligne de commande et xcodebuild? Cas d'utilisation: J'ai configuré Travis CI et je souhaite transmettre des données sensibles (personne ne devrait le voir) à mes tests. Mais mon projet est 100% open sourcexcodebuild passe les arguments à l'application sur iOS

Répondre

0

J'ai fini avec cette solution:

xcodebuild -workspace "..." -scheme "..." -sdk "..." -destination "..." -configuration Release SECRET_ARG1="$SECRET_VALUE1" SECRET_ARG2="$SECRET_VALUE2" build test;

ensuite dans les paramètres cible de test de construction ajouter ces valeurs:

Enfin, vous pouvez accéder à votre valeurs à l'aide macro:

#define STRINGIZE(x) #x

#define STRINGIZE2(x) STRINGIZE(x)

Maintenant, cela resove aussi constante NSString:

@STRINGIZE2(SECRET_ARG1);

Lors de la construction avec Travis CI vous pouvez passer vos valeurs secrètes à l'environnement en utilisant les paramètres du projet, ou chiffrer et de les placer dans votre travis. fichier yml (la seconde est plus flexible et vous permet d'utiliser différentes valeurs secrètes dans un fichier travis.yml, mais ce n'est pas si rapide et pratique)

+0

Est-il possible de passer des arguments lors de l'archivage plutôt que de tester? –

+0

@SazzadHissainKhan Je crois oui, mais je n'ai jamais essayé – user3237732

+0

Merci. ça a déjà marché. –