2017-12-18 5 views
-2

Ich habe eine Android App, die Filme mit der MovieDB.org API zeigt.Wie kann man TheMovieDB API_KEY für Travis-CI verschlüsseln und verwenden?

Ich habe die für die Verschlüsselung folgend getan meine theMovieDB.org API_KEY für TRAVIC CI:

gem install --user travis 
    travis encrypt API_KEY = my_api_key --add 

Also, im Grunde schafft es einen sicheren Schlüssel und speichert ihn in .travis.yml. Aber es scheint nicht zu funktionieren. Ich erhalte folgenden Fehler:

Execution failed for task ':app:compileDebugJavaWithJavac'. 
    > Compilation failed; see the compiler error output for details. 

Ich weiß, dass ich diesen Fehler bekomme, weil Travis CI meine API_KEY nicht herausfinden konnte. Denn wenn ich meinen Schlüssel direkt benutze, übergibt travis CI den Build. Aber leider nicht mit dem Schlüssel mit dem oben genannten Code zu verschlüsseln. Ich mache alles, was sie in der Dokumentation erwähnt haben.

Das ist mein .tavis.yml:

language: android 

env: 
    global: 
    secure: some_lengthy_secure_key 

android: 
    components: 
      - platform-tools 
      - build-tools-25.0.3 
      - android-25 
      - extra-android-m2repository 
script: 
    - ./gradlew build 

before_install: 
    - chmod +x gradlew 

branches: 
    only: 
      - master 

Das ist mein Projekt: https://github.com/Parag2385/PopularMovies-P

+0

Der Fehler zeigt deutlich, dass Ihre * Kompilierung * fehlschlägt. Was lässt Sie glauben, dass das etwas mit dem API-Schlüssel zu tun hat? Dieser Schlüssel wird nicht verwendet, bis Ihr Programm ausgeführt wird. –

+0

Da, wenn ich mein Projekt auf Android-Studio ohne API_KEY kompiliere gibt es mir genau den gleichen Fehler. Und mit API_key erfüllt es erfolgreich und läuft auf Emulator und auch auf dem eigentlichen Gerät. Also, was könnte der Grund noch sein? –

+0

Und auch wenn ich meine API_KEY in der Datei "gradle.properties" aufbewahre und dann auf travis CI aufbaute, gibt es mir nicht den Fehler, stattdessen wird Build erfolgreich übertragen. Aber aus Sicherheitsgründen kann ich meinen API_KEY nicht in einem GitHub Repo behalten, richtig? –

Antwort

0

ich mit den commen zustimmen würde, die Ihre Diagnose scheint nicht den Fehler entsprechen, die Sie beschreiben. Wie auch immer:

konnte entfernen Sie die Räume um travis encrypt API_KEY = my_api_key --add, so daß es:

travis encrypt 'API_KEY=my_api_key' --org -r Parag2385/PopularMovies-P 

Bitte beachten Sie einige zusätzliche Änderungen:

  • Added Anführungszeichen um die Variablenzuweisung. Bitte überprüfen Sie, dass im Schlüssel keine einfachen Anführungszeichen stehen.
  • Hinzugefügt einige Dinge, um sicherzustellen, dass das richtige Projekt auf dem richtigen Endpunkt ausgewählt ist
  • entfernt die --add Sache, also bitte kopieren Sie die resultierende Zeichenfolge an der entsprechenden Stelle in. Travis.yml. Dies ist so, dass Sie die Möglichkeit haben, den vorherigen, falschen Eintrag zu entfernen :)
Verwandte Themen