簡體   English   中英

無法在GitLab CI中生成簽名的APK

[英]Can't generate signed APK in GitLab CI

我正在測試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

但這應該成功

如果您有正確的縮進( - ./gradlew assembleRelease ),則該問題很可能是由多行命令引起的-它只是執行- ./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

閱讀更多:

-

另一個可能的原因-如果您的環境變量在項目設置中設置為“ 受保護”
並且您正在不受保護的分支中工作。
然后var不會傳遞給您的工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM