Screenshots - A command line utility and package for capturing screenshots for Flutter

Overview

pub package Build Status Build status codecov

alt text

A screenshot image with overlaid status bar placed in a device frame.

For an example of images generated with Screenshots on a live app in both stores see:
GitErDone GitErDone

See a demo of Screenshots in action: Screenshots demo

For introduction to Screenshots see https://medium.com/@nocnoc/automated-screenshots-for-flutter-f78be70cd5fd.

Screenshots

Screenshots is a standalone command line utility and package for capturing screenshot images for Flutter.

Screenshots will start the required android emulators and iOS simulators (or find attached devices), run tests, process the captured screenshots, and drop them off to Fastlane for delivery to both stores.

Screenshots is inspired by three tools from Fastlane:

  1. Snapshots
    This is used to capture screenshots on iOS using iOS UI Tests.
  2. Screengrab
    This captures screenshots on android using Android Espresso tests.
  3. FrameIt
    This is used to place captured iOS screenshots in a device frame.

Since all three of these Fastlane tools do not work with Flutter, Screenshots combines key features of these Fastlane tools into one tool.

Features

Since Flutter integration testing is designed to work transparently across iOS and Android, capturing images using Screenshots is easy.

Features include:

  1. Works with existing tests
    Add a single line for each screenshot.
  2. Run tests on any device
    Select the devices to run on using a convenient config file. Screenshots will find the devices (real or emulated) and run tests.
  3. One run for both platforms
    Screenshots runs tests on both iOS and Android in one run.
    (as opposed to making separate Snapshots and Screengrab runs)
  4. One run for multiple locales
    If app supports multiple locales, Screenshots will optionally set the locales listed in the config file before running each test.
  5. One run for frames
    Optionally places images in device frames in same run.
    (as opposed to making separate FrameIt runs... which supports iOS only)
  6. One run for clean status bars
    Every image that Screenshots generates has a clean status bar.
    (no need to run a separate stage to clean-up status bars)
  7. Works with Fastlane
    Screenshots drops-off images where Fastlane expects to find them. Fastlane's deliver and supply can then be used to upload to respective stores.
  8. Works with FrameIt
    Works with Fastlane's FrameIt text and background feature to add text, etc... to a framed screenshot generated by screenshots.
  9. Works with any attached real devices
    Use any number of real devices to capture screenshots.

Additional automation features:

  1. Screenshots runs in the cloud.
    For live demo of Screenshots running with the internationalized example app on macOS, linux and windows in cloud, see below
  2. Screenshots works with any CI/CD tool.
    For live demo of uploading images, generated by Screenshots, to both store consoles, see demo of Fledge at https://github.com/mmcc007/fledge#demo

Installation

On macOS:

brew update && brew install imagemagick
pub global activate screenshots

On linux:

# Debian, Ubuntu or Linux Mint
sudo apt-get install imagemagick
# Fedora, CentOS or RHEL
sudo yum install ImageMagick
# OpenSUSE
sudo zypper install imagemagick

pub global activate screenshots

Note: on linux ImageMagick is often already installed.

On windows:

choco install imagemagick.app
pub global activate screenshots

Note: ImageMagick v7 or later is recommended on windows.

If pub is not found, add to PATH using:

On macOS/Linux:

/bin/cache/dart-sdk/bin:$PATH"">
export PATH="
    
     /bin/cache/dart-sdk/bin:$PATH"

    

On windows:

set PATH=
   
    \flutter\bin\cache\dart-sdk\bin;%APPDATA%\Pub\Cache\bin;%PATH%

   

Note: if running on Windows or Linux, can only run android devices/emulators. To also run on macOS use a CI that supports macOS.

Usage

screenshots

Or, if using a config file other than the default 'screenshots.yaml':

screenshots -c 
   

   

Other options:

If mode is recording, screenshots will be saved for later comparison. If mode is comparison, screenshots will be compared with recorded. If mode is archive, screenshots will be archived (and cannot be uploaded via fastlane). [normal (default), recording, comparison, archive] -f, --flavor= Flavor name. -b, --build= Force build and install of app for all devices. Override settings in screenshots.yaml (if any). [true, false] -v, --verbose Noisy logging, including all shell commands executed. -h, --help Display this help information.">
usage: screenshots [-h] [-c 
     
      ] [-m 
      
       ] [-f 
       
        ] [-b 
        
         ] [-v]

sample usage: screenshots

-c, --config=
         
           Path to config file. (defaults to "screenshots.yaml") -m, --mode=
          
            If mode is recording, screenshots will be saved for later comparison. If mode is comparison, screenshots will be compared with recorded. If mode is archive, screenshots will be archived (and cannot be uploaded via fastlane). [normal (default), recording, comparison, archive] -f, --flavor=
           
             Flavor name. -b, --build=
            
              Force build and install of app for all devices. Override settings in screenshots.yaml (if any). [true, false] -v, --verbose Noisy logging, including all shell commands executed. -h, --help Display this help information. 
            
           
          
         
        
       
      
     

Modifying tests for Screenshots

A special function is provided in the Screenshots package that is called by the test to capture a screenshot. Screenshots will then process the images appropriately during a Screenshots run.

To capture screenshots in tests:

  1. Add Screenshots package in app's pubspec.yaml's dev_dependencies section
    dev_dependencies:
      screenshots: ^
         
  2. In tests
    1. Import the dependency
      import 'package:screenshots/screenshots.dart';
    2. Create the config at start of test
           final config = Config();
    3. Throughout the test make calls to capture screenshots
          await screenshot(driver, config, 'myscreenshot1');

Note: make sure screenshot names are unique across all tests.

Note: to turn off the debug banner, in the integration test's main(), call:

  WidgetsApp.debugAllowBannerOverride = false; // remove debug banner for screenshots

Configuration

Screenshots uses a configuration file to configure a run.
The default config filename is screenshots.yaml:

# A list of screen capture tests
tests:
# Note: flutter driver expects a pair of files eg, main1.dart and main1_test.dart
  - test_driver/main1.dart 
  - test_driver/main2.dart 

# Interim location of screenshots from tests
staging: /tmp/screenshots

# A list of locales supported by the app
locales:
  - en-US
  - de-DE

# A map of devices to emulate
devices:
  ios:
    iPhone XS Max:
    iPhone 11 Pro:
      frame: false # no screen avail so frame must be false
    iPad Pro (12.9-inch) (3rd generation):
      orientation:
        - Portrait # default 
        - LandscapeRight
  android:
    Nexus 6P:
    SM G965F: # a real attached device (frame and orientation disabled)

# Frame screenshots
frame: true

Device Parameters

Individual devices can be configured in screenshots.yaml by specifying per device parameters.

Parameter Values Required Description
frame true/false optional Controls whether screenshots generated on the device should be placed in a frame. Overrides the global frame setting (see example screenshots.yaml above).
orientation Portrait | LandscapeRight | PortraitUpsideDown | LandscapeLeft optional Controls orientation of device during test. Disables framing resulting in a raw screenshot. Ignored for real devices.
build true(default)/false optional Builds and installs app. When set to false, can be used for pre-installed apps that need to be configured before running tests.

frame parameter notes:

  • images generated for devices where framing is disabled may not be suitable for upload.
  • set to false for devices unknown to screenshots.

orientation parameter notes:

  • multiple orientations can be specified. For example:
        iPhone XS Max:
          orientation:
            - Portrait
            - LandscapeRight
  • landscape orientation disables framing
    This is because status/navigation bars in landscape mode are currently not implemented.
  • orientation on iOS simulators is implemented using an AppleScript script which requires granting permission on first use.

Test Options

In addition to using the default flutter driver mode, tests can also be specified using flutter driver parameters. For example:

tests:
  - --target=test_driver/main1.dart --driver=test_driver/main1_test1.dart
  - --target=test_driver/main2.dart --driver=test_driver/main2_test1.dart

Record/Compare Mode

Screenshots can be used to monitor any unexpected changes to the UI by comparing the new screenshots to previously recorded screenshots. Any differences will be highlighted in a 'diff' image for review.

To use this feature:

  1. Add a recording directory to screenshots.yaml
    recording: /tmp/screenshots_record
  2. Run a recording to capture expected screenshots:
    screenshots -m recording
    
  3. Run subsequent Screenshots with:
    screenshots -m comparison
    
    Screenshots will compare the new screenshots with the recorded screenshots and generate a 'diff' image for each screenshot that does not compare. The diff image highlights the differences in red.

Archive Mode

To generate screenshots for local use, such as generating reports of changes to UI over time, etc... use 'archive' mode.

To enable this mode:

  1. Add an archive directory to screenshots.yaml:
    archive: /tmp/screenshots_archive
  2. Run Screenshots with:
    $ screenshots -m archive
    

Integration with Fastlane

Since Screenshots is intended to be used with Fastlane, after Screenshots completes, the images can be found in the project at:

android/fastlane/metadata/android
ios/fastlane/screenshots

Images are in a format suitable for upload via deliver and supply.

Tip: One way to use Screenshots with Fastlane is to call Screenshots before calling Fastlane (or optionally call from Fastlane). Fastlane (for either iOS or Android) will then find the images in the appropriate place.

(For a live demo of using Fastlane to upload screenshot images to both store consoles, see demo of Fledge at https://github.com/mmcc007/fledge#demo)

Fastlane FrameIt

iOS images generated by Screenshots can also be further processed using FrameIt's text and background feature.

Adding a device

  1. Confirm device is present in screens.yaml.
  2. Add device to the list of devices in screenshots.yaml.
  3. Confirm a real device is attached, or install an emulator/simulator for device.

If screen is not available, disable framing by setting frame: false for the device.

Config validation

Screenshots will check configuration before running for errors and provide a guide on how to resolve.

Adding a screen

If device does not have a screen in screens.yaml please create an issue to request a new screen.

To submit a new screen please see related README.

Modifying tests based on screenshots environment

In some cases it is useful to know what device, device type, screen size, screen orientation and locale the test is currently running with. To obtain this information use:

final screenshotsEnv = config.screenshotsEnv;

See https://github.com/flutter/flutter/issues/31609 for related flutter driver issue.

Upgrading

To upgrade, simply re-issue the install command

$ pub global activate screenshots

Note: the Screenshots version should be the same for both the command line and in the pubspec.yaml.

  1. If upgrading the command line version of Screenshots, also upgrade the version of Screenshots in the pubspec.yaml.
  2. If upgrading the version of Screenshots in pubspec.yaml, also upgrade the command line version.

To check the version of Screenshots currently installed:

pub global list

Sample run on Travis and Appveyor

To view Screenshots running with the internationalized example app on macOS and linux in the cloud see:
https://travis-ci.com/mmcc007/screenshots

To view the images generated by Screenshots during a run on travis see:
https://github.com/mmcc007/screenshots/releases/

To view a similar run on windows see:
https://ci.appveyor.com/project/mmcc007/screenshots

  • Running Screenshots in the cloud is useful for automating the generation of screenshots in a CI/CD environment.
  • Running Screenshots on macOS in the cloud can be used to generate screenshots when developing on Linux and/or Windows.

Related projects

To run integration tests on real devices in cloud:
https://github.com/mmcc007/sylph

To automate releases to both stores:
https://github.com/mmcc007/fledge

Issues and Pull Requests

Issues and pull requests are welcome.

Comments
  • Support iPhone XS Max and 12.9-inch iPad Pro (3rd generation)

    Support iPhone XS Max and 12.9-inch iPad Pro (3rd generation)

    From the Apple Developer 'submitting iOS apps article',

    Starting March 27, 2019, all app submissions for iPhone or iPad, including universal apps, will require screenshots for iPhone XS Max or the 12.9-inch iPad Pro (3rd generation).

    We ended up taking manual screenshots in Xcode to submit our latest update, however it would be excellent to update/create configs so that screenshots can be leveraged in fastlane, travis or other pipeline configs.

    @mmcc007 I've added notes about this to my previously closed PR #15, which I'm now working on again, but that PR should just focus on the frame color options and the new configs could be handled in separate PR's or whatever you see fit. Happy to help.

    enhancement 
    opened by zanuka 31
  • iOS Simulator screenshot - invalid device error

    iOS Simulator screenshot - invalid device error

    Hi Maurice, I am having some issues getting this to run on iOS Simulator

    steps to reproduce:

    1. target iPhone 7 Plus in screenshots.yaml
    2. launch iOS simulator and with iPhone 7 Plus device opened
    3. setup basic driver test with await screenshot(driver, config, 'SplashScreen');
    4. run screenshots

    currently getting the following error:

    ❯ screenshots
    Clearing images in ios/fastlane/screenshots/en-AU for 'iPhone 7 Plus'...
    Starting simulator 'iPhone 7 Plus' in locale en-AU ...
    Invalid device: E96E4A16-72F8-4841-BF60-381F0BB424B0) (Shutdown
    Unhandled exception:
    command failed: cmd='xcrun simctl boot E96E4A16-72F8-4841-BF60-381F0BB424B0) (Shutdown'
    #0      cmd (package:screenshots/utils.dart:36:5)
    #1      simulator (package:screenshots/screenshots.dart:202:5)
    #2      run (package:screenshots/screenshots.dart:66:9)
    <asynchronous suspension>
    #3      main (file:///Users/zanuka/.pub-cache/hosted/pub.dartlang.org/screenshots-0.1.4/bin/main.dart:63:9)
    <asynchronous suspension>
    #4      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:287:32)
    #5      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
    

    the same driver test is capturing screenshot fine on Android emulators and placing files in the right directory - android/fastlane/metadata/android/en-AU/

    bug 
    opened by zanuka 26
  • Cannot start the IOS simulator

    Cannot start the IOS simulator

    Once I run screenshots in the root of my Flutter project, I got the following error.

    tarting flutter daemon... 0.6s Clearing images in ios/fastlane/screenshots/en-US for 'iPhone X'...

    Unhandled exception: command failed: exitcode=1, cmd='plutil -convert json -o - /Users/zexinwan/Library/Developer/CoreSimulator/Devices/9A63E188- B6D6-4636-BE31-7F4D20852F11/data/Library/Preferences/.GlobalPreferences.plist', workingDir=. #0 cmd (package:screenshots/src/utils.dart:361:5) #1 getIosSimulatorLocale (package:screenshots/src/utils.dart:178:19) #2 Screenshots.runTestsOnAll (package:screenshots/src/run.dart:226:40) #3 Screenshots.run (package:screenshots/src/run.dart:127:11) #4 screenshots. (package:screenshots/src/run.dart:48:26) #5 AppContext.run. (package:tool_base/src/base/context.dart:153:29) #6 _rootRun (dart:async/zone.dart:1124:13) #7 _CustomZone.run (dart:async/zone.dart:1021:19) #8 _runZoned (dart:async/zone.dart:1516:10) #9 runZoned (dart:async/zone.dart:1463:12) #10 AppContext.run (package:tool_base/src/base/context.dart:152:18) #11 runInContext (package:screenshots/src/context_runner.dart:16:24) #12 screenshots (package:screenshots/src/run.dart:47:12) #13 main (file:///Users/zexinwan/.pub-cache/hosted/pub.dartlang.org/screenshots-2.1.1/bin/main.dart:122:25) #14 _startIsolate. (dart:isolate-patch/isolate_patch.dart:303:32) #15 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

    It usually appears after failed launching of an IOS simulator

    good first issue 
    opened by hurricaney7 22
  • Codemagic: Screenshots expects no devices to be running at startup

    Codemagic: Screenshots expects no devices to be running at startup

    Hi,

    I'm trying to use screenshots in conjunction with Codemagic CI. However, I'm getting this error:

    # Screenshots expects no devices to be running at startup. 
    # Please disconnect all devices and shutdown all simulators/emulators.
    

    The message does not tell me what simulators/emulators it found to be running, so I'm not sure whether it's Android, iOS, or both.

    Do I have any recourse here, considering I have no control over Codemagic's infrastructure? Is there anything I could ask the Codemagic team in order to get past this problem?

    good first issue 
    opened by kentcb 21
  • Request: Support 7-inch and 10-inch Android tablets

    Request: Support 7-inch and 10-inch Android tablets

    The Android guidelines recommend to "Add screenshots taken on both 7-inch and 10-inch tablets." to Google Play. I think these should be supported by screens.yaml.

    enhancement good first issue 
    opened by apaatsio 21
  • frameit keyword and ttile support

    frameit keyword and ttile support

    I don't understand how to use https://docs.fastlane.tools/actions/frameit/#strings-files. I don't find support keyword and title these tools. I configuration tool without frame and plane to use a frameit with locale keyword and a title like https://github.com/fastlane/examples/tree/master/MindNode/screenshots, but the directory was clean after screenshots

    good first issue 
    opened by Gorniv 18
  • Support skipping fresh install

    Support skipping fresh install

    Flutter added a parameter: "flutter drive --no-build" to allow running on a preinstalled app and not re-building/installing. This would be useful for a number of reasons including working around native permission dialog blockers.

    https://github.com/flutter/flutter/pull/30818

    enhancement good first issue 
    opened by mcoolidge 15
  • example project not working either

    example project not working either

    Screen Shot 2019-11-22 at 19 35 46
    No device attached or emulator installed for device 'Nexus 6P' in screenshots.yaml.
    No device attached or simulator installed for device 'iPhone XS Max' in screenshots.yaml.
    
    Guide:
    
      Attached devices:
        SM G965F
    
      Installed emulators:
        10.1_WXGA_Tablet_API_29
        Nexus_5X_API_29_x86
        Nexus_7_API_29
    
      Installed simulators:
        Apple TV
        Apple TV 4K
        Apple TV 4K (at 1080p)
        Apple Watch Series 4 - 40mm
        Apple Watch Series 4 - 44mm
        Apple Watch Series 5 - 40mm
        Apple Watch Series 5 - 44mm
        iPhone 11
        iPhone 11 Pro
        iPhone 11 Pro Max
        iPhone 8
        iPhone 8 Plus
        iPad (7th generation)
        iPad Air (3rd generation)
        iPad Pro (11-inch)
        iPad Pro (12.9-inch) (3rd generation)
        iPad Pro (9.7-inch)
    
      Supported screens:
        android:
          Nexus 5X
          Nexus 6P
          Nexus 9
        ios:
          iPhone 6 Plus
          iPhone 6S Plus
          iPhone 6s Plus
          iPhone 7 Plus
          iPhone 8 Plus
          iPhone X
          iPhone XS
          iPhone XS Max
          iPhone Xs
          iPhone Xs Max
          iPad Pro (12.9-inch) (1st generation)
          iPad Pro (12.9-inch) (2nd generation)
          iPad Pro (12.9-inch) (3rd generation)
    
      Each device listed in screenshots.yaml with framing required must
        1. have a supported screen
        2. have an attached device or an installed emulator/simulator.
      To bypass requirement #1 add 'frame: false' after device in screenshots.yaml
    
    question 
    opened by Xgamefactory 12
  • iOS simulator picks invalid runtime

    iOS simulator picks invalid runtime

    There's still something wrong with the iOS Simulator startup. I tried the iPhone 7 emulator first. This gives me a crash.

    Warning: multiple versions of 'iPhone 7 Plus' detected.
      Using 'iPhone 7 Plus' with iOS: com.apple.CoreSimulator.SimRuntime.iOS-10-2, ID: D57FA1F5-FD57-436F-A543-5247734BD99C.
    Clearing images in ios/fastlane/screenshots/en-US for 'iPhone 7 Plus'...
    Starting simulator 'iPhone 7 Plus' in locale en-US ...
    2019-03-13 18:40:30.262 simctl[59751:3714254] *** Assertion failure in -[SimDevice _onBootstrapQueue_bootWithOptions:error:](), /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreSimulator/CoreSimulator-581.2/CoreSimulator/SimDevice.m:1776
    2019-03-13 18:40:30.263 simctl[59751:3714254] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to determine runtime bundle when booting device.'
    
    When i list all emulators, i get a whole lot.
    == Devices ==
    -- iOS 12.1 --
        iPhone 5s (48A4B3DF-7317-4D4F-816A-0FA43C141EE5) (Shutdown) 
        iPhone 6 (6C034618-CAD1-45EC-8111-E6216286C791) (Shutdown) 
        iPhone 6 Plus (264B37B5-C582-4CB6-87D0-7F128D94EFF1) (Shutdown) 
        iPhone 6s (68CD5D10-C9F3-42D8-82A3-B2945D3DE9B1) (Shutdown) 
        iPhone 6s Plus (CEB24A97-8B6C-47A5-A22A-8BAEAF2DB578) (Shutdown) 
        iPhone 7 (914F888B-89E3-4D17-B523-3C567F3E79F9) (Shutdown) 
        iPhone 7 Plus (3C644A33-F15A-42AF-BEE3-9BEABEAD433B) (Shutdown) 
        iPhone 8 (E5654150-F0D9-498C-9B27-2720DD2B4308) (Shutdown) 
        iPhone 8 Plus (651D7CAD-F10E-4F29-A004-BF7682FC564B) (Shutdown) 
        iPhone SE (479FCF1E-1977-48A6-8C13-BD77A817EB1F) (Shutdown) 
        iPhone X (19C0AC26-2C61-4410-AA26-D80BA4D26550) (Shutdown) 
        iPhone XS (37A3E376-1ABD-4CC6-8968-BD425464FDA7) (Shutdown) 
        iPhone XS Max (16FE00B2-FB94-4F25-A224-0857F1225868) (Shutdown) 
        iPhone XR (4B291B52-1BD3-4744-9496-C5FFF43E4E28) (Shutdown) 
        iPad Air (100F16DA-6922-4290-8D59-2691785BEF1A) (Shutdown) 
        iPad Air 2 (F14818FC-11AE-4857-B34B-5782AB2DDFC2) (Shutdown) 
        iPad (5th generation) (CAD28D5A-5670-42E4-9B94-CB80264B9EE5) (Shutdown) 
        iPad Pro (9.7-inch) (B917E1E0-E1CD-4AFD-91C7-6E7B679F67A8) (Shutdown) 
        iPad Pro (12.9-inch) (57FFF748-6532-4F5D-A2BA-47BC4B1E0B9A) (Shutdown) 
        iPad Pro (12.9-inch) (2nd generation) (6A3D7313-33FF-4CDF-B58B-CB4F001626F8) (Shutdown) 
        iPad Pro (10.5-inch) (01800A81-3B5C-4148-AD6C-61393B1C94A0) (Shutdown) 
        iPad (6th generation) (90926B35-DE79-4BBC-BE0A-201B514EC3B1) (Shutdown) 
        iPad Pro (11-inch) (BD076FA4-BAD1-45F4-A358-33B68E3CBCFE) (Shutdown) 
        iPad Pro (12.9-inch) (3rd generation) (0515DCBB-8989-4B0E-BCEF-FEE18556B331) (Shutdown) 
    -- tvOS 12.1 --
        Apple TV (702C1A58-C38F-4CDF-B7C7-D8DD264B1BF6) (Shutdown) 
        Apple TV 4K (21DB9DD8-B346-4E2D-A66C-099424081B87) (Shutdown) 
        Apple TV 4K (at 1080p) (83F9D203-6AE1-4119-A5E3-840C98288BCC) (Shutdown) 
    -- watchOS 5.1 --
        Apple Watch Series 2 - 38mm (139314AB-93D3-4F34-9DB9-F63110A8415A) (Shutdown) 
        Apple Watch Series 2 - 42mm (C102C576-754E-4D11-972E-1542E280687F) (Shutdown) 
        Apple Watch Series 3 - 38mm (9744D8F9-9849-4008-8D9A-30D2A3730138) (Shutdown) 
        Apple Watch Series 3 - 42mm (FFB049F6-AC89-4469-8F6C-DC4E822D2DD6) (Shutdown) 
        Apple Watch Series 4 - 40mm (A8E3215A-A430-4DD7-9FCA-5C5B42E86135) (Shutdown) 
        Apple Watch Series 4 - 44mm (D525299B-26D2-4C66-85A7-266E8BA7616F) (Shutdown) 
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-10-0 --
        iPhone 5 (E71018EA-D5B7-475F-9628-85DB0CF3FBAD) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5s (E7A400C1-706C-4023-A071-53F25A929EC1) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (204C9181-DFE8-432D-A418-9DDE960968F5) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (EF965896-3147-4577-87DB-FF5E8059C27C) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s (58C7CEF2-82B9-40B3-8B8F-B13F120E53BF) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s Plus (DF5D93B0-B113-481E-B028-31C7C1CD1257) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 (8CC496BC-200A-4359-8104-A0DF7D4AF989) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 Plus (8294AB99-FABF-415F-9B11-F265AC6185B3) (Shutdown) (unavailable, runtime profile not found)
        iPhone SE (9D8D2A17-3E0A-4C89-BDD8-30E2E7594FD5) (Shutdown) (unavailable, runtime profile not found)
        iPad Retina (543E435A-27ED-4948-A1C2-3EE65FA2DF96) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (A5D88BDA-1BDB-40C0-800A-19E2B9499356) (Shutdown) (unavailable, runtime profile not found)
        iPad Air 2 (C0814A54-718D-42A5-A956-2D18B5211F54) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (9.7 inch) (9EA12EA9-938F-4118-A28F-EC02A70704FF) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9 inch) (12983390-CEE9-4D21-885A-FCDA7256D432) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-10-2 --
        iPhone 5 (B4393AFD-CD56-42A1-81AF-4B738B22E788) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5s (E64A14F8-C991-4928-9E8C-3F5C2539DB1F) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (47963D09-90BC-4783-B22F-AF6C6160FA3A) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (2376C35B-1DE6-4AE1-8E86-080DC9D56C0A) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s (294B416C-0FB6-4056-8480-BD1788C4A364) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s Plus (7782216D-D915-412A-A027-DFC7B8EE7571) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 (60AC7E77-EEDE-4912-B190-6DFBD8FCE4CF) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 Plus (D57FA1F5-FD57-436F-A543-5247734BD99C) (Shutdown) (unavailable, runtime profile not found)
        iPhone SE (8AE0C724-2039-4266-B07B-95CEBF0C325C) (Shutdown) (unavailable, runtime profile not found)
        iPad Retina (011F27F7-FDAA-41F7-9C83-BA9A0F0A8687) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (1256A7AB-817D-4B72-AD18-6E7901910B8B) (Shutdown) (unavailable, runtime profile not found)
        iPad Air 2 (D0DF8AA1-A144-4CE5-B2BE-87306B6F6929) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (9.7 inch) (180C267E-FD51-463A-9ABD-0D0EEE4023CC) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9 inch) (3644AFDF-4A43-4CFF-BEC1-90B01F014346) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-11-0 --
        iPhone 5s (754C5D9C-81C1-40BF-B06B-5124AB461FC4) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (E6FDC2DC-973D-46D3-A075-1A6B87E040DA) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (7B4FC935-4C5B-4A63-9863-B7C1871FD187) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s (2541E8D4-EC94-44CD-9519-9B64BFE29FA4) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s Plus (6C668CE5-D2C7-4A94-B0A9-67DAA27E595E) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 (3CE75F25-962A-4E36-B69C-FE134520B53B) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 Plus (0FEDFBCD-D8A0-4616-A68E-C700BA6FD780) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 (993C6A39-8CEE-4D13-8B2F-3F9C1439C22E) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 Plus (F7D03722-382A-4A6C-9443-1E705588C5D9) (Shutdown) (unavailable, runtime profile not found)
        iPhone SE (02591F0A-8609-4130-92D6-A9CEA81A8F44) (Shutdown) (unavailable, runtime profile not found)
        iPhone X (95299166-A539-4713-BDD3-D77EDFD87A07) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (FBF75433-4F1F-4449-ADA7-FAD91A468FA2) (Shutdown) (unavailable, runtime profile not found)
        iPad Air 2 (8DC7B411-8BF2-48DD-A6B1-17430BC9B832) (Shutdown) (unavailable, runtime profile not found)
        iPad (5th generation) (834BA01F-8E09-4EAC-88C6-963324F81D44) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (9.7-inch) (FA2D49EB-7D90-4FB3-8E6A-25E59B79F454) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (A1141E71-368C-4DE9-9393-CE88BB4EBF81) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (2nd generation) (AA497A7A-9DC4-4CCF-8915-42D23A395128) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (10.5-inch) (A8E18381-87B0-48BB-97F1-D327F6B165CD) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-11-1 --
        iPhone 5s (2EF01986-2C4E-46E5-A5AA-B576993C15C4) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (4E10D677-E748-44BB-97F3-E2035F94EE96) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (FC8B5E6E-5956-4615-A7FF-FFB5488EAFB1) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s (A045EFE8-99AE-41C0-B6CA-C17ABC175E10) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s Plus (26249E22-D476-4EAE-AFCA-230C9F4719E0) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 (71558127-823F-4D16-AA13-AA36B5A74CD0) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 Plus (C0D126F3-0AC7-44AB-AC26-8029FAE13732) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 (A54AF665-18A0-4FFC-962E-209DF8B0D927) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 Plus (204D9723-29A7-41F8-AFC4-A1AB6E78BB1D) (Shutdown) (unavailable, runtime profile not found)
        iPhone SE (B8475EA7-86CB-4629-B687-C8FD3CE583DA) (Shutdown) (unavailable, runtime profile not found)
        iPhone X (530F9C6F-DC4B-4302-8A04-C2A885F51B2F) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (6608B12E-2FB0-4AC9-84D5-435633D6A20F) (Shutdown) (unavailable, runtime profile not found)
        iPad Air 2 (C9BC3C10-DABE-4E5C-8C3C-93A0A271D505) (Shutdown) (unavailable, runtime profile not found)
        iPad (5th generation) (D6DF8793-FFDF-4EBC-9F03-AFA76CD7569A) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (9.7-inch) (BF518C83-55F9-4959-94E4-A900EB2EEF48) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (0D9719C0-8254-4B48-8380-AA19703707B9) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (2nd generation) (B9183529-88EE-442E-8F5C-F1EDF36F2446) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (10.5-inch) (139BBA77-C25F-4D84-8AA9-0FFCEAEBFD5F) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-11-2 --
        iPhone 5s (529B72D8-ACD4-47BA-9CF7-1BABCC4528EA) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (B6DD3462-66DA-4D9E-B74C-D13E8E438FDA) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (E9D68484-1DFC-4C47-954B-FDE92AE76C59) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s (3EE63CEA-84EE-4FE9-832B-2F87075C9EA0) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6s Plus (CABF4A15-B229-4293-B52C-1D2FC4B4F5F8) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 (44224711-3B03-491F-8B2C-AC8077BD0FFB) (Shutdown) (unavailable, runtime profile not found)
        iPhone 7 Plus (3D913659-FD52-4F95-995D-ACE8D49F354E) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 (56F7414A-8A73-4F12-8DF8-67CD08CF48FE) (Shutdown) (unavailable, runtime profile not found)
        iPhone 8 Plus (853F8B05-8E77-426C-BAF7-A9B4FFB7923C) (Shutdown) (unavailable, runtime profile not found)
        iPhone SE (2B1648CC-7B27-4F1F-9C06-3D8A994C7F8B) (Shutdown) (unavailable, runtime profile not found)
        iPhone X (D7D5B0F6-8D74-4E08-9E71-F561CB753932) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (3448BE93-4B7B-45E7-BA58-F653256077E4) (Shutdown) (unavailable, runtime profile not found)
        iPad Air 2 (95DE165D-0595-4559-A79E-1DFDDA819BC4) (Shutdown) (unavailable, runtime profile not found)
        iPad (5th generation) (5B840293-9D0F-4AE2-BF97-4D953A47C73D) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (9.7-inch) (496053CA-282A-4247-9726-65FC28570EAF) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (2BCA4554-6D62-4B7B-AB53-313770BB67E6) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (12.9-inch) (2nd generation) (A6369818-CD70-4404-AA53-94884B957F0A) (Shutdown) (unavailable, runtime profile not found)
        iPad Pro (10.5-inch) (96840ABB-91B0-4301-BA6D-27A8B9B70F4A) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-8-0 --
        iPhone 4s (5E1F54E1-DD47-4967-A880-808AAB2FAB18) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5 (B1C200B2-AA95-48E3-AD98-CAD68F92F135) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5s (000CD3BC-D785-4B30-B797-9B9334188D28) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (06F3C2E5-8F69-4858-8216-0CBC91D05E30) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (A1F8361B-E553-47D2-904F-3FCC920D8FE4) (Shutdown) (unavailable, runtime profile not found)
        iPad 2 (B0DA2F65-2109-4834-8C50-F874F5307700) (Shutdown) (unavailable, runtime profile not found)
        iPad Retina (065B6FC2-AB96-4ACA-8035-49B5BA0E6639) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (C3A60BDD-A35F-478B-A3B4-FFB0FC989911) (Shutdown) (unavailable, runtime profile not found)
        Resizable iPad (DC030696-1CD4-4164-9ADA-1B0D28E75821) (Shutdown) (unavailable, runtime profile not found)
        Resizable iPhone (1A29C631-A7BF-4E00-9EE8-E73615D4A73C) (Shutdown) (unavailable, runtime profile not found)
    -- Unavailable: com.apple.CoreSimulator.SimRuntime.iOS-8-1 --
        iPhone 4s (5B01B3C9-FF3B-428D-B612-D07802D7576D) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5 (F6DCD89A-77AC-4A0B-A604-FD3F419731AC) (Shutdown) (unavailable, runtime profile not found)
        iPhone 5s (79FCDDBF-0A46-4ED5-B5A3-BA6552B16F2D) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 (401C99E0-50CA-4760-B76E-3D695E6D9841) (Shutdown) (unavailable, runtime profile not found)
        iPhone 6 Plus (318638EE-AF9A-40EF-95CC-64F73ADC98F7) (Shutdown) (unavailable, runtime profile not found)
        iPad 2 (FC5B7A9B-0F07-4433-BD64-8BA0B45E6F38) (Shutdown) (unavailable, runtime profile not found)
        iPad Retina (807D5198-DC04-4DCA-997F-5E7C95935A39) (Shutdown) (unavailable, runtime profile not found)
        iPad Air (EF5B0810-EFAA-4CA0-9447-3087A96D5345) (Shutdown) (unavailable, runtime profile not found)
        Resizable iPad (29F65C50-CF93-47A1-8B13-3A84FA1B4B82) (Shutdown) (unavailable, runtime profile not found)
        Resizable iPhone (D43DE1C5-0F84-4871-87DB-0AF7143F8C2F) (Shutdown) (unavailable, runtime profile not found)
    

    ... and a bunch more. I see that i only have the 12.1 runtime installed. The ID mentioned in the crash is listed, but with the 10.2 runtime. So that is what I installed next. I run screenshots again. But this time, the 11.2 runtime is picked!

    Warning: multiple versions of 'iPhone 7 Plus' detected.
      Using 'iPhone 7 Plus' with iOS: com.apple.CoreSimulator.SimRuntime.iOS-11-2, ID: 3D913659-FD52-4F95-995D-ACE8D49F354E.
    Clearing images in ios/fastlane/screenshots/en-US for 'iPhone 7 Plus'...
    Starting simulator 'iPhone 7 Plus' in locale en-US ...
    2019-03-13 18:57:37.876 simctl[61235:3723917] *** Assertion failure in -[SimDevice _onBootstrapQueue_bootWithOptions:error:](), /BuildRoot/Library/Caches/com.apple.xbs/Sources/CoreSimulator/CoreSimulator-581.2/CoreSimulator/SimDevice.m:1776
    2019-03-13 18:57:37.877 simctl[61235:3723917] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Unable to determine runtime bundle when booting device.'
    

    Not giving up and now installing the 11.2 runtime. We'll see who wins :-) I read in one of the closed issues that there was a problem with determining the correct ID's. Maybe these different runtime versions have something to do with it?

    bug good first issue 
    opened by yvanvds 12
  • Does not work on flutter master

    Does not work on flutter master

    Hi,

    screenshots does not work against master, even though flutter drive does. The output I'm getting is:

    > screenshots
    Warning: 'Nexus 6P' does not have a matching emulator.
           : Using 'Nexus_6P_API_28'.
    Clearing images in ios/fastlane/screenshots/en-AU for 'iPhone X'...
    Clearing images in ios/fastlane/screenshots/en-AU for 'iPad Pro (12.9-inch) (2nd generation)'...
    Clearing images in android/fastlane/metadata/android/en-AU/images/phoneScreenshots for 'Nexus 6P'...
    Starting emulator 'Nexus 6P' in locale en-AU ...
    Emulator is ready
    Capturing screenshots with test app test_driver/app.dart on emulator 'Nexus 6P' in locale en-AU ...
    Using device Android SDK built for x86.
    Starting application: test_driver/app.dart
    Initializing gradle...                                              1.2s
    Resolving dependencies...                                           2.4s
    Installing build/app/outputs/apk/app.apk...                         3.4s
    Running Gradle task 'assembleDebug'...                          
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    
    registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
    Running Gradle task 'assembleDebug'...                             10.9s
    Built build/app/outputs/apk/debug/app-debug.apk.
    Installing build/app/outputs/apk/app.apk...                         3.0s
    I/flutter (26014): Observatory listening on http://127.0.0.1:32813/bp9xbtUc2jc=/
    00:00 +0: Screenshots (setUpAll)
    Waiting for flutter driver to connect.
    

    And there is just hangs. It does the same thing if I disable Android and just use iOS.

    opened by kentcb 10
  • Stuck after starting Android emulator in locale en-US

    Stuck after starting Android emulator in locale en-US

    I'm seeing this issue as well with Android emulators (iOS simulators work fine), and am using only en-US:

    screenshots.yaml:

    ...
    locales:
    #  - fr-CA
      - en-US # this is assumed to be the default for your test machine.
    ...
    devices:
      ios:
        - iPhone X
        - iPad Pro (12.9-inch) (2nd generation)
      android:
        - Nexus 6P
    ...
    

    Issue exists for both Nexus 5X and 6P.

    $ emulator -list-avds
    Nexus_5X_API_27
    Nexus_6P_API_28
    

    Originally posted by @noumaans in https://github.com/mmcc007/screenshots/issues/19#issuecomment-477313724

    bug enhancement 
    opened by mmcc007 10
  • Can't install on M1

    Can't install on M1

    Can't seem to get this installed and working on an M1 Mac.

    flutter doctor
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, 3.0.1, on macOS 12.3.1 21E258 darwin-arm, locale en-US)
    [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc4)
    [✓] Xcode - develop for iOS and macOS (Xcode 13.4)
    [✓] Chrome - develop for the web
    [✓] Android Studio (version 2021.2)
    [✓] VS Code (version 1.67.2)
    [✓] Connected device (2 available)
    [✓] HTTP Host Availability
    
    • No issues found!
    
    flutter pub global activate screenshots
    Resolving dependencies...
    + archive 2.0.13 (3.3.0 available)
    + args 1.6.0 (2.3.1 available)
    + charcode 1.3.1
    + collection 1.16.0
    + convert 2.1.1 (3.0.2 available)
    + crypto 2.1.5 (3.0.2 available)
    + file 5.2.1 (6.1.2 available)
    + intl 0.16.1 (0.17.0 available)
    + meta 1.8.0
    + path 1.8.2
    + platform 2.2.1 (3.1.0 available)
    + process 3.0.13 (4.2.4 available)
    + pub_cache 0.2.3 (0.3.1 available)
    + pub_semver 1.4.4 (2.1.1 available)
    + resource 2.1.7
    + screenshots 2.1.1
    + source_span 1.9.0
    + string_scanner 1.1.1
    + term_glyph 1.2.0
    + tool_base 1.9.5+3
    + tool_mobile 1.9.5+1
    + typed_data 1.3.1
    + yaml 2.2.1 (3.1.1 available)
    Building package executables...
    Failed to build screenshots:main:
    ../../../../.pub-cache/hosted/pub.dartlang.org/platform-2.2.1/lib/src/interface/local_platform.dart:45:41: Error: Member not found: 'packageRoot'.
      String get packageRoot => io.Platform.packageRoot;
                                            ^^^^^^^^^^^
    pub finished with exit code 1
    
    opened by fennelhans 5
  • screenshots >=1.0.0 is incompatible with shared_preferences >=2.0.0.

    screenshots >=1.0.0 is incompatible with shared_preferences >=2.0.0.

    Can you migrate from file ^5.0.7 to file ^6.0.0 ?

    The current Dart SDK version is 2.13.4.

    Because screenshots >=1.0.0 depends on file ^5.0.7 and shared_preferences_windows >=2.0.0 depends on file ^6.0.0, screenshots >=1.0.0 is incompatible with shared_preferences_windows >=2.0.0. And because shared_preferences >=2.0.0 <2.0.8 depends on shared_preferences_windows ^2.0.0 and shared_preferences >=2.0.8 requires SDK version >=2.14.0 <3.0.0, screenshots >=1.0.0 is incompatible with shared_preferences >=2.0.0. So, because max66900_data_logger depends on both shared_preferences ^2.0.6 and screenshots ^2.1.1, version solving failed. pub get failed (1; So, because max66900_data_logger depends on both shared_preferences ^2.0.6 and screenshots ^2.1.1, version solving failed.)

    opened by ghost 1
  • Version conflicts on  process flutter_driver and screenshots dependencies

    Version conflicts on process flutter_driver and screenshots dependencies

    Because screenshots >=1.0.0 depends on process ^3.0.9 and every version of flutter_driver from sdk depends on process 4.2.1, screenshots >=1.0.0 is incompatible with flutter_driver from sdk. So, because ad_app depends on both flutter_driver any from sdk and screenshots ^2.1.1, version solving failed.

    opened by HarminderSinghSandhu 1
  • Version Solving Failed

    Version Solving Failed

    pub get stacktrace

    Because no versions of flutter_launcher_icons match >0.9.0 <0.10.0 and flutter_launcher_icons 0.9.0 depends on yaml ^3.0.0-nullsafety.0, flutter_launcher_icons ^0.9.0 requires yaml ^3.0.0-nullsafety.0. And because every version of screenshots depends on yaml ^2.1.15, flutter_launcher_icons ^0.9.0 is incompatible with screenshots. So, because e_sop depends on both screenshots ^2.1.1 and flutter_launcher_icons ^0.9.0, version solving failed. pub get failed (1; So, because e_sop depends on both screenshots ^2.1.1 and flutter_launcher_icons ^0.9.0, version solving failed.)

    Flutter version

    Flutter 2.2.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision b22742018b (12 days ago) • 2021-05-14 19:12:57 -0700 Engine • revision a9d88a4d18 Tools • Dart 2.13.0

    opened by LokieVikky 2
  • unhandled exception - command failed

    unhandled exception - command failed

    Process stops while installing application on the target device (Nexus 6P)

    Running Gradle task 'assembleDebug'...                            239.2s
    ✓ Built build/app/outputs/flutter-apk/app-debug.apk.
    Installing build/app/outputs/flutter-apk/app.apk...                 3.5s
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/_goldens_io.dart:9:8: Error: Not found: 'dart:ui'
    import 'dart:ui';
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/accessibility.dart:8:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui;
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/animation_sheet.dart:6:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui;
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/binding.dart:7:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui;
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/frame_timing_summarizer.dart:5:8: Error: Not found: 'dart:ui'
    import 'dart:ui';
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/image.dart:7:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui;
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/matchers.dart:7:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui;
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/matchers.dart:8:8: Error: Not found: 'dart:ui'
    import 'dart:ui';
           ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/test_pointer.dart:10:1: Error: Not found: 'dart:ui'
    export 'dart:ui' show Offset;
    ^
    ../../Library/Android/sdk/flutter/packages/flutter_test/lib/src/window.dart:6:8: Error: Not found: 'dart:ui'
    import 'dart:ui' as ui hide window;
           ^
    Unhandled exception:
    command failed: exitcode=1, cmd='flutter -d emulator-5554 drive lib/main.dart', workingDirectory=., mode=normal
    #0      streamCmd (package:screenshots/src/utils.dart:405:7)
    <asynchronous suspension>
    #1      Screenshots.runProcessTests (package:screenshots/src/run.dart:403:7)
    <asynchronous suspension>
    #2      Screenshots.runTestsOnAll (package:screenshots/src/run.dart:353:11)
    <asynchronous suspension>
    #3      Screenshots.run (package:screenshots/src/run.dart:127:5)
    <asynchronous suspension>
    #4      AppContext.run.<anonymous closure> (package:tool_base/src/base/context.dart:154:19)
    <asynchronous suspension>
    #5      AppContext.run (package:tool_base/src/base/context.dart:153:12)
    <asynchronous suspension>
    #6      runInContext (package:screenshots/src/context_runner.dart:16:10)
    <asynchronous suspension>
    #7      main (file:///Users/igorlsambo/.pub-cache/hosted/pub.dartlang.org/screenshots-2.1.1/bin/main.dart:122:19)
    <asynchronous suspension> 
    
    opened by LSambo02 7
  • Is this package still maintained?

    Is this package still maintained?

    Looks like last pub.dev release was back in 2019 and there the code is not null safe?

    In case it is, should we be installing it some other way?

    In case it is not, are there any other alternatives?

    Thanks!

    opened by jlubeck 8
Releases(0.0.23)
Owner
Maurice McCabe
Flutter fan
Maurice McCabe
Interactive command line interface Couchbase Lite REPL utility built with the Dart

Couchbase Lite Dart CLI Interactive command line interface Couchbase Lite REPL utility built with the Dart programming language. This code uses the cb

Pieter Greyling 2 Jul 20, 2022
Protofu is a Dart Command Line tool for generating your protobufs and included dependencies in one command.

ProtoFu - let me compile that for you ProtoFu exists to make working with protobufs easier. Gone are the days of downloading protoc and the dart proto

John McDole 5 Oct 27, 2022
Package your Flutter app into OS-specific bundles (.dmg, .exe, etc.) via Dart or the command line.

flutter_distributor Package your Flutter app into OS-specific bundles (.dmg, .exe, etc.) via Dart or the command line. The flutter_distributor source

LeanFlutter 416 Dec 24, 2022
Listen to remote Flutter GTK application instances' command-line arguments and file open requests.

gtk_application This package allows the primary Flutter GTK application instance to listen to remote application instances' command-line arguments and

null 12 Dec 15, 2022
changelog.dart provides a library and a command-line application to manage in the correct way the git metadata to build the changelog between two release

changelog.dart ?? changelog.dart: a collection of tools to manages in a fashion way a repository as maintainer. ?? Project Homepage Table of Content I

Vincenzo Palazzo 7 Dec 18, 2022
An incredible command line interface for Flutter.

Fast CLI An incredible command line interface for Flutter. It allows you to create your own CLI without coding a line. With this CLI, you can create y

Pedro Bissonho 41 Jul 12, 2022
shared_versions is a command line tool that allow share the versions for multiple packages in Flutter

shared_versions shared_versions is a CLI tool that allow share the versions for multiple packages in Flutter. Usage shared_versions will match the pac

Littlegnal 6 Sep 20, 2022
This is a command-line app written on dart language for flutter applications that will help you to generate some boilerplate code

dart-generator Manual installation: 1- generate a platform executable from code dart compile exe main.dart -o generator this will generate a new gene

One Studio 11 Oct 26, 2022
Icons Launcher - A command-line tool that simplifies the task of updating your Flutter app's launcher icon.

Icons Launcher - A command-line tool that simplifies the task of updating your Flutter app's launcher icon. Full flexibility allows you to only update the launcher icon for specific platforms as needed.

Mrr Hak 48 Nov 17, 2022
A command-line application provide an load optimization solution for flutter web

一个命令行工具,针对flutter web加载慢和缓存问题提供了一套解决方案。 功能 通过大文件分片和资源文件cdn化方式,优化flutter web页面加载慢问题。 通过资源文件hash化,解决浏览器强缓存导致功能无法更新问题。 开始 局部安装 dev_dependencies: flutte

Barry 10 Dec 29, 2022
Command Line Interface (CLI) for Lucifer

Lucy Command Line Interface (CLI) for Lucifer. Installation Activate command line from your terminal with this command. pub global activate lucy Usage

Salman S 1 Dec 16, 2021
A Nerolab Command Line Interface for Dart created by Nerolab

Nerolab CLI Nerolab Command Line Interface for Dart. Special thanks to GroovinChip with groovin_cli and very_good_cli. Installing dart pub global acti

Nerolab 1 Jan 19, 2022
☄ Anime/Manga command-line interface backed up by Tenka.

Yukimi ☄ Anime/Manga command-line interface backed up by Tenka. By using this project, you agree to the usage policy. Installation Pre-built binaries

Yukino Org 28 Jan 6, 2023
This is a simple Gantt chart generator written as Dart command line tool.

Gantt Chart Generator This is a simple Gantt chart generator written as Dart command line tool. Currently the tool generates an HTML/CSS Gantt chart.

John Lyon-Smith 1 Apr 26, 2022
A flutter package from AsurRaa for widgets and utility functions to support mobile departments here.

sura_flutter A flutter package from AsurRaa for custom widgets and utility functions. Migrate from 0.2.x to 0.3.x BREAKING CHANGE: remove FutureManage

AsurRaa 4 Nov 15, 2022
A Dart package that constantly writes a string to an IOSink, simillarly to the UNIX yes utility.

yes A Dart package that constantly writes a string to an IOSink, simillarly to the UNIX yes utility. Usage // Write to stdout for 5 seconds. final con

null 0 Sep 22, 2022
A Dart utility package for easy async task cancellation

Dart Cancellation Token. Inspired by CancellationToken in C#. A Dart utility package for easy async task cancellation.

Petrus Nguyễn Thái Học 4 Sep 6, 2022
📐 It's a set of common utility strategies to work with responsive styles with Flutter and CSS in JS

@displaykit/responsive_styles You don't need to be worried just because you have to support multiple screens ?? ?? ?? ?? . It's a set of common utilit

DisplayKit Tech 42 Dec 16, 2022
A pure Dart utility library that checks for an internet connection by opening a socket to a list of specified addresses, each with individual port and timeout. Defaults are provided for convenience.

data_connection_checker A pure Dart utility library that checks for an internet connection by opening a socket to a list of specified addresses, each

Kristiyan Mitev 103 Nov 29, 2022