Не могу создать подписанный APK в GitLab CI - PullRequest
0 голосов
/ 04 июля 2019

Я тестирую gitlab ci / cd и пытаюсь создать подписанный APK, но мой скрипт не удался.Что я должен изменить или добавить?

Я добавляю переменные KEYSTORE_FILE, KEYSTORE_PASSWORD, KEY_ALIAS, KEY_PASSWORD со значениями.

assembleRelease:
 stage: release
 script:
 - echo $KEYSTORE_FILE | base64 -d > my.keystore
 - ./gradlew assembleRelease
 -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
 -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
 -Pandroid.injected.signing.key.alias=$KEY_ALIAS
 -Pandroid.injected.signing.key.password=$KEY_PASSWORD
  artifacts:
  paths:
  - app/build/outputs/apk/release

Ошибка:

FAILURE: Build failed with an exception.
What went wrong:
Execution failed for task ':app:packageRelease'.
1 exception was raised by workers:
java.lang.RuntimeException: 
com.android.ide.common.signing.KeytoolException: Failed to read key  from 
store "/builds/juantamad.02072019/2019_samplebuild/my.keystore": null

Но это должно бытьуспешно

1 Ответ

1 голос
/ 04 июля 2019

При условии, что у вас есть правильные отступы (поскольку они опубликованы, это не так), проблема, вероятно, вызвана многострочной командой - она ​​просто сначала выполняется - ./gradlew assembleRelease, без дальнейших аргументов

Для переноса длинныхВ строке можно использовать многострочные строки YAML:

  script:
   - ...
   - >
     ./gradlew assembleRelease
       -Pandroid.injected.signing.store.file=$(pwd)/my.keystore
       -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD
       -Pandroid.injected.signing.key.alias=$KEY_ALIAS
       -Pandroid.injected.signing.key.password=$KEY_PASSWORD

Подробнее:

-

Другая возможная причина - если ваш env var установлен как Защищено в настройках проекта,
и вы работаете в ветке, которая не защищена .
Тогда var не передается на вашу работу

...