2010-06-03 44 views
2

Possible en double:
How to open-source an application that uses API keysDois-je cacher ma clé API Flurry dans mon application open source?

J'ai une open source Android app que je comptais sur l'ajout Flurry de suivi pour. Flurry crée une clé API unique pour le suivi de votre application. Ai-je besoin d'essayer de masquer cette clé API dans mon code source (c'est-à-dire de ne pas l'inclure et de l'ajouter chaque fois que je compile pour la version) ou de ne pas m'en soucier?

Répondre

2

-je utiliser Google Code comme un dépôt svn et pour l'une de mes clés api-je mettre un espace réservé dans strings.xml et assurez-vous de les vide si je vérifie quelque chose dans.

+4

J'ai fini par faire ça. Mais j'ai créé une autre API Flurry pour test/dev et l'ai vérifiée au lieu de laisser l'API vide. Par conséquent, la clé de production n'est pas archivée et si quelqu'un saisit le code, il y aura une clé de travail et cela ne faussera pas les statistiques de production. –

2

Est-ce que d'autres personnes vont télécharger ce projet open source et construire leurs propres versions? Si c'est le cas, je laisserais la clé de l'API et placerais un fichier de configuration (avec le nom/valeur) chargé par le code. Ou est-ce que cela va être open source juste pour permettre à beaucoup de gens de travailler dessus? Dans ce cas, il pourrait être plus facile de le laisser.

Personnellement, je voudrais aller avec le fichier de configuration, peu importe quoi et laissez-le. Si ce n'est que parce que quelqu'un d'autre pourrait obtenir votre clé API, ajoutez-la à son application et manipulez vos données. Cela, et chaque fois que vous créez et exécutez dans l'environnement de test, cela affectera vos statistiques.

+0

C'est simplement un projet open source hébergé sur Google Code. C'est juste moi qui travaille dessus, mais le code est disponible pour n'importe qui regarder ou faire tout ce qu'ils veulent. J'ai construit l'application est un exemple d'application idéale pour Android (voir: http://code.google.com/p/tippytipper/). Je pense qu'un fichier de configuration est une bonne idée, merci! –

5

Les applications de cette nature devraient avoir un fichier de configuration qui est seul en dehors du référentiel. Au lieu de valider le fichier lui-même, créez une version «échantillon» du fichier qui est validée dans le référentiel, qui contient tous les paramètres nécessaires, mais uniquement des données fictives. Ensuite, dans votre application, chargez dynamiquement le "vrai" fichier de configuration.

Lorsqu'un autre développeur extrait le code, il doit effectuer une configuration initiale simple. Un de ces éléments consiste à faire une copie de l'exemple de fichier de configuration et à le renommer, puis à le mettre à jour avec ses propres paramètres privés pour les clés, mots de passe, etc.