From 12551e38bd884e58d331201fad5828b138361bbc Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 4 Dec 2020 11:28:29 -0800 Subject: [PATCH 01/39] xcode 12 for tasks --- .cirrus.yml | 323 ++++++++++++++++++++++++++++------------------------ 1 file changed, 172 insertions(+), 151 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 98cd6276e0e6..ce23c4a663ee 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,13 +1,138 @@ +# task: +# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins +# only_if: $CIRRUS_TAG == '' +# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' +# container: +# dockerfile: .ci/Dockerfile +# cpu: 8 +# memory: 16G +# env: +# INTEGRATION_TEST_PATH: "./packages/integration_test" +# upgrade_script: +# - flutter channel stable +# - flutter upgrade +# - flutter channel master +# - flutter upgrade +# - git fetch origin master +# activate_script: pub global activate flutter_plugin_tools +# matrix: +# - name: publishable +# script: +# - flutter channel master +# - ./script/check_publish.sh +# - name: format +# install_script: +# - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - +# - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" +# - sudo apt-get update +# - sudo apt-get install -y --allow-unauthenticated clang-format-7 +# format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-7 +# - name: test +# env: +# matrix: +# CHANNEL: "master" +# CHANNEL: "stable" +# test_script: +# # TODO(jackson): Allow web plugins once supported on stable +# # https://github.com/flutter/flutter/issues/42864 +# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi +# - flutter channel $CHANNEL +# - ./script/incremental_build.sh test +# - name: analyze +# script: ./script/incremental_build.sh analyze +# - name: build_all_plugins_apk +# script: +# # TODO(jackson): Allow web plugins once supported on stable +# # https://github.com/flutter/flutter/issues/42864 +# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi +# - flutter channel $CHANNEL +# - ./script/build_all_plugins_app.sh apk +# - name: integration_web_smoke_test +# # Tests integration example test in web. +# only_if: "changesInclude('.cirrus.yml', 'packages/integration_test/**') || $CIRRUS_PR == ''" +# install_script: +# - flutter config --enable-web +# - git clone https://github.com/flutter/web_installers.git +# - cd web_installers/packages/web_drivers/ +# - pub get +# - dart lib/web_driver_installer.dart chromedriver --install-only +# - ./chromedriver/chromedriver --port=4444 & +# test_script: +# - cd $INTEGRATION_TEST_PATH/example/ +# - flutter drive -v --driver=test_driver/integration_test.dart --target=integration_test/example_test.dart -d web-server --release --browser-name=chrome +# - name: build-apks+java-test+firebase-test-lab +# env: +# matrix: +# PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" +# PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" +# PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4" +# PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" +# matrix: +# CHANNEL: "master" +# CHANNEL: "stable" +# MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] +# GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4] +# script: +# # TODO(jackson): Allow web plugins once supported on stable +# # https://github.com/flutter/flutter/issues/42864 +# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi +# - flutter channel $CHANNEL +# # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they +# # might include non-ASCII characters which makes Gradle crash. +# # See: https://github.com/flutter/flutter/issues/24935 +# # This is a temporary workaround until we figure how to properly configure +# # a UTF8 locale on Cirrus (or until the Gradle bug is fixed). +# # TODO(amirh): Set the locale to UTF8. +# - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt +# - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt +# - export CIRRUS_CHANGE_MESSAGE="" +# - export CIRRUS_COMMIT_MESSAGE="" +# - ./script/incremental_build.sh build-examples --apk +# - ./script/incremental_build.sh java-test # must come after apk build +# - if [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then +# - echo "This user does not have permission to run Firebase Test Lab tests." +# - else +# - echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json +# - ./script/incremental_build.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26 +# - fi +# - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt` +# - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt` + +# task: +# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins +# only_if: $CIRRUS_TAG == '' +# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' +# container: +# dockerfile: .ci/Dockerfile-LinuxDesktop +# cpu: 8 +# memory: 16G +# env: +# INTEGRATION_TEST_PATH: "./packages/integration_test" +# upgrade_script: +# - flutter channel stable +# - flutter upgrade +# - flutter channel master +# - flutter upgrade +# - git fetch origin master +# activate_script: pub global activate flutter_plugin_tools +# matrix: +# - name: build-linux+drive-examples +# install_script: +# - flutter config --enable-linux-desktop +# build_script: +# # TODO(stuartmorgan): Include stable once Linux is supported on stable. +# - flutter channel master +# - ./script/incremental_build.sh build-examples --linux +# - xvfb-run ./script/incremental_build.sh drive-examples --linux + task: + # XCode 11 task + # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins only_if: $CIRRUS_TAG == '' - use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' - container: - dockerfile: .ci/Dockerfile - cpu: 8 - memory: 16G - env: - INTEGRATION_TEST_PATH: "./packages/integration_test" + use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' + osx_instance: + image: catalina-xcode-11.3.1-flutter upgrade_script: - flutter channel stable - flutter upgrade @@ -15,122 +140,29 @@ task: - flutter upgrade - git fetch origin master activate_script: pub global activate flutter_plugin_tools + create_simulator_script: + - xcrun simctl list + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot matrix: - - name: publishable - script: - - flutter channel master - - ./script/check_publish.sh - - name: format - install_script: - - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" - - sudo apt-get update - - sudo apt-get install -y --allow-unauthenticated clang-format-7 - format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-7 - - name: test - env: - matrix: - CHANNEL: "master" - CHANNEL: "stable" - test_script: - # TODO(jackson): Allow web plugins once supported on stable - # https://github.com/flutter/flutter/issues/42864 - - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - - flutter channel $CHANNEL - - ./script/incremental_build.sh test - - name: analyze - script: ./script/incremental_build.sh analyze - - name: build_all_plugins_apk - script: - # TODO(jackson): Allow web plugins once supported on stable - # https://github.com/flutter/flutter/issues/42864 - - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - - flutter channel $CHANNEL - - ./script/build_all_plugins_app.sh apk - - name: integration_web_smoke_test - # Tests integration example test in web. - only_if: "changesInclude('.cirrus.yml', 'packages/integration_test/**') || $CIRRUS_PR == ''" - install_script: - - flutter config --enable-web - - git clone https://github.com/flutter/web_installers.git - - cd web_installers/packages/web_drivers/ - - pub get - - dart lib/web_driver_installer.dart chromedriver --install-only - - ./chromedriver/chromedriver --port=4444 & - test_script: - - cd $INTEGRATION_TEST_PATH/example/ - - flutter drive -v --driver=test_driver/integration_test.dart --target=integration_test/example_test.dart -d web-server --release --browser-name=chrome - - name: build-apks+java-test+firebase-test-lab + - name: lint_darwin_plugins env: matrix: - PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" - PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" - PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4" - PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" - matrix: - CHANNEL: "master" - CHANNEL: "stable" - MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] - GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4] + PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" + PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" script: - # TODO(jackson): Allow web plugins once supported on stable - # https://github.com/flutter/flutter/issues/42864 - - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - - flutter channel $CHANNEL - # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they - # might include non-ASCII characters which makes Gradle crash. - # See: https://github.com/flutter/flutter/issues/24935 - # This is a temporary workaround until we figure how to properly configure - # a UTF8 locale on Cirrus (or until the Gradle bug is fixed). - # TODO(amirh): Set the locale to UTF8. - - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt - - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt - - export CIRRUS_CHANGE_MESSAGE="" - - export CIRRUS_COMMIT_MESSAGE="" - - ./script/incremental_build.sh build-examples --apk - - ./script/incremental_build.sh java-test # must come after apk build - - if [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then - - echo "This user does not have permission to run Firebase Test Lab tests." - - else - - echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json - - ./script/incremental_build.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26 - - fi - - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt` - - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt` - -task: - # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins - only_if: $CIRRUS_TAG == '' - use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' - container: - dockerfile: .ci/Dockerfile-LinuxDesktop - cpu: 8 - memory: 16G - env: - INTEGRATION_TEST_PATH: "./packages/integration_test" - upgrade_script: - - flutter channel stable - - flutter upgrade - - flutter channel master - - flutter upgrade - - git fetch origin master - activate_script: pub global activate flutter_plugin_tools - matrix: - - name: build-linux+drive-examples - install_script: - - flutter config --enable-linux-desktop - build_script: - # TODO(stuartmorgan): Include stable once Linux is supported on stable. - - flutter channel master - - ./script/incremental_build.sh build-examples --linux - - xvfb-run ./script/incremental_build.sh drive-examples --linux + # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. + - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm + # Skip the dummy podspecs used to placate the tool. + - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm + - ./script/incremental_build.sh podspecs task: + # XCode 12 task # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-11.3.1-flutter + image: catalina-xcode-12.0-flutter upgrade_script: - flutter channel stable - flutter upgrade @@ -140,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: @@ -149,17 +181,6 @@ task: - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - flutter channel $CHANNEL - ./script/build_all_plugins_app.sh ios --no-codesign - - name: lint_darwin_plugins - env: - matrix: - PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" - PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" - script: - # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. - - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm - # Skip the dummy podspecs used to placate the tool. - - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm - - ./script/incremental_build.sh podspecs - name: build-ipas+drive-examples env: PATH: $PATH:/usr/local/bin @@ -180,29 +201,29 @@ task: - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa - ./script/incremental_build.sh drive-examples - - ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS -task: - # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins - only_if: $CIRRUS_TAG == '' - use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' - osx_instance: - image: catalina-xcode-11.3.1-flutter - setup_script: - - flutter config --enable-macos-desktop - upgrade_script: - - flutter channel master - - flutter upgrade - - git fetch origin master - activate_script: pub global activate flutter_plugin_tools - matrix: - - name: build_all_plugins_app - script: - - flutter channel master - - ./script/build_all_plugins_app.sh macos - - name: build-apps+drive-examples - env: - PATH: $PATH:/usr/local/bin - build_script: - - flutter channel master - - ./script/incremental_build.sh build-examples --macos --no-ipa - - ./script/incremental_build.sh drive-examples --macos + - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.0' --skip $PLUGINS_TO_SKIP_XCTESTS +# task: +# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins +# only_if: $CIRRUS_TAG == '' +# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' +# osx_instance: +# image: catalina-xcode-11.3.1-flutter +# setup_script: +# - flutter config --enable-macos-desktop +# upgrade_script: +# - flutter channel master +# - flutter upgrade +# - git fetch origin master +# activate_script: pub global activate flutter_plugin_tools +# matrix: +# - name: build_all_plugins_app +# script: +# - flutter channel master +# - ./script/build_all_plugins_app.sh macos +# - name: build-apps+drive-examples +# env: +# PATH: $PATH:/usr/local/bin +# build_script: +# - flutter channel master +# - ./script/incremental_build.sh build-examples --macos --no-ipa +# - ./script/incremental_build.sh drive-examples --macos From 64f2b50d41df5bf02d7014da527154110a325b8b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 4 Dec 2020 13:16:48 -0800 Subject: [PATCH 02/39] update waiting time --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 1ba8457c9709..b7f1cf2067a2 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -82,7 +82,7 @@ - (void)launchPickerAndCancel { XCUIElement* cancelButton = [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; - if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { + if (![cancelButton waitForExistenceWithTimeout:60]) { os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", @(kElementWaitingTime)); From 28f9f7bcad492c0bcc82431e4c2c7f999fea6f37 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 10:19:12 -0800 Subject: [PATCH 03/39] update test --- .../ImagePickerFromGalleryUITests.m | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index b7f1cf2067a2..709d41b800ad 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -23,16 +23,14 @@ - (void)setUp { [self.app launch]; [self addUIInterruptionMonitorWithDescription:@"Permission popups" handler:^BOOL(XCUIElement* _Nonnull interruptingElement) { - XCUIElement* ok = interruptingElement.buttons[@"OK"]; - if (ok.exists) { - [ok tap]; - } - // iOS 14. - XCUIElement* allPhotoPermission = - interruptingElement - .buttons[@"Allow Access to All Photos"]; - if (allPhotoPermission.exists) { + if (@available(iOS 14, *)) { + XCUIElement* allPhotoPermission = + interruptingElement + .buttons[@"Allow Access to All Photos"]; [allPhotoPermission tap]; + } else { + XCUIElement* ok = interruptingElement.buttons[@"OK"]; + [ok tap]; } return YES; }]; @@ -82,10 +80,15 @@ - (void)launchPickerAndCancel { XCUIElement* cancelButton = [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; - if (![cancelButton waitForExistenceWithTimeout:60]) { - os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); - XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", - @(kElementWaitingTime)); + if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { + // There is a known bug where the permission popups interruption won't get fired until a tap + // happened in the app. We expect a permission popup so we do a tap here. + [self.app tap]; + if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { + os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); + XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", + @(kElementWaitingTime)); + } } XCTAssertTrue(cancelButton.exists); From f4c949acc1a7a9e5b88cb7ee48d868cf092a7e6a Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 10:45:53 -0800 Subject: [PATCH 04/39] try fix image picker test --- .../RunnerUITests/ImagePickerFromGalleryUITests.m | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 709d41b800ad..14a789c45ac1 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -80,15 +80,12 @@ - (void)launchPickerAndCancel { XCUIElement* cancelButton = [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; + + [self.app activate]; if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { - // There is a known bug where the permission popups interruption won't get fired until a tap - // happened in the app. We expect a permission popup so we do a tap here. - [self.app tap]; - if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { - os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); - XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", - @(kElementWaitingTime)); - } + os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); + XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", + @(kElementWaitingTime)); } XCTAssertTrue(cancelButton.exists); From de0286ade1a0221aa4818643d57ecaf9365ea60d Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 10:47:46 -0800 Subject: [PATCH 05/39] remove unnecessary tasks --- .cirrus.yml | 66 ++++++++++++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index ce23c4a663ee..354fb1aa9035 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -125,36 +125,36 @@ # - ./script/incremental_build.sh build-examples --linux # - xvfb-run ./script/incremental_build.sh drive-examples --linux -task: - # XCode 11 task - # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. - # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins - only_if: $CIRRUS_TAG == '' - use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' - osx_instance: - image: catalina-xcode-11.3.1-flutter - upgrade_script: - - flutter channel stable - - flutter upgrade - - flutter channel master - - flutter upgrade - - git fetch origin master - activate_script: pub global activate flutter_plugin_tools - create_simulator_script: - - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot - matrix: - - name: lint_darwin_plugins - env: - matrix: - PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" - PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" - script: - # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. - - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm - # Skip the dummy podspecs used to placate the tool. - - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm - - ./script/incremental_build.sh podspecs +# task: +# # XCode 11 task +# # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. +# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins +# only_if: $CIRRUS_TAG == '' +# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' +# osx_instance: +# image: catalina-xcode-11.3.1-flutter +# upgrade_script: +# - flutter channel stable +# - flutter upgrade +# - flutter channel master +# - flutter upgrade +# - git fetch origin master +# activate_script: pub global activate flutter_plugin_tools +# create_simulator_script: +# - xcrun simctl list +# - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot +# matrix: +# - name: lint_darwin_plugins +# env: +# matrix: +# PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" +# PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" +# script: +# # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. +# - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm +# # Skip the dummy podspecs used to placate the tool. +# - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm +# - ./script/incremental_build.sh podspecs task: # XCode 12 task @@ -184,7 +184,7 @@ task: - name: build-ipas+drive-examples env: PATH: $PATH:/usr/local/bin - PLUGINS_TO_SKIP_XCTESTS: "battery/battery,camera/camera,connectivity/connectivity,device_info/device_info,espresso,google_maps_flutter/google_maps_flutter,google_sign_in/google_sign_in,in_app_purchase,integration_test,ios_platform_images,local_auth,package_info,path_provider/path_provider,quick_actions,sensors,shared_preferences/shared_preferences,url_launcher/url_launcher,video_player/video_player,webview_flutter,wifi_info_flutter/wifi_info_flutter" + PLUGINS_TO_SKIP_XCTESTS: "battery/battery,camera/camera,connectivity/connectivity,device_info/device_info,espresso,google_maps_flutter/google_maps_flutter,google_sign_in/google_sign_in,in_app_purchase,integration_test,ios_platform_images,local_auth,package_info,path_provider/path_provider,quick_actions,sensors,shared_preferences/shared_preferences,url_launcher/url_launcher,video_player/video_player,webview_flutter,wifi_info_flutter/wifi_info_flutter,share" matrix: PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" @@ -192,7 +192,7 @@ task: PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" matrix: CHANNEL: "master" - CHANNEL: "stable" + # CHANNEL: "stable" SIMCTL_CHILD_MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] build_script: # TODO(jackson): Allow web plugins once supported on stable @@ -200,7 +200,7 @@ task: - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa - - ./script/incremental_build.sh drive-examples + # - ./script/incremental_build.sh drive-examples - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.0' --skip $PLUGINS_TO_SKIP_XCTESTS # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins From bd0200ab5b223db645f20ef52bd233ebe61d4729 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 11:26:03 -0800 Subject: [PATCH 06/39] try fix image picker test again --- .../RunnerUITests/ImagePickerFromGalleryUITests.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 14a789c45ac1..2892389b5dff 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -10,6 +10,7 @@ @interface ImagePickerFromGalleryUITests : XCTestCase @property(nonatomic, strong) XCUIApplication* app; +@property(nonatomic, strong) XCTestExpectation *alertExpectation; @end @@ -21,17 +22,29 @@ - (void)setUp { self.continueAfterFailure = NO; self.app = [[XCUIApplication alloc] init]; [self.app launch]; + __weak typeof(self) weakSelf = self; [self addUIInterruptionMonitorWithDescription:@"Permission popups" handler:^BOOL(XCUIElement* _Nonnull interruptingElement) { if (@available(iOS 14, *)) { XCUIElement* allPhotoPermission = interruptingElement .buttons[@"Allow Access to All Photos"]; + if (![allPhotoPermission waitForExistenceWithTimeout:kElementWaitingTime]) { + os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); + XCTFail(@"Failed due to not able to find allPhotoPermission button with %@ seconds", + @(kElementWaitingTime)); + } [allPhotoPermission tap]; } else { XCUIElement* ok = interruptingElement.buttons[@"OK"]; + if (![ok waitForExistenceWithTimeout:kElementWaitingTime]) { + os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); + XCTFail(@"Failed due to not able to find ok button with %@ seconds", + @(kElementWaitingTime)); + } [ok tap]; } + [self.alertExpectation fulfill]; return YES; }]; } @@ -69,10 +82,12 @@ - (void)launchPickerAndCancel { XCTAssertTrue(pickButton.exists); [pickButton tap]; + self.alertExpectation = [self expectationWithDescription:@"Waiting for alert popup dismiss"]; // There is a known bug where the permission popups interruption won't get fired until a tap // happened in the app. We expect a permission popup so we do a tap here. [self.app tap]; + [self waitForExpectations:@[self.alertExpectation] timeout:kElementWaitingTime]; // Find and tap on the `Cancel` button. NSPredicate* predicateToFindCancelButton = From 927d25052ca01c230e0a1324c0fc6d9459c1fbeb Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 12:52:44 -0800 Subject: [PATCH 07/39] try fix again --- .../ImagePickerFromGalleryUITests.m | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 2892389b5dff..e55723cb363e 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -10,7 +10,6 @@ @interface ImagePickerFromGalleryUITests : XCTestCase @property(nonatomic, strong) XCUIApplication* app; -@property(nonatomic, strong) XCTestExpectation *alertExpectation; @end @@ -44,7 +43,17 @@ - (void)setUp { } [ok tap]; } - [self.alertExpectation fulfill]; + // Find and tap on the `Cancel` button. + NSPredicate* predicateToFindCancelButton = + [NSPredicate predicateWithFormat:@"label == %@", @"Cancel"]; + XCUIElement* cancelButton = + [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; + + if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { + os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); + XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", + @(kElementWaitingTime)); + } return YES; }]; } @@ -82,12 +91,10 @@ - (void)launchPickerAndCancel { XCTAssertTrue(pickButton.exists); [pickButton tap]; - self.alertExpectation = [self expectationWithDescription:@"Waiting for alert popup dismiss"]; // There is a known bug where the permission popups interruption won't get fired until a tap // happened in the app. We expect a permission popup so we do a tap here. [self.app tap]; - [self waitForExpectations:@[self.alertExpectation] timeout:kElementWaitingTime]; // Find and tap on the `Cancel` button. NSPredicate* predicateToFindCancelButton = @@ -96,7 +103,6 @@ - (void)launchPickerAndCancel { XCUIElement* cancelButton = [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; - [self.app activate]; if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", From 37616e79c0e5c663d6cc8d285c40bf825b1e0841 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 14:06:05 -0800 Subject: [PATCH 08/39] try xcode 12.2 --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 354fb1aa9035..82f0bbdf5714 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.0-flutter + image: catalina-xcode-12.2-flutter upgrade_script: - flutter channel stable - flutter upgrade @@ -172,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: From f5b92696d92a2cdd241954a739662199a0460ee2 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 14:39:39 -0800 Subject: [PATCH 09/39] xcode 12.1 --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 82f0bbdf5714..60da09509790 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.2-flutter + image: catalina-xcode-12.1-flutter upgrade_script: - flutter channel stable - flutter upgrade @@ -172,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-1 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: From e1d8df41cf1528e6d07e31fc5787556565505388 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 14:47:35 -0800 Subject: [PATCH 10/39] ios 14.2 simulator --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 60da09509790..440a07190c6a 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -172,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-1 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: From 22546850a2e2a0a82da05c23e1d7fb20a94b5416 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 7 Dec 2020 16:57:38 -0800 Subject: [PATCH 11/39] simulator 14.2 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 440a07190c6a..2da3a55bbf61 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -201,7 +201,7 @@ task: - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa # - ./script/incremental_build.sh drive-examples - - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.0' --skip $PLUGINS_TO_SKIP_XCTESTS + - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.2' --skip $PLUGINS_TO_SKIP_XCTESTS # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins # only_if: $CIRRUS_TAG == '' From d84c9501b867b2af6eadeb5fe63d29ea00cd4bd6 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Dec 2020 10:33:56 -0800 Subject: [PATCH 12/39] fix image picker test --- .../image_picker/image_picker/CHANGELOG.md | 5 +++++ .../ImagePickerFromGalleryUITests.m | 22 +++++++++---------- .../image_picker/image_picker/pubspec.yaml | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index 26e8b100cd20..85ad2ced8c0c 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.6.7+15 + +* iOS: Update XCUITests to handle some SDK changes related to accessibility. + * See https://github.com/flutter/flutter/issues/71927 + ## 0.6.7+14 * Set up XCUITests. diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index e55723cb363e..bd22570ab29d 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -43,17 +43,6 @@ - (void)setUp { } [ok tap]; } - // Find and tap on the `Cancel` button. - NSPredicate* predicateToFindCancelButton = - [NSPredicate predicateWithFormat:@"label == %@", @"Cancel"]; - XCUIElement* cancelButton = - [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; - - if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { - os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); - XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", - @(kElementWaitingTime)); - } return YES; }]; } @@ -113,10 +102,19 @@ - (void)launchPickerAndCancel { [cancelButton tap]; // Find the "not picked image text". - XCUIElement* imageNotPickedText = [self.app.otherElements + XCUIElement* imageNotPickedText = [self.app.staticTexts elementMatchingPredicate:[NSPredicate predicateWithFormat:@"label == %@", @"You have not yet picked an image."]]; + if (![imageNotPickedText waitForExistenceWithTimeout:kElementWaitingTime]) { + // Before https://github.com/flutter/engine/pull/22811, the label's a11y type was otherElements. + // TODO(cyanglaz): Remove this after https://github.com/flutter/flutter/commit/057e8230743ec96f33b73948ccd6b80081e3615e rolled to stable + // https://github.com/flutter/flutter/issues/71927 + imageNotPickedText = [self.app.otherElements + elementMatchingPredicate:[NSPredicate + predicateWithFormat:@"label == %@", + @"You have not yet picked an image."]]; + } if (![imageNotPickedText waitForExistenceWithTimeout:kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); XCTFail(@"Failed due to not able to find imageNotPickedText with %@ seconds", diff --git a/packages/image_picker/image_picker/pubspec.yaml b/packages/image_picker/image_picker/pubspec.yaml index 2dcd7c137b7d..226602a99403 100755 --- a/packages/image_picker/image_picker/pubspec.yaml +++ b/packages/image_picker/image_picker/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker description: Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker -version: 0.6.7+14 +version: 0.6.7+15 flutter: plugin: From 75613a1d2c1a986f59d9708dee9118a007f293be Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Dec 2020 10:34:27 -0800 Subject: [PATCH 13/39] enable share --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 2da3a55bbf61..223eb803de39 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -184,7 +184,7 @@ task: - name: build-ipas+drive-examples env: PATH: $PATH:/usr/local/bin - PLUGINS_TO_SKIP_XCTESTS: "battery/battery,camera/camera,connectivity/connectivity,device_info/device_info,espresso,google_maps_flutter/google_maps_flutter,google_sign_in/google_sign_in,in_app_purchase,integration_test,ios_platform_images,local_auth,package_info,path_provider/path_provider,quick_actions,sensors,shared_preferences/shared_preferences,url_launcher/url_launcher,video_player/video_player,webview_flutter,wifi_info_flutter/wifi_info_flutter,share" + PLUGINS_TO_SKIP_XCTESTS: "battery/battery,camera/camera,connectivity/connectivity,device_info/device_info,espresso,google_maps_flutter/google_maps_flutter,google_sign_in/google_sign_in,in_app_purchase,integration_test,ios_platform_images,local_auth,package_info,path_provider/path_provider,quick_actions,sensors,shared_preferences/shared_preferences,url_launcher/url_launcher,video_player/video_player,webview_flutter,wifi_info_flutter/wifi_info_flutter" matrix: PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" From 0b7c246f49eb248cc079f5e16a3f8d540225db78 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Dec 2020 11:21:35 -0800 Subject: [PATCH 14/39] try xcode 12.1.1 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 223eb803de39..b2afa74f187f 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.1-flutter + image: catalina-xcode-12.1.1-flutter upgrade_script: - flutter channel stable - flutter upgrade From 4754aeb94713f169b7f66f2078aaa0be620c4763 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Dec 2020 11:22:08 -0800 Subject: [PATCH 15/39] try xcode 12.2 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index b2afa74f187f..15f9d7437243 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.1.1-flutter + image: catalina-xcode-12.2-flutter upgrade_script: - flutter channel stable - flutter upgrade From e90ed2c8ebe2fe39eae5c27f2f7b962f71c09022 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 8 Dec 2020 13:11:05 -0800 Subject: [PATCH 16/39] rest to xcode 12.1 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 15f9d7437243..223eb803de39 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.2-flutter + image: catalina-xcode-12.1-flutter upgrade_script: - flutter channel stable - flutter upgrade From 30ef5928a908719006e8e25e31b95df830af8c92 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 10 Dec 2020 09:39:22 -0800 Subject: [PATCH 17/39] draft --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index bd22570ab29d..c84c7fda6914 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -91,7 +91,6 @@ - (void)launchPickerAndCancel { XCUIElement* cancelButton = [self.app.buttons elementMatchingPredicate:predicateToFindCancelButton]; - if (![cancelButton waitForExistenceWithTimeout:kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); XCTFail(@"Failed due to not able to find Cancel button with %@ seconds", From f7c470158c8e16b905ca0ce4f19eb462ce8624ca Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Dec 2020 09:36:14 -0800 Subject: [PATCH 18/39] ios 14.1 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 223eb803de39..62b66621a8fc 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -172,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-1 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: From 5f71bca87a05214e62db8112cf691ef1c54e6c37 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 11 Dec 2020 09:44:59 -0800 Subject: [PATCH 19/39] xcode 12.0 --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 62b66621a8fc..ac29dad027cf 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.1-flutter + image: catalina-xcode-12.0-flutter upgrade_script: - flutter channel stable - flutter upgrade @@ -201,7 +201,7 @@ task: - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa # - ./script/incremental_build.sh drive-examples - - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.2' --skip $PLUGINS_TO_SKIP_XCTESTS + - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.1' --skip $PLUGINS_TO_SKIP_XCTESTS # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins # only_if: $CIRRUS_TAG == '' From bca25b57bbeca114f994d6f82f26e246cc29cf2a Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 14 Dec 2020 10:58:07 -0800 Subject: [PATCH 20/39] xcode 12.1 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index ac29dad027cf..a0ec76fc0edf 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -162,7 +162,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.0-flutter + image: catalina-xcode-12.1-flutter upgrade_script: - flutter channel stable - flutter upgrade From 9ab3345e67cbe78b21ea3d8ddcaef66714b7c427 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 14 Dec 2020 11:09:23 -0800 Subject: [PATCH 21/39] 14.2 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index a0ec76fc0edf..7ebd8a3703be 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -172,7 +172,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-1 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa script: From 62617e0da98e6a799922f56a7a8a96fd6072f86e Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Mon, 14 Dec 2020 11:28:34 -0800 Subject: [PATCH 22/39] test run on 14.2 --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 7ebd8a3703be..223eb803de39 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -201,7 +201,7 @@ task: - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa # - ./script/incremental_build.sh drive-examples - - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.1' --skip $PLUGINS_TO_SKIP_XCTESTS + - ./script/incremental_build.sh xctest --target RunnerUITests --ios-destination 'platform=iOS Simulator,name=iPhone 11,OS=14.2' --skip $PLUGINS_TO_SKIP_XCTESTS # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins # only_if: $CIRRUS_TAG == '' From 2c45fc2adb9c36fdc1de978ba2224f15c203eed8 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Wed, 20 Jan 2021 11:31:47 -0800 Subject: [PATCH 23/39] 12.0 --- .cirrus.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index cc3cf4103623..52bc13642008 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -170,7 +170,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.1-flutter + image: catalina-xcode-12.0-flutter upgrade_script: - sudo gem install cocoapods - flutter channel stable @@ -181,7 +181,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-2 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa env: @@ -220,7 +220,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-11.3.1-flutter + image: catalina-xcode-12.0-flutter setup_script: - flutter config --enable-macos-desktop upgrade_script: From 04d3c38e0c5c99c9b82c039d5372d6e526dbdec0 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Wed, 20 Jan 2021 18:12:25 -0800 Subject: [PATCH 24/39] iphone x --- .cirrus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cirrus.yml b/.cirrus.yml index 52bc13642008..0c12f5162ff9 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -181,7 +181,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa env: From 97328730916d63429f9b194e6837fa56de2c2186 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Wed, 20 Jan 2021 19:47:29 -0800 Subject: [PATCH 25/39] big sur --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 0c12f5162ff9..8976b49fa859 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -170,7 +170,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.0-flutter + image: big-sur-xcode-12.3-flutter upgrade_script: - sudo gem install cocoapods - flutter channel stable @@ -220,7 +220,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: catalina-xcode-12.0-flutter + image: big-sur-xcode-12.3-flutter setup_script: - flutter config --enable-macos-desktop upgrade_script: From 9bc4125a2894ca364d851299ad7229065c61ee8b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 21 Jan 2021 09:45:42 -0800 Subject: [PATCH 26/39] fix image name --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 8976b49fa859..5158c9394038 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -170,7 +170,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: big-sur-xcode-12.3-flutter + image: big-sur-xcode-12.3 upgrade_script: - sudo gem install cocoapods - flutter channel stable @@ -220,7 +220,7 @@ task: only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' osx_instance: - image: big-sur-xcode-12.3-flutter + image: big-sur-xcode-12.3 setup_script: - flutter config --enable-macos-desktop upgrade_script: From b386dd60d65ed919c3c5ebe08926c87b08b639e2 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 21 Jan 2021 10:04:06 -0800 Subject: [PATCH 27/39] fixed simulator version --- .cirrus.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 5158c9394038..99609ca4c512 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -181,7 +181,7 @@ task: activate_script: pub global activate flutter_plugin_tools create_simulator_script: - xcrun simctl list - - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-14-0 | xargs xcrun simctl boot + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-11 com.apple.CoreSimulator.SimRuntime.iOS-14-3 | xargs xcrun simctl boot matrix: - name: build_all_plugins_ipa env: @@ -214,7 +214,7 @@ task: - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa - ./script/incremental_build.sh drive-examples - - ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS + - ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS --ios-destination "platform=iOS Simulator,name=iPhone 11,OS=14.3" task: # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins only_if: $CIRRUS_TAG == '' From 16d163b583dacf2be6abaff2a692eee0c2d9b3ce Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 21 Jan 2021 10:06:05 -0800 Subject: [PATCH 28/39] skip drive for testing --- .cirrus.yml | 54 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 99609ca4c512..19c11c4d7d42 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -213,31 +213,31 @@ task: - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa - - ./script/incremental_build.sh drive-examples + # - ./script/incremental_build.sh drive-examples - ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS --ios-destination "platform=iOS Simulator,name=iPhone 11,OS=14.3" -task: - # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins - only_if: $CIRRUS_TAG == '' - use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' - osx_instance: - image: big-sur-xcode-12.3 - setup_script: - - flutter config --enable-macos-desktop - upgrade_script: - - sudo gem install cocoapods - - flutter channel master - - flutter upgrade - - git fetch origin master - activate_script: pub global activate flutter_plugin_tools - matrix: - - name: build_all_plugins_app - script: - - flutter channel master - - ./script/build_all_plugins_app.sh macos - - name: build-apps+drive-examples - env: - PATH: $PATH:/usr/local/bin - build_script: - - flutter channel master - - ./script/incremental_build.sh build-examples --macos --no-ipa - - ./script/incremental_build.sh drive-examples --macos +# task: +# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins +# only_if: $CIRRUS_TAG == '' +# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' +# osx_instance: +# image: big-sur-xcode-12.3 +# setup_script: +# - flutter config --enable-macos-desktop +# upgrade_script: +# - sudo gem install cocoapods +# - flutter channel master +# - flutter upgrade +# - git fetch origin master +# activate_script: pub global activate flutter_plugin_tools +# matrix: +# - name: build_all_plugins_app +# script: +# - flutter channel master +# - ./script/build_all_plugins_app.sh macos +# - name: build-apps+drive-examples +# env: +# PATH: $PATH:/usr/local/bin +# build_script: +# - flutter channel master +# - ./script/incremental_build.sh build-examples --macos --no-ipa +# - ./script/incremental_build.sh drive-examples --macos From 244ed615b6a4942e970013b42723b66c6627abc2 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Thu, 21 Jan 2021 11:21:31 -0800 Subject: [PATCH 29/39] try experimental --- .cirrus.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.cirrus.yml b/.cirrus.yml index 19c11c4d7d42..cdf8e271d62b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,3 +1,5 @@ +experimental: true + # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins # only_if: $CIRRUS_TAG == '' From c916911864abdf3d3321c87c74c13b585daafb7c Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 10:15:45 -0800 Subject: [PATCH 30/39] add log to xctest --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 74df795a3df3..bddfca8c54b5 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -177,6 +177,7 @@ - (void)launchPickerAndPick { identifier:@"PhotosGridView"] .cells.firstMatch; } + os_log_error(OS_LOG_DEFAULT, "description before picking image %@", self.app.debugDescription); if (![aImage waitForExistenceWithTimeout:kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", self.app.debugDescription); XCTFail(@"Failed due to not able to find an image with %@ seconds", @(kElementWaitingTime)); From e4ccde20d98792e6b4444d946116d2fb72f077fc Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 10:21:20 -0800 Subject: [PATCH 31/39] test picking image first --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index bddfca8c54b5..6bca3f10887d 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -54,8 +54,8 @@ - (void)setUp { } - (void)testPickingFromGallery { - [self launchPickerAndCancel]; [self launchPickerAndPick]; + [self launchPickerAndCancel]; } - (void)launchPickerAndCancel { From 41eace99770eee80a8f3b6ee7dea6e95b89858d3 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 10:34:58 -0800 Subject: [PATCH 32/39] tap self to ensure popup --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 6bca3f10887d..827b629348d4 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -160,6 +160,10 @@ - (void)launchPickerAndPick { XCTAssertTrue(pickButton.exists); [pickButton tap]; + // There is a known bug where the permission popups interruption won't get fired until a tap + // happened in the app. We expect a permission popup so we do a tap here. + [self.app tap]; + // Find an image and tap on it. (IOS 14 UI, images are showing directly) XCUIElement* aImage; if (@available(iOS 14, *)) { From 0a0053202555bba87a8f609b9f6f79add5f2387b Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 10:54:28 -0800 Subject: [PATCH 33/39] try separate tests --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 827b629348d4..294e1b9553e7 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -55,6 +55,9 @@ - (void)setUp { - (void)testPickingFromGallery { [self launchPickerAndPick]; +} + +- (void)testCancel { [self launchPickerAndCancel]; } From 72f96af25f76de2b98a479ec16eb7e79a42434ca Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 10:59:27 -0800 Subject: [PATCH 34/39] fix capturing strong reference --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 294e1b9553e7..71f897e41a61 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -31,7 +31,7 @@ - (void)setUp { if (![allPhotoPermission waitForExistenceWithTimeout: kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", - self.app.debugDescription); + weakSelf.app.debugDescription); XCTFail(@"Failed due to not able to find " @"allPhotoPermission button with %@ seconds", @(kElementWaitingTime)); @@ -42,7 +42,7 @@ - (void)setUp { if (![ok waitForExistenceWithTimeout: kElementWaitingTime]) { os_log_error(OS_LOG_DEFAULT, "%@", - self.app.debugDescription); + weakSelf.app.debugDescription); XCTFail(@"Failed due to not able to find ok button " @"with %@ seconds", @(kElementWaitingTime)); From f690f2d9d9cb77cd4ed2b58a44c9e4b8480813a4 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 11:04:31 -0800 Subject: [PATCH 35/39] add teardown to terminate the app --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 71f897e41a61..46b00f0a624e 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -53,6 +53,10 @@ - (void)setUp { }]; } +- (void)tearDown { + [self.app terminate]; +} + - (void)testPickingFromGallery { [self launchPickerAndPick]; } From 5c7a76914418a86c9d72b3167bfba25290c404f9 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 11:36:30 -0800 Subject: [PATCH 36/39] remove experimental flag --- .cirrus.yml | 2 -- packages/image_picker/image_picker/CHANGELOG.md | 4 ++++ packages/image_picker/image_picker/pubspec.yaml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index cdf8e271d62b..19c11c4d7d42 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,5 +1,3 @@ -experimental: true - # task: # # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins # only_if: $CIRRUS_TAG == '' diff --git a/packages/image_picker/image_picker/CHANGELOG.md b/packages/image_picker/image_picker/CHANGELOG.md index 1b3146d532fa..1a09758d13ef 100644 --- a/packages/image_picker/image_picker/CHANGELOG.md +++ b/packages/image_picker/image_picker/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.7+22 + +* iOS: update XCUITests to separate each test session. + ## 0.6.7+21 * Update the example app: remove the deprecated `RaisedButton` and `FlatButton` widgets. diff --git a/packages/image_picker/image_picker/pubspec.yaml b/packages/image_picker/image_picker/pubspec.yaml index 789ca13d5bcb..075c90627bf4 100755 --- a/packages/image_picker/image_picker/pubspec.yaml +++ b/packages/image_picker/image_picker/pubspec.yaml @@ -2,7 +2,7 @@ name: image_picker description: Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera. homepage: https://github.com/flutter/plugins/tree/master/packages/image_picker/image_picker -version: 0.6.7+21 +version: 0.6.7+22 flutter: plugin: From 580af84c383cf183864c20012e23c7c9e3331886 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 11:57:48 -0800 Subject: [PATCH 37/39] uncommment tasks --- .cirrus.yml | 382 ++++++++++++++++++++++++++-------------------------- 1 file changed, 191 insertions(+), 191 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 19c11c4d7d42..0f93cd4888a7 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -1,168 +1,168 @@ -# task: -# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins -# only_if: $CIRRUS_TAG == '' -# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' -# container: -# dockerfile: .ci/Dockerfile -# cpu: 8 -# memory: 16G -# env: -# INTEGRATION_TEST_PATH: "./packages/integration_test" -# upgrade_script: -# - flutter channel stable -# - flutter upgrade -# - flutter channel master -# - flutter upgrade -# - git fetch origin master -# activate_script: pub global activate flutter_plugin_tools -# matrix: -# - name: publishable -# script: -# - flutter channel master -# - ./script/check_publish.sh -# - name: format -# install_script: -# - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - -# - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" -# - sudo apt-get update -# - sudo apt-get install -y --allow-unauthenticated clang-format-7 -# format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-7 -# - name: test -# env: -# matrix: -# CHANNEL: "master" -# CHANNEL: "stable" -# test_script: -# # TODO(jackson): Allow web plugins once supported on stable -# # https://github.com/flutter/flutter/issues/42864 -# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi -# - flutter channel $CHANNEL -# - ./script/incremental_build.sh test -# - name: analyze -# env: -# matrix: -# CHANNEL: "master" -# CHANNEL: "stable" -# script: ./script/incremental_build.sh analyze -# - name: build_all_plugins_apk -# env: -# matrix: -# CHANNEL: "master" -# CHANNEL: "stable" -# script: -# # TODO(jackson): Allow web plugins once supported on stable -# # https://github.com/flutter/flutter/issues/42864 -# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi -# - flutter channel $CHANNEL -# - ./script/build_all_plugins_app.sh apk -# - name: integration_web_smoke_test -# # Tests integration example test in web. -# only_if: "changesInclude('.cirrus.yml', 'packages/integration_test/**') || $CIRRUS_PR == ''" -# install_script: -# - flutter config --enable-web -# - git clone https://github.com/flutter/web_installers.git -# - cd web_installers/packages/web_drivers/ -# - pub get -# - dart lib/web_driver_installer.dart chromedriver --install-only -# - ./chromedriver/chromedriver --port=4444 & -# test_script: -# - cd $INTEGRATION_TEST_PATH/example/ -# - flutter drive -v --driver=test_driver/integration_test.dart --target=integration_test/example_test.dart -d web-server --release --browser-name=chrome -# - name: build-apks+java-test+firebase-test-lab -# env: -# matrix: -# PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" -# PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" -# PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4" -# PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" -# matrix: -# CHANNEL: "master" -# CHANNEL: "stable" -# MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] -# GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4] -# script: -# # TODO(jackson): Allow web plugins once supported on stable -# # https://github.com/flutter/flutter/issues/42864 -# - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi -# - flutter channel $CHANNEL -# # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they -# # might include non-ASCII characters which makes Gradle crash. -# # See: https://github.com/flutter/flutter/issues/24935 -# # This is a temporary workaround until we figure how to properly configure -# # a UTF8 locale on Cirrus (or until the Gradle bug is fixed). -# # TODO(amirh): Set the locale to UTF8. -# - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt -# - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt -# - export CIRRUS_CHANGE_MESSAGE="" -# - export CIRRUS_COMMIT_MESSAGE="" -# - ./script/incremental_build.sh build-examples --apk -# - ./script/incremental_build.sh java-test # must come after apk build -# - if [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then -# - echo "This user does not have permission to run Firebase Test Lab tests." -# - else -# - echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json -# - ./script/incremental_build.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26 -# - fi -# - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt` -# - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt` +task: + # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins + only_if: $CIRRUS_TAG == '' + use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' + container: + dockerfile: .ci/Dockerfile + cpu: 8 + memory: 16G + env: + INTEGRATION_TEST_PATH: "./packages/integration_test" + upgrade_script: + - flutter channel stable + - flutter upgrade + - flutter channel master + - flutter upgrade + - git fetch origin master + activate_script: pub global activate flutter_plugin_tools + matrix: + - name: publishable + script: + - flutter channel master + - ./script/check_publish.sh + - name: format + install_script: + - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + - sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main" + - sudo apt-get update + - sudo apt-get install -y --allow-unauthenticated clang-format-7 + format_script: ./script/incremental_build.sh format --travis --clang-format=clang-format-7 + - name: test + env: + matrix: + CHANNEL: "master" + CHANNEL: "stable" + test_script: + # TODO(jackson): Allow web plugins once supported on stable + # https://github.com/flutter/flutter/issues/42864 + - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi + - flutter channel $CHANNEL + - ./script/incremental_build.sh test + - name: analyze + env: + matrix: + CHANNEL: "master" + CHANNEL: "stable" + script: ./script/incremental_build.sh analyze + - name: build_all_plugins_apk + env: + matrix: + CHANNEL: "master" + CHANNEL: "stable" + script: + # TODO(jackson): Allow web plugins once supported on stable + # https://github.com/flutter/flutter/issues/42864 + - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi + - flutter channel $CHANNEL + - ./script/build_all_plugins_app.sh apk + - name: integration_web_smoke_test + # Tests integration example test in web. + only_if: "changesInclude('.cirrus.yml', 'packages/integration_test/**') || $CIRRUS_PR == ''" + install_script: + - flutter config --enable-web + - git clone https://github.com/flutter/web_installers.git + - cd web_installers/packages/web_drivers/ + - pub get + - dart lib/web_driver_installer.dart chromedriver --install-only + - ./chromedriver/chromedriver --port=4444 & + test_script: + - cd $INTEGRATION_TEST_PATH/example/ + - flutter drive -v --driver=test_driver/integration_test.dart --target=integration_test/example_test.dart -d web-server --release --browser-name=chrome + - name: build-apks+java-test+firebase-test-lab + env: + matrix: + PLUGIN_SHARDING: "--shardIndex 0 --shardCount 4" + PLUGIN_SHARDING: "--shardIndex 1 --shardCount 4" + PLUGIN_SHARDING: "--shardIndex 2 --shardCount 4" + PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" + matrix: + CHANNEL: "master" + CHANNEL: "stable" + MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] + GCLOUD_FIREBASE_TESTLAB_KEY: ENCRYPTED[07586610af1fdfc894e5969f70ef2458341b9b7e9c3b7c4225a663b4a48732b7208a4d91c3b7d45305a6b55fa2a37fc4] + script: + # TODO(jackson): Allow web plugins once supported on stable + # https://github.com/flutter/flutter/issues/42864 + - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi + - flutter channel $CHANNEL + # Unsetting CIRRUS_CHANGE_MESSAGE and CIRRUS_COMMIT_MESSAGE as they + # might include non-ASCII characters which makes Gradle crash. + # See: https://github.com/flutter/flutter/issues/24935 + # This is a temporary workaround until we figure how to properly configure + # a UTF8 locale on Cirrus (or until the Gradle bug is fixed). + # TODO(amirh): Set the locale to UTF8. + - echo "$CIRRUS_CHANGE_MESSAGE" > /tmp/cirrus_change_message.txt + - echo "$CIRRUS_COMMIT_MESSAGE" > /tmp/cirrus_commit_message.txt + - export CIRRUS_CHANGE_MESSAGE="" + - export CIRRUS_COMMIT_MESSAGE="" + - ./script/incremental_build.sh build-examples --apk + - ./script/incremental_build.sh java-test # must come after apk build + - if [[ $GCLOUD_FIREBASE_TESTLAB_KEY == ENCRYPTED* ]]; then + - echo "This user does not have permission to run Firebase Test Lab tests." + - else + - echo $GCLOUD_FIREBASE_TESTLAB_KEY > ${HOME}/gcloud-service-key.json + - ./script/incremental_build.sh firebase-test-lab --device model=flame,version=29 --device model=starqlteue,version=26 + - fi + - export CIRRUS_CHANGE_MESSAGE=`cat /tmp/cirrus_change_message.txt` + - export CIRRUS_COMMIT_MESSAGE=`cat /tmp/cirrus_commit_message.txt` -# task: -# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins -# only_if: $CIRRUS_TAG == '' -# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' -# container: -# dockerfile: .ci/Dockerfile-LinuxDesktop -# cpu: 8 -# memory: 16G -# env: -# INTEGRATION_TEST_PATH: "./packages/integration_test" -# upgrade_script: -# - flutter channel stable -# - flutter upgrade -# - flutter channel master -# - flutter upgrade -# - git fetch origin master -# activate_script: pub global activate flutter_plugin_tools -# matrix: -# - name: build-linux+drive-examples -# install_script: -# - flutter config --enable-linux-desktop -# build_script: -# # TODO(stuartmorgan): Include stable once Linux is supported on stable. -# - flutter channel master -# - ./script/incremental_build.sh build-examples --linux -# - xvfb-run ./script/incremental_build.sh drive-examples --linux +task: + # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins + only_if: $CIRRUS_TAG == '' + use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' && $CIRRUS_PR == '' + container: + dockerfile: .ci/Dockerfile-LinuxDesktop + cpu: 8 + memory: 16G + env: + INTEGRATION_TEST_PATH: "./packages/integration_test" + upgrade_script: + - flutter channel stable + - flutter upgrade + - flutter channel master + - flutter upgrade + - git fetch origin master + activate_script: pub global activate flutter_plugin_tools + matrix: + - name: build-linux+drive-examples + install_script: + - flutter config --enable-linux-desktop + build_script: + # TODO(stuartmorgan): Include stable once Linux is supported on stable. + - flutter channel master + - ./script/incremental_build.sh build-examples --linux + - xvfb-run ./script/incremental_build.sh drive-examples --linux -# task: -# # XCode 11 task -# # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. -# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins -# only_if: $CIRRUS_TAG == '' -# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' -# osx_instance: -# image: catalina-xcode-11.3.1-flutter -# upgrade_script: -# - flutter channel stable -# - flutter upgrade -# - flutter channel master -# - flutter upgrade -# - git fetch origin master -# activate_script: pub global activate flutter_plugin_tools -# create_simulator_script: -# - xcrun simctl list -# - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot -# matrix: -# - name: lint_darwin_plugins -# env: -# matrix: -# PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" -# PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" -# script: -# # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. -# - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm -# # Skip the dummy podspecs used to placate the tool. -# - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm -# - ./script/incremental_build.sh podspecs +task: + # XCode 11 task + # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. + # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins + only_if: $CIRRUS_TAG == '' + use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' + osx_instance: + image: catalina-xcode-11.3.1-flutter + upgrade_script: + - flutter channel stable + - flutter upgrade + - flutter channel master + - flutter upgrade + - git fetch origin master + activate_script: pub global activate flutter_plugin_tools + create_simulator_script: + - xcrun simctl list + - xcrun simctl create Flutter-iPhone com.apple.CoreSimulator.SimDeviceType.iPhone-X com.apple.CoreSimulator.SimRuntime.iOS-13-3 | xargs xcrun simctl boot + matrix: + - name: lint_darwin_plugins + env: + matrix: + PLUGIN_SHARDING: "--shardIndex 0 --shardCount 2" + PLUGIN_SHARDING: "--shardIndex 1 --shardCount 2" + script: + # TODO(jmagman): Lint macOS podspecs but skip any that fail library validation. + - find . -name "*.podspec" | xargs grep -l "osx" | xargs rm + # Skip the dummy podspecs used to placate the tool. + - find . -name "*_web*.podspec" -o -name "*_mac*.podspec" | xargs rm + - ./script/incremental_build.sh podspecs task: # XCode 12 task @@ -205,7 +205,7 @@ task: PLUGIN_SHARDING: "--shardIndex 3 --shardCount 4" matrix: CHANNEL: "master" - # CHANNEL: "stable" + CHANNEL: "stable" SIMCTL_CHILD_MAPS_API_KEY: ENCRYPTED[596a9f6bca436694625ac50851dc5da6b4d34cba8025f7db5bc9465142e8cd44e15f69e3507787753accebfc4910d550] build_script: # TODO(jackson): Allow web plugins once supported on stable @@ -213,31 +213,31 @@ task: - if [[ "$CHANNEL" -eq "stable" ]]; then find . | grep _web$ | xargs rm -rf; fi - flutter channel $CHANNEL - ./script/incremental_build.sh build-examples --ipa - # - ./script/incremental_build.sh drive-examples + - ./script/incremental_build.sh drive-examples - ./script/incremental_build.sh xctest --target RunnerUITests --skip $PLUGINS_TO_SKIP_XCTESTS --ios-destination "platform=iOS Simulator,name=iPhone 11,OS=14.3" -# task: -# # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins -# only_if: $CIRRUS_TAG == '' -# use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' -# osx_instance: -# image: big-sur-xcode-12.3 -# setup_script: -# - flutter config --enable-macos-desktop -# upgrade_script: -# - sudo gem install cocoapods -# - flutter channel master -# - flutter upgrade -# - git fetch origin master -# activate_script: pub global activate flutter_plugin_tools -# matrix: -# - name: build_all_plugins_app -# script: -# - flutter channel master -# - ./script/build_all_plugins_app.sh macos -# - name: build-apps+drive-examples -# env: -# PATH: $PATH:/usr/local/bin -# build_script: -# - flutter channel master -# - ./script/incremental_build.sh build-examples --macos --no-ipa -# - ./script/incremental_build.sh drive-examples --macos +task: + # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins + only_if: $CIRRUS_TAG == '' + use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' + osx_instance: + image: big-sur-xcode-12.3 + setup_script: + - flutter config --enable-macos-desktop + upgrade_script: + - sudo gem install cocoapods + - flutter channel master + - flutter upgrade + - git fetch origin master + activate_script: pub global activate flutter_plugin_tools + matrix: + - name: build_all_plugins_app + script: + - flutter channel master + - ./script/build_all_plugins_app.sh macos + - name: build-apps+drive-examples + env: + PATH: $PATH:/usr/local/bin + build_script: + - flutter channel master + - ./script/incremental_build.sh build-examples --macos --no-ipa + - ./script/incremental_build.sh drive-examples --macos From d31e4307ecc2ddad0e43eb7bf8a49e22f4feeef4 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Fri, 22 Jan 2021 16:41:01 -0800 Subject: [PATCH 38/39] review --- .cirrus.yml | 7 ++++--- .../ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 2 ++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index 0f93cd4888a7..aa56ca26d82b 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -117,6 +117,7 @@ task: env: INTEGRATION_TEST_PATH: "./packages/integration_test" upgrade_script: + - sudo gem install cocoapods - flutter channel stable - flutter upgrade - flutter channel master @@ -134,8 +135,8 @@ task: - xvfb-run ./script/incremental_build.sh drive-examples --linux task: - # XCode 11 task - # TODO(cyanglaz): merge XCode 11 task to XCode 12 task when all the matrix can be run in XCode 12. + # Xcode 11 task + # TODO(cyanglaz): merge Xcode 11 task to Xcode 12 task when all the matrix can be run in Xcode 12. # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' @@ -165,7 +166,7 @@ task: - ./script/incremental_build.sh podspecs task: - # XCode 12 task + # Xcode 12 task # don't run on release tags since it creates O(n^2) tasks where n is the number of plugins only_if: $CIRRUS_TAG == '' use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 46b00f0a624e..4d8b4bcc462a 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -16,6 +16,7 @@ @interface ImagePickerFromGalleryUITests : XCTestCase @implementation ImagePickerFromGalleryUITests - (void)setUp { + [super setup]; // Delete the app if already exists, to test permission popups self.continueAfterFailure = NO; @@ -54,6 +55,7 @@ - (void)setUp { } - (void)tearDown { + [super tearDown]; [self.app terminate]; } From f26127b2465045c9d0d1c0aa559d1aeebca1ba45 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Sat, 23 Jan 2021 09:51:21 -0800 Subject: [PATCH 39/39] typo --- .../example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m index 4d8b4bcc462a..e30fabd2d071 100644 --- a/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m +++ b/packages/image_picker/image_picker/example/ios/RunnerUITests/ImagePickerFromGalleryUITests.m @@ -16,7 +16,7 @@ @interface ImagePickerFromGalleryUITests : XCTestCase @implementation ImagePickerFromGalleryUITests - (void)setUp { - [super setup]; + [super setUp]; // Delete the app if already exists, to test permission popups self.continueAfterFailure = NO;