无法在 GitLab 中生成签名的 APK CI
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
不过应该可以成功
如果你有正确的缩进(如发布的那样,它们不是),问题很可能是由 multi-line 命令引起的 - 它只是先执行 - ./gradlew assembleRelease
,没有进一步的参数
要换行,您可以使用 YAML multi-line 字符串:
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
阅读更多:
- In YAML, how do I break a string over multiple lines?
- https://gitlab.com/snippets/1717579
--
另一个可能的原因 - 如果您的环境变量在项目设置中设置为 Protected,
并且您在 不受保护 .
的分支机构工作
然后 var 没有传递给你的工作
我正在测试 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
不过应该可以成功
如果你有正确的缩进(如发布的那样,它们不是),问题很可能是由 multi-line 命令引起的 - 它只是先执行 - ./gradlew assembleRelease
,没有进一步的参数
要换行,您可以使用 YAML multi-line 字符串:
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
阅读更多:
- In YAML, how do I break a string over multiple lines?
- https://gitlab.com/snippets/1717579
--
另一个可能的原因 - 如果您的环境变量在项目设置中设置为 Protected,
并且您在 不受保护 .
的分支机构工作
然后 var 没有传递给你的工作