Hallo zusammen,
ich bin von einer 2021 Android Studio Version mit 5.1.1 Gradle Plugin auf eine aktuelle(hedgehog) Version gewechselt mit 7.5 Gradle Plugin.
Wenn ich dort auf den Reiter "Build" -> Build Bundle(s) / APK(s) -> Build APK(s) klicke, habe ich ohne Murren eine apk erhalten - mit der alten Version.
Mit der aktuellen Version erhalte ich einen Build-fehler, weil der Ordner "androidTest" Tests enthält, die auf packages verlinken die in einem eigenen Ordner liegen(integrationtesting), der ein eigener Product-Flavor ist.
Auszug auf der build.gradle
Beispiel-Struktur:
app -> src ->
Merkwürdigerweise, wenn ich die apk über den Reiter "Generate signed Bundle/Apk" und mit einem eigenen Key-Store bzw. mit eigener Signierung arbeite, funktioniert der Build tadelos. Für eine Produktive apk ist das kein Problem aber wenn ich eine Test(Stage) apk baue dann funktioniert das zwar auch, aber der Entwickler vor mir, hat lieber für die stage apk die Signierung Google überlassen. Welche über "Build" -> Build Bundle(s) / APK(s) -> Build APK(s) läuft. Nur diese apk funktioniert dann mit unserem Test-System. Klar, ein Lösungsansatz wäre, das zu ändern aber ich würde gerne verstehen, was sich im Detail unterscheidet neuerdings zwischen den beiden Builds "Generate signed Bundle/Apk" & "Build" -> Build Bundle(s) / APK(s) -> Build APK(s)
Auch würde ich gerne wissen ob es sinnig ist, nach einer Lösung zu suchen, in der Hoffnung einer von euch kennt eine, den Ordner androidTest aus dem jeweiligen Build zu entfernen. Also welchen Mehrwert hat es, wenn ich die Tests alle in die apk packe, wenn die nur compiliert werden beim Bauen aber nicht ausgeführt. Denn das Testing der apk, läuft komplett über den Flavor "integrationtesting" die als apk gebaut wird und dann auf dem Test-Handy durchlaufen wird, mitsamt einigen E2E-Tests.
Zusammenfassend:
1. Wie kann ich den androidTest Ordner exkludieren, bzw. wie sinnvoll ist das?
2. Ich könnte den Ordner integrationtesting, eigens für den flavor stage im Sourceset so anpassen, dass dieser nur für den stage-build inkludiert wird. Dann würde die Frage aber wieder aufkommen, ob es Sinn macht, alle Tests(androidTests + integration) in die apk zu packen.
3. Den Flavor integrationtesting auflösen, alles in androidTest verschieben und ein Flavor adnroidTest erstellen, was aber leider nicht auf Anhieb ging, weil laut Exception das verboten ist.
4. den Server anpassen, dass unsere Signierung mit unserem Testsystem kompatibel ist und nicht wie bisher mit der Google-Signierung.
Hättet ihr einen Ratschlag?
Vielen Dank euch im Voraus!
Grüße
ich bin von einer 2021 Android Studio Version mit 5.1.1 Gradle Plugin auf eine aktuelle(hedgehog) Version gewechselt mit 7.5 Gradle Plugin.
Wenn ich dort auf den Reiter "Build" -> Build Bundle(s) / APK(s) -> Build APK(s) klicke, habe ich ohne Murren eine apk erhalten - mit der alten Version.
Mit der aktuellen Version erhalte ich einen Build-fehler, weil der Ordner "androidTest" Tests enthält, die auf packages verlinken die in einem eigenen Ordner liegen(integrationtesting), der ein eigener Product-Flavor ist.
Auszug auf der build.gradle
Code:
flavorDimensions "defaultDimension"
productFlavors {
production {}
stage {}
integrationtesting {}
local {}
}
sourceSets {
main {
java {
srcDir 'build/generated/source/greendao'
}
}
}
Beispiel-Struktur:
app -> src ->
- androidTest
- integrationtesting
- local
- main
- production
- stage
Merkwürdigerweise, wenn ich die apk über den Reiter "Generate signed Bundle/Apk" und mit einem eigenen Key-Store bzw. mit eigener Signierung arbeite, funktioniert der Build tadelos. Für eine Produktive apk ist das kein Problem aber wenn ich eine Test(Stage) apk baue dann funktioniert das zwar auch, aber der Entwickler vor mir, hat lieber für die stage apk die Signierung Google überlassen. Welche über "Build" -> Build Bundle(s) / APK(s) -> Build APK(s) läuft. Nur diese apk funktioniert dann mit unserem Test-System. Klar, ein Lösungsansatz wäre, das zu ändern aber ich würde gerne verstehen, was sich im Detail unterscheidet neuerdings zwischen den beiden Builds "Generate signed Bundle/Apk" & "Build" -> Build Bundle(s) / APK(s) -> Build APK(s)
Auch würde ich gerne wissen ob es sinnig ist, nach einer Lösung zu suchen, in der Hoffnung einer von euch kennt eine, den Ordner androidTest aus dem jeweiligen Build zu entfernen. Also welchen Mehrwert hat es, wenn ich die Tests alle in die apk packe, wenn die nur compiliert werden beim Bauen aber nicht ausgeführt. Denn das Testing der apk, läuft komplett über den Flavor "integrationtesting" die als apk gebaut wird und dann auf dem Test-Handy durchlaufen wird, mitsamt einigen E2E-Tests.
Zusammenfassend:
1. Wie kann ich den androidTest Ordner exkludieren, bzw. wie sinnvoll ist das?
2. Ich könnte den Ordner integrationtesting, eigens für den flavor stage im Sourceset so anpassen, dass dieser nur für den stage-build inkludiert wird. Dann würde die Frage aber wieder aufkommen, ob es Sinn macht, alle Tests(androidTests + integration) in die apk zu packen.
3. Den Flavor integrationtesting auflösen, alles in androidTest verschieben und ein Flavor adnroidTest erstellen, was aber leider nicht auf Anhieb ging, weil laut Exception das verboten ist.
4. den Server anpassen, dass unsere Signierung mit unserem Testsystem kompatibel ist und nicht wie bisher mit der Google-Signierung.
Hättet ihr einen Ratschlag?
Vielen Dank euch im Voraus!
Grüße