2010-12-06 20 views
5

Lorsque vous appuyez sur le bouton "debug" dans eclipse, mon application est signée par une clé de débogage sous forme android qui est stockée dans le fichier "debug.keystore".Déboguer une application Android auto-signé? (Besoin de l'intégration de facebook)

Maintenant j'implémente le Facebook SDK qui me force à utiliser une application signée pour la fonctionnalité Single SignOn. De cette façon, j'ai besoin de générer le hash de mon keystore d'entreprises et de stocker celui dans notre compte de développeur facebook.

Je sais comment signer une application via l'assistant dans Eclipse (via AndroidManifest.xml). Comment déboguer une telle application signée? Puis-je modifier en quelque sorte la clé de débogage et configurer notre clé de société comme clé de débogage? Ou comment dois-je aller? À l'heure actuelle, je peux faire fonctionner FB uniquement en signant et en installant mon application sur un périphérique. J'ai déjà essayé de générer un hachage de la clé de débogage sans aucune chance ...

+0

Une chance que vous pouvez faire déboguer la manière primitive, via la progression/"oops" des messages dans logcat? –

+0

Ok, mais ce n'est pas cool ... – OneWorld

+0

Vous configurez l'android: debuggable = true? – blindstuff

Répondre

3

Je ne vous recommande pas de définir votre clé de société comme clé de débogage, mais vous pouvez le faire en remplaçant le fichier de clés de débogage Eclipse nommé debug. fichier de clés Vous pouvez trouver son emplacement sur votre système d'exploitation en lisant le this.

Une meilleure solution serait de générer le hachage de la clé de débogage - suivez les instructions données sur la page officielle SDK pour Android, et assurez-vous de mentionner le fichier keystore correct, et l'alias "androiddebugkey". Le mot de passe est toujours "android".

+0

Oui, j'ai essayé "la meilleure solution" sans succès. C'était la commande pour générer le hachage: keytool -exportcert -alias android -keystore debug.keystore | openssl sha1 -binaire | openssl enc -a -e Je reconnais simplement que j'ai peut-être choisi le mauvais alias. En ce qui concerne le lien u posté ci-dessus, je dois utiliser "androiddebugkey" au lieu de "android". Je vais essayer cela plus tard un certain temps – OneWorld

+0

Oups, je suis désolé de dire "pas d'alias" - J'ai réalisé que l'alias était androiddebugkey. Je me suis rendu compte que lorsque je faisais un test final de mon application. Le mot de passe de cet alias est android. Ça a bien marché pour moi! –

+0

ŒUVRES! Avec le bon alias ... keytool -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binaire | openssl enc -a -e – OneWorld

4

Juste au cas où quelqu'un veut

changement de la façon ou d'autre clé de débogage et mettre en place nos sociétés clés comme débogage clé

comme l'affiche originale demande, vous pouvez le faire en utilisant keytool comme si:

STORE_PASS=<pass_of_company_store> 
ALIAS=<alias_of_key_in_company_store> 
ALIAS_PASS=<pass_alias> 
keytool -importkeystore -v -noprompt \ 
    -srckeystore /path/to/company/key -destkeystore debug.keystore \ 
    -srcstorepass $STORE_PASS -deststorepass android \ 
    -srcalias $ALIAS -destalias androiddebugkey \ 
    -srckeypass $ALIAS_PASS -destkeypass android 

Vous pouvez remplacer votre debug (peut-être ~/.android/debug.keystore) avec le nouveau que cela génère, et éclipse l'utilisera heureusement pour construire des apks qui peuvent être entièrement débogués et acceptés par facebook.

Notez que vous devez faire très attention avec ce nouveau debug.keystore. Il ne peut pas tomber entre de mauvaises mains ou votre application peut facilement être piratée sur le Google Play Store.