-
Notifications
You must be signed in to change notification settings - Fork 5.9k
Description
New Issue Checklist
- Updated fastlane to the latest version
- I read the Contribution Guidelines
- I read docs.fastlane.tools
- I searched for existing GitHub issues
Issue Description
Screengrab 2.1.1 is crashing most times on API 33. This didn't happen with API 29, neither with API 30. Problems starts on API 31.
It also crashes when simply running the "screenshot test" inside Android Studio (ie. the method that is effectively run by fastlane to take the screenshots).
Sometimes it fails/crashes on the 1st locale (english), sometimes on the 2nd.
Command executed
bundle exec fastlane screenshots
Complete output when running fastlane, including the stack trace and command used
Full log (because it exceeds issue max char count) : log.gz
[12:15:14]: Uninstalling app APK [12:15:14]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 uninstall com.exifthumbnailadder.app.debug�[0m [12:15:15]: ▸ �[35mSuccess�[0m [12:15:15]: Uninstalling tests APK [12:15:15]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 uninstall com.exifthumbnailadder.app.debug.test�[0m [12:15:15]: ▸ �[35mSuccess�[0m [12:15:15]: Installing app APK [12:15:15]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 install -t -r app/build/outputs/apk/standard/debug/exifthumbnailadder-standard-debug.apk�[0m [12:15:15]: ▸ �[35mPerforming Streamed Install�[0m [12:15:21]: ▸ �[35mSuccess�[0m [12:15:21]: Installing tests APK [12:15:21]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 install -t -r app/build/outputs/apk/androidTest/standard/debug/exifthumbnailadder-standard-debug-androidTest.apk�[0m [12:15:21]: ▸ �[35mPerforming Streamed Install�[0m [12:15:22]: ▸ �[35mSuccess�[0m [12:15:22]: Granting the permission necessary to change locales on the device [12:15:22]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 shell pm grant com.exifthumbnailadder.app.debug android.permission.CHANGE_CONFIGURATION�[0m [12:15:22]: Granting the permissions necessary to access device external storage [12:15:22]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 shell pm grant com.exifthumbnailadder.app.debug android.permission.WRITE_EXTERNAL_STORAGE�[0m [12:15:23]: ▸ �[35mException occurred while executing 'grant':�[0m [12:15:23]: ▸ �[35mjava.lang.SecurityException: Package com.exifthumbnailadder.app.debug has not requested permission android.permission.WRITE_EXTERNAL_STORAGE�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1404)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1319)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:547)�[0m [12:15:23]: ▸ �[35m at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:597)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2546)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:292)�[0m [12:15:23]: ▸ �[35m at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)�[0m [12:15:23]: ▸ �[35m at android.os.ShellCommand.exec(ShellCommand.java:38)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:5964)�[0m [12:15:23]: ▸ �[35m at android.os.Binder.shellCommand(Binder.java:1049)�[0m [12:15:23]: ▸ �[35m at android.os.Binder.onTransact(Binder.java:877)�[0m [12:15:23]: ▸ �[35m at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4313)�[0m [12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:5948)�[0m [12:15:23]: ▸ �[35m at android.os.Binder.execTransactInternal(Binder.java:1285)�[0m [12:15:23]: ▸ �[35m at android.os.Binder.execTransact(Binder.java:1244)�[0mException occurred while executing 'grant':
java.lang.SecurityException: Package com.exifthumbnailadder.app.debug has not requested permission android.permission.WRITE_EXTERNAL_STORAGE
at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1404)
at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1319)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:547)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:597)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2546)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:292)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:5964)
at android.os.Binder.shellCommand(Binder.java:1049)
at android.os.Binder.onTransact(Binder.java:877)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4313)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:5948)
at android.os.Binder.execTransactInternal(Binder.java:1285)
at android.os.Binder.execTransact(Binder.java:1244)
[12:15:23]: �[31mExit status: 255�[0m
[12:15:23]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 shell pm grant com.exifthumbnailadder.app.debug android.permission.READ_EXTERNAL_STORAGE�[0m
[12:15:23]: ▸ �[35mException occurred while executing 'grant':�[0m
[12:15:23]: ▸ �[35mjava.lang.SecurityException: Package com.exifthumbnailadder.app.debug has not requested permission android.permission.READ_EXTERNAL_STORAGE�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1404)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1319)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:547)�[0m
[12:15:23]: ▸ �[35m at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:597)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2546)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:292)�[0m
[12:15:23]: ▸ �[35m at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)�[0m
[12:15:23]: ▸ �[35m at android.os.ShellCommand.exec(ShellCommand.java:38)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:5964)�[0m
[12:15:23]: ▸ �[35m at android.os.Binder.shellCommand(Binder.java:1049)�[0m
[12:15:23]: ▸ �[35m at android.os.Binder.onTransact(Binder.java:877)�[0m
[12:15:23]: ▸ �[35m at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4313)�[0m
[12:15:23]: ▸ �[35m at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:5948)�[0m
[12:15:23]: ▸ �[35m at android.os.Binder.execTransactInternal(Binder.java:1285)�[0m
[12:15:23]: ▸ �[35m at android.os.Binder.execTransact(Binder.java:1244)�[0mException occurred while executing 'grant':
java.lang.SecurityException: Package com.exifthumbnailadder.app.debug has not requested permission android.permission.READ_EXTERNAL_STORAGE
at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermissionInternal(PermissionManagerServiceImpl.java:1404)
at com.android.server.pm.permission.PermissionManagerServiceImpl.grantRuntimePermission(PermissionManagerServiceImpl.java:1319)
at com.android.server.pm.permission.PermissionManagerService.grantRuntimePermission(PermissionManagerService.java:547)
at android.permission.PermissionManager.grantRuntimePermission(PermissionManager.java:597)
at com.android.server.pm.PackageManagerShellCommand.runGrantRevokePermission(PackageManagerShellCommand.java:2546)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:292)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:5964)
at android.os.Binder.shellCommand(Binder.java:1049)
at android.os.Binder.onTransact(Binder.java:877)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4313)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:5948)
at android.os.Binder.execTransactInternal(Binder.java:1285)
at android.os.Binder.execTransact(Binder.java:1244)
[12:15:23]: �[31mExit status: 255�[0m
[12:15:23]: Running tests for locale: de-DE
[12:15:23]: �[36m$ /home/user/Android/Sdk/platform-tools/adb -s emulator-5554 shell am instrument --no-window-animation -w
-e testLocale de-DE
--no-hidden-api-checks
-e appendTimestamp false
-e class com.exifthumbnailadder.app.TakeScreenshots
com.exifthumbnailadder.app.debug.test/androidx.test.runner.AndroidJUnitRunner�[0m
[12:15:51]: ▸ �[35mcom.exifthumbnailadder.app.TakeScreenshots:�[0m
[12:15:51]: ▸ �[35mError in testTakeScreenshot(com.exifthumbnailadder.app.TakeScreenshots):�[0m
[12:15:51]: ▸ �[35mjava.lang.RuntimeException: Unable to capture screenshot.�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.FileWritingScreenshotCallback.screenshotCaptured(FileWritingScreenshotCallback.java:56)�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.UiAutomatorScreenshotStrategy.takeScreenshot(UiAutomatorScreenshotStrategy.java:34)�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:121)�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:103)�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:87)�[0m
[12:15:51]: ▸ �[35m at com.exifthumbnailadder.app.TakeScreenshots.testTakeScreenshot(TakeScreenshots.java:169)�[0m
[12:15:51]: ▸ �[35m ... 39 trimmed�[0m
[12:15:51]: ▸ �[35mCaused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.recycle()' on a null object reference�[0m
[12:15:51]: ▸ �[35m at tools.fastlane.screengrab.FileWritingScreenshotCallback.screenshotCaptured(FileWritingScreenshotCallback.java:48)�[0m
[12:15:51]: ▸ �[35m ... 45 more�[0m
[12:15:53]: ▸ �[35m.�[0m
[12:15:53]: ▸ �[35mTime: 12.774�[0m
[12:15:53]: ▸ �[35mThere was 1 failure:�[0m
[12:15:53]: ▸ �[35m1) testTakeScreenshot(com.exifthumbnailadder.app.TakeScreenshots)�[0m
[12:15:53]: ▸ �[35mjava.lang.RuntimeException: Unable to capture screenshot.�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.FileWritingScreenshotCallback.screenshotCaptured(FileWritingScreenshotCallback.java:56)�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.UiAutomatorScreenshotStrategy.takeScreenshot(UiAutomatorScreenshotStrategy.java:34)�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:121)�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:103)�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.Screengrab.screenshot(Screengrab.java:87)�[0m
[12:15:53]: ▸ �[35m at com.exifthumbnailadder.app.TakeScreenshots.testTakeScreenshot(TakeScreenshots.java:169)�[0m
[12:15:53]: ▸ �[35m ... 39 trimmed�[0m
[12:15:53]: ▸ �[35mCaused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.Bitmap.recycle()' on a null object reference�[0m
[12:15:53]: ▸ �[35m at tools.fastlane.screengrab.FileWritingScreenshotCallback.screenshotCaptured(FileWritingScreenshotCallback.java:48)�[0m
[12:15:53]: ▸ �[35m ... 45 more�[0m
[12:15:53]: ▸ �[35mFAILURES!!!�[0m
[12:15:53]: ▸ �[35mTests run: 2, Failures: 1�[0m
+-------------------------------------+----------------------------------------------------------------+
| �[33mLane Context�[0m |
+-------------------------------------+----------------------------------------------------------------+
| DEFAULT_PLATFORM | android |
| PLATFORM_NAME | android |
| LANE_NAME | android screenshots |
| GRADLE_BUILD_TYPE | StandardDebugAndroidTest |
| GRADLE_FLAVOR | Standard |
| GRADLE_ALL_APK_OUTPUT_PATHS | ["/path_to_repo/exif-thumbnail-adder/app/build/outp |
| | uts/apk/standard/debug/exifthumbnailadder-standard-debug.apk" |
| | , |
| | "/path_to_repo/exif-thumbnail-adder/app/build/outpu |
| | ts/apk/androidTest/standard/debug/exifthumbnailadder-standard |
| | -debug-androidTest.apk"] |
| GRADLE_ALL_AAB_OUTPUT_PATHS | [] |
| GRADLE_ALL_OUTPUT_JSON_OUTPUT_PATHS | ["/path_to_repo/exif-thumbnail-adder/app/build/outp |
| | uts/apk/standard/debug/output-metadata.json", |
| | "/path_to_repo/exif-thumbnail-adder/app/build/outpu |
| | ts/apk/androidTest/standard/debug/output-metadata.json"] |
| GRADLE_ALL_MAPPING_TXT_OUTPUT_PATHS | [] |
| GRADLE_APK_OUTPUT_PATH | /path_to_repo/exif-thumbnail-adder/app/build/output |
| | s/apk/androidTest/standard/debug/exifthumbnailadder-standard- |
| | debug-androidTest.apk |
| GRADLE_OUTPUT_JSON_OUTPUT_PATH | /path_to_repo/exif-thumbnail-adder/app/build/output |
| | s/apk/androidTest/standard/debug/output-metadata.json |
+-------------------------------------+----------------------------------------------------------------+
[12:15:53]: �[31mTests failed for locale de-DE on device emulator-5554�[0m+------+-----------------------------------------+-------------+
| �[32mfastlane summary�[0m |
+------+-----------------------------------------+-------------+
| Step | Action | Time (in s) |
+------+-----------------------------------------+-------------+
| 1 | opt_out_usage | 0 |
| 2 | default_platform | 0 |
| 3 | Switch to android build_for_screengrab | 0 |
| | lane | |
| 4 | assembleStandardDebug | 25 |
| 5 | assembleStandardDebugAndroidTest | 2 |
| 6 | Switch to android | 0 |
| | prepare_device_for_tests lane | |
| 7 | Switch to android disable_animation | 0 |
| | lane | |
| 8 | adb | 0 |
| 9 | adb | 0 |
| 10 | adb | 0 |
| 11 | adb | 0 |
| 12 | adb | 0 |
| 13 | adb | 1 |
| 14 | adb | 0 |
| 15 | adb | 1 |
| 16 | adb | 1 |
| 💥 | �[31mcapture_android_screenshots�[0m | 107 |
+------+-----------------------------------------+-------------+[12:15:53]: �[31mfastlane finished with errors�[0m
�[31m
[!] Tests failed for locale de-DE on device emulator-5554�[0m
Environment
🚫 fastlane environment 🚫
Stack
Key | Value |
---|---|
OS | debian_based 11.6 |
Ruby | 2.7.4 |
Bundler? | true |
Git | git version 2.30.2 |
Installation Source | /****/exif-thumbnail-adder/0_personal/vendor/bundle/ruby/2.7.0/bin/fastlane |
Host | Debian GNU/Linux 11 debian_based 11.6 (5.10.0-20-amd64) |
Ruby Lib Dir | /usr/lib |
OpenSSL Version | OpenSSL 1.1.1k 25 Mar 2021 |
Is contained | false |
Is homebrew | false |
Is installed via Fabric.app | false |
System Locale
Variable | Value | |
---|---|---|
LANG | fr_FR.UTF-8 | ✅ |
LC_ALL | ||
LANGUAGE | fr:en_US | 🚫 |
fastlane files:
`./fastlane/Fastfile`
# This file contains the fastlane.tools configuration
# You can find the documentation at https://docs.fastlane.tools
#
# For a list of all available actions, check out
#
# https://docs.fastlane.tools/actions
#
# For a list of all available plugins, check out
#
# https://docs.fastlane.tools/plugins/available-plugins
#
opt_out_usage
# Uncomment the line if you want fastlane to automatically update itself
# update_fastlane
default_platform(:android)
platform :android do
desc "Runs all the tests"
lane :test do
gradle(task: "test")
end
desc "Build all the tests without running them"
lane :build_test do
gradle(
tasks: [
"compileStandardDebugUnitTestSources",
"compileStandardReleaseUnitTestSources",
"compileDebugUnitTestSources",
"compileReleaseUnitTestSources",
"bundleLibResDebug",
"bundleLibResRelease",
"bundleLibRuntimeToJarDebug",
"bundleLibRuntimeToJarRelease",
],
)
end
desc "Build all the instrumented tests without running them"
lane :build_androidTest do
gradle(
task: "assembleAndroidTest",
)
end
desc "Build Release APK & AAB"
lane :build_release do
gradle(
tasks: ["clean", "assembleStandardRelease", "bundleStandardRelease"]
)
end
desc "Submit a new Beta Build to Crashlytics Beta"
lane :beta do
gradle(task: "clean assembleRelease bundleRelease")
crashlytics
# sh "your_script.sh"
# You can also use other beta testing services here
end
desc "Deploy a new version to the Google Play"
lane :deploy do
postpare_metadata_for_googleplay
prepare_metadata_for_googleplay
version_code = get_version_code
version_name = get_version_name
upload_to_play_store(
aab: 'app/build/outputs/bundle/standardRelease/exifthumbnailadder-' + version_name + '-standard-release.aab',
changes_not_sent_for_review: true,
skip_upload_apk: true,
skip_upload_changelogs: false,
#version_code: version_code,
skip_upload_metadata: false,
skip_upload_images: false,
skip_upload_screenshots: false,
)
postpare_metadata_for_googleplay
end
desc "get version_code"
lane :get_version_code do
lines = File.open("../version_last_tag.txt")
lines.first.split("+")[1].strip
end
desc "get version_name"
lane :get_version_name do
lines = File.open("../version_last_tag.txt")
tmp = lines.first.split("+")[0].strip
tmp.split(" ")[1].strip
end
desc "Prepare matadata so that it is not rejected by google play"
lane :prepare_metadata_for_googleplay do
sh "../scripts/prepare_metadata_for_googleplay.sh"
end
desc "Postpare matadata - This restores to the state before the 'prepare'"
lane :postpare_metadata_for_googleplay do
sh "../scripts/post_metadata_for_googleplay.sh"
end
desc "Build debug and test APK for screenshots"
lane :build_for_screengrab do
#gradle(
# task: 'clean'
#)
build_android_app(
task: 'assemble',
flavor: 'Standard',
build_type: 'Debug',
properties: {
"noVersionInArchivesBaseName" => "true",
}
)
build_android_app(
task: 'assemble',
build_type: 'StandardDebugAndroidTest',
properties: {
"noVersionInArchivesBaseName" => "true",
}
)
end
desc "Do screenshots"
lane :screenshots do
build_for_screengrab
prepare_device_for_tests
capture_android_screenshots(
use_timestamp_suffix: false,
clear_previous_screenshots: true,
locales: ["en-US", "de-DE", "fr-FR", "pt-BR", "tr-TR", "vi", "zh-CN"],
ending_locale: "en-US",
reinstall_app: true,
app_package_name: "com.exifthumbnailadder.app.debug",
tests_package_name: "com.exifthumbnailadder.app.debug.test",
use_tests_in_classes: "com.exifthumbnailadder.app.TakeScreenshots",
app_apk_path: "app/build/outputs/apk/standard/debug/exifthumbnailadder-standard-debug.apk",
tests_apk_path: "app/build/outputs/apk/androidTest/standard/debug/exifthumbnailadder-standard-debug-androidTest.apk",
#specific_device: "emulator-5554"
)
end
desc "disable animations on device"
lane :disable_animation do
adb(
#serial: 'emulator-5554',
command: 'shell settings put global window_animation_scale 0.0'
)
adb(
#serial: 'emulator-5554',
command: 'shell settings put global transition_animation_scale 0.0'
)
adb(
#serial: 'emulator-5554',
command: 'shell settings put global animator_duration_scale 0.0'
)
end
desc "Prepare device for tests"
lane :prepare_device_for_tests do
disable_animation
adb(
#serial: 'emulator-5554',
command: 'shell rm -fr /storage/emulated/0/DCIM/test_pics'
)
adb(
#serial: 'emulator-5554',
command: 'shell mkdir -p /storage/emulated/0/DCIM/test_pics'
)
adb(
#serial: 'emulator-5554',
command: 'push tests/data/exif-samples/jpg/* /storage/emulated/0/DCIM/test_pics'
)
adb(
#serial: 'emulator-5554',
command: 'push tests/data/empty_file tests/data/noexif.jpg tests/data/text_file.txt tests/data/text_with_jpg_extension.jpg /storage/emulated/0/DCIM/test_pics'
)
# Uninstall the app so as to reset the MANAGE_EXTERNAL_STORAGE permission.
# I haven't found another way to remove this permission once it's granted
adb(
command: 'shell pm uninstall com.exifthumbnailadder.app.debug || echo'
)
# Uninstall the previously installed test package. On github actions, don't removing it may give
# Failed to install APK(s): exifthumbnailadder-*-standard-debug-androidTest.apk
# INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.exifthumbnailadder.app.debug.test signatures do not match the previously installed version; ignoring!
adb(
command: 'shell pm uninstall com.exifthumbnailadder.app.debug.test || echo'
)
end
desc "Get test output from device"
lane :get_output_of_tests do
require 'fileutils'
FileUtils.mkdir_p('../tests/output')
adb(
command: 'shell mkdir -p /data/local/tmp/screenrecords/'
)
adb(
command: 'shell mkdir -p /data/local/tmp/test_output/'
)
adb(
command: 'shell mkdir -p /storage/emulated/0/DCIM/test_pics/'
)
adb(
command: 'pull -a /data/local/tmp/screenrecords/ tests/output/',
)
adb(
command: 'pull -a /data/local/tmp/test_output/ tests/output/',
)
adb(
command: 'pull -a /storage/emulated/0/DCIM/test_pics/ tests/output/',
)
end
desc "Run all the instrumented tests except screenshots"
lane :connectedCheck do |options|
adb(
# Get rid of `Viewing full screen, To exit, swipe down from the top` message
# https://stackoverflow.com/a/62475026
command: 'shell settings put secure immersive_mode_confirmations confirmed',
)
if ENV["CI"] == "true" && ENV["API_LEVEL"].to_i >= 30
adb(
# Turn off WiFi (to avoid using system resources for updates during tests)
command: 'shell cmd -w wifi set-wifi-enabled disabled',
)
end
if ENV["DELAY"]
# Pause (in seconds) to let the system image in the emulator finish booting.
sleep ENV["DELAY"].to_i
end
prepare_device_for_tests
gradle(
task: options[:task],
properties: {
"excludeScreenshots" => "NULL",
}
)
end
# To run only for a single flavor, run:
# bundle exec fastlane connectedCheck_with_screenrecord task:connectedStandardDebugAndroidTest
desc "Run all the instrumented tests except screenshots and save screenrecords"
lane :connectedCheck_with_screenrecord do |options|
adb(
command: 'shell rm -rf /data/local/tmp/screenrecords/',
)
adb(
command: 'shell rm -rf /data/local/tmp/test_output/',
)
if options[:task]
begin
connectedCheck(task: options[:task])
rescue => ex
test_failed = true
UI.error(ex)
end
else
# We split by flavor because with connectedCheck, as soon a one flavor has a failing test,
# then the subsequent flavors are skipped.
begin
connectedCheck(task: "connectedStandardDebugAndroidTest")
rescue => ex
test_failed = true
UI.error(ex)
end
end
get_output_of_tests
if test_failed == true
UI.shell_error! "connectedCheck lane failed."
end
end
end
`./fastlane/Appfile`
json_key_file("0_personal/play-store-credentials.json") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("com.exifthumbnailadder.app")
fastlane gems
Gem | Version | Update-Status |
---|---|---|
fastlane | 2.212.1 | ✅ Up-To-Date |
Loaded fastlane plugins:
No plugins Loaded
Loaded gems
Gem | Version |
---|---|
did_you_mean | 1.4.0 |
rake | 13.0.6 |
rexml | 3.2.5 |
CFPropertyList | 3.0.6 |
public_suffix | 5.0.1 |
addressable | 2.8.1 |
artifactory | 3.0.15 |
atomos | 0.1.3 |
aws-eventstream | 1.2.0 |
aws-partitions | 1.719.0 |
aws-sigv4 | 1.5.2 |
jmespath | 1.6.2 |
aws-sdk-core | 3.170.0 |
aws-sdk-kms | 1.63.0 |
aws-sdk-s3 | 1.119.1 |
babosa | 1.0.4 |
bundler | 2.2.5 |
claide | 1.1.0 |
colored | 1.2 |
colored2 | 3.1.2 |
highline | 2.0.3 |
commander | 4.6.0 |
declarative | 0.0.20 |
digest-crc | 0.6.4 |
unf_ext | 0.0.8.2 |
unf | 0.1.4 |
domain_name | 0.5.20190701 |
dotenv | 2.8.1 |
emoji_regex | 3.2.3 |
excon | 0.99.0 |
faraday-em_http | 1.0.0 |
faraday-em_synchrony | 1.0.0 |
faraday-excon | 1.1.0 |
faraday-httpclient | 1.0.1 |
multipart-post | 2.0.0 |
faraday-multipart | 1.0.4 |
faraday-net_http | 1.0.1 |
faraday-net_http_persistent | 1.2.0 |
faraday-patron | 1.0.0 |
faraday-rack | 1.0.0 |
faraday-retry | 1.0.3 |
ruby2_keywords | 0.0.5 |
faraday | 1.10.3 |
http-cookie | 1.0.5 |
faraday-cookie_jar | 0.0.7 |
faraday_middleware | 1.2.0 |
fastimage | 2.2.6 |
gh_inspector | 1.1.3 |
jwt | 2.7.0 |
memoist | 0.16.2 |
multi_json | 1.15.0 |
os | 1.1.4 |
signet | 0.17.0 |
googleauth | 1.3.0 |
httpclient | 2.8.3 |
mini_mime | 1.1.2 |
trailblazer-option | 0.1.2 |
uber | 0.1.0 |
representable | 3.2.0 |
retriable | 3.1.2 |
webrick | 1.8.1 |
google-apis-core | 0.11.0 |
google-apis-androidpublisher_v3 | 0.34.0 |
google-apis-playcustomapp_v1 | 0.13.0 |
google-apis-iamcredentials_v1 | 0.17.0 |
google-apis-storage_v1 | 0.19.0 |
google-cloud-env | 1.6.0 |
google-cloud-errors | 1.3.1 |
google-cloud-core | 1.6.0 |
google-cloud-storage | 1.44.0 |
json | 2.6.3 |
mini_magick | 4.12.0 |
naturally | 2.2.1 |
optparse | 0.1.1 |
plist | 3.7.0 |
rubyzip | 2.3.2 |
security | 0.1.3 |
simctl | 1.6.10 |
terminal-notifier | 2.0.0 |
unicode-display_width | 1.8.0 |
terminal-table | 1.8.0 |
tty-screen | 0.8.1 |
tty-cursor | 0.7.1 |
tty-spinner | 0.9.3 |
word_wrap | 1.0.0 |
nanaimo | 0.3.0 |
xcodeproj | 1.22.0 |
rouge | 2.0.7 |
xcpretty | 0.3.0 |
xcpretty-travis-formatter | 1.0.1 |
generated on: 2023-03-15