From 54aba788864c7f742b62de5dc64641e04fb3298d Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 16:22:03 -0400 Subject: [PATCH 1/7] Refactor for latest flutter version --- .vscode/launch.json | 10 ++- lib/main.dart | 77 ++-------------- lib/main_dev.dart | 89 +++++++++++++++++++ lib/main_test.dart | 89 +++++++++++++++++++ lib/src/common/constants.dart | 4 +- lib/src/views/weather_page.dart | 7 +- pubspec.lock | 68 ++------------ pubspec.yaml | 14 +-- test/unit_tests/blocs/weather_bloc_test.dart | 2 +- test/unit_tests/client/weather_api_test.dart | 2 +- .../repositories/weather_repository_test.dart | 2 +- test/widget_tests/widget_test.dart | 2 +- test_driver/weather_page.dart | 2 +- test_driver/weather_page_test.dart | 2 +- 14 files changed, 219 insertions(+), 151 deletions(-) create mode 100644 lib/main_dev.dart create mode 100644 lib/main_test.dart diff --git a/.vscode/launch.json b/.vscode/launch.json index f88a17d..c1430c9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,15 +6,21 @@ "configurations": [ { "name": "development", - "program": "lib/main.dart", + "program": "lib/main_dev.dart", "request": "launch", "type": "dart" }, { - "name": "production", + "name": "uat", "program": "lib/main_prod.dart", "request": "launch", "type": "dart" + }, + { + "name": "production", + "program": "lib/main.dart", + "request": "launch", + "type": "dart" } ] } \ No newline at end of file diff --git a/lib/main.dart b/lib/main.dart index c93f543..e319596 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,89 +1,26 @@ -import 'dart:async'; - import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:http/testing.dart'; -import 'package:mockito/mockito.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:simple_weather/service_locator.dart'; import 'package:simple_weather/src/app.dart'; import 'package:simple_weather/src/app_config.dart'; -import 'package:simple_weather/src/client/mocked/mock_weather_api_impl.dart'; +import 'package:simple_weather/src/client/implementations/weather_api_impl.dart'; import 'package:simple_weather/src/client/weather_api.dart'; +import 'package:simple_weather/src/services/implementations/location_service_impl.dart'; import 'package:simple_weather/src/services/location_service.dart'; -import 'package:simple_weather/src/services/mocked/mock_location_service_impl.dart'; main() async { await registerDependencies(); runApp( AppConfig( - environment: Environment.development, + environment: Environment.production, child: App(), ), ); } -const weatherJsonResponse = '''{ - "coord": { - "lon": -79.39, - "lat": 43.65 - }, - "weather": [ - { - "id": 800, - "main": "Clear", - "description": "clear sky", - "icon": "01d" - } - ], - "base": "stations", - "main": { - "temp": 297.45, - "pressure": 1019, - "humidity": 60, - "temp_min": 296.15, - "temp_max": 299.15 - }, - "visibility": 14484, - "wind": { - "speed": 4.1, - "deg": 180 - }, - "clouds": { - "all": 1 - }, - "dt": 1532019600, - "sys": { - "type": 1, - "id": 3721, - "message": 0.0046, - "country": "CA", - "sunrise": 1531994053, - "sunset": 1532047985 - }, - "id": 6167863, - "name": "Downtown Toronto", - "cod": 200 -}'''; - registerDependencies() async { - ServiceLocator.reset(); - final _mockSharedPrefs = MockSharedPreferences(); - - when(_mockSharedPrefs.getBool(typed(any))).thenReturn(true); - when(_mockSharedPrefs.setBool(typed(any), typed(any))) - .thenAnswer((_) => Future.value(true)); - - ServiceLocator.registerSingleton(_mockSharedPrefs); - ServiceLocator.registerSingleton(MockLocationService()); - ServiceLocator.registerSingleton( - MockWeatherApi( - MockClient( - (request) async => Response(weatherJsonResponse, 200), - ), - "", - ), - ); + ServiceLocator.registerSingleton( + await SharedPreferences.getInstance()); + ServiceLocator.registerSingleton(LocationServiceImpl()); + ServiceLocator.registerSingleton(WeatherApiImpl()); } - -class MockSharedPreferences extends Mock implements SharedPreferences {} diff --git a/lib/main_dev.dart b/lib/main_dev.dart new file mode 100644 index 0000000..2a1a445 --- /dev/null +++ b/lib/main_dev.dart @@ -0,0 +1,89 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; +import 'package:http/testing.dart'; +import 'package:mockito/mockito.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:simple_weather/service_locator.dart'; +import 'package:simple_weather/src/app.dart'; +import 'package:simple_weather/src/app_config.dart'; +import 'package:simple_weather/src/client/mocked/mock_weather_api_impl.dart'; +import 'package:simple_weather/src/client/weather_api.dart'; +import 'package:simple_weather/src/services/location_service.dart'; +import 'package:simple_weather/src/services/mocked/mock_location_service_impl.dart'; + +main() async { + await registerDependencies(); + runApp( + AppConfig( + environment: Environment.development, + child: App(), + ), + ); +} + +registerDependencies() async { + ServiceLocator.reset(); + final _mockSharedPrefs = MockSharedPreferences(); + + when(_mockSharedPrefs.getBool(typed(any))).thenReturn(true); + when(_mockSharedPrefs.setBool(typed(any), typed(any))) + .thenAnswer((_) => Future.value(true)); + + ServiceLocator.registerSingleton(_mockSharedPrefs); + ServiceLocator.registerSingleton(MockLocationService()); + ServiceLocator.registerSingleton( + MockWeatherApi( + MockClient( + (request) async => Response(weatherJsonResponse, 200), + ), + "", + ), + ); +} + +class MockSharedPreferences extends Mock implements SharedPreferences {} + +const weatherJsonResponse = '''{ + "coord": { + "lon": -79.39, + "lat": 43.65 + }, + "weather": [ + { + "id": 800, + "main": "Clear", + "description": "clear sky", + "icon": "01d" + } + ], + "base": "stations", + "main": { + "temp": 297.45, + "pressure": 1019, + "humidity": 60, + "temp_min": 296.15, + "temp_max": 299.15 + }, + "visibility": 14484, + "wind": { + "speed": 4.1, + "deg": 180 + }, + "clouds": { + "all": 1 + }, + "dt": 1532019600, + "sys": { + "type": 1, + "id": 3721, + "message": 0.0046, + "country": "CA", + "sunrise": 1531994053, + "sunset": 1532047985 + }, + "id": 6167863, + "name": "Downtown Toronto", + "cod": 200 +}'''; diff --git a/lib/main_test.dart b/lib/main_test.dart new file mode 100644 index 0000000..17522d9 --- /dev/null +++ b/lib/main_test.dart @@ -0,0 +1,89 @@ +import 'dart:async'; + +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; +import 'package:http/testing.dart'; +import 'package:mockito/mockito.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:simple_weather/service_locator.dart'; +import 'package:simple_weather/src/app.dart'; +import 'package:simple_weather/src/app_config.dart'; +import 'package:simple_weather/src/client/mocked/mock_weather_api_impl.dart'; +import 'package:simple_weather/src/client/weather_api.dart'; +import 'package:simple_weather/src/services/location_service.dart'; +import 'package:simple_weather/src/services/mocked/mock_location_service_impl.dart'; + +main() async { + await registerDependencies(); + runApp( + AppConfig( + environment: Environment.tests, + child: App(), + ), + ); +} + +const weatherJsonResponse = '''{ + "coord": { + "lon": -79.39, + "lat": 43.65 + }, + "weather": [ + { + "id": 800, + "main": "Clear", + "description": "clear sky", + "icon": "01d" + } + ], + "base": "stations", + "main": { + "temp": 297.45, + "pressure": 1019, + "humidity": 60, + "temp_min": 296.15, + "temp_max": 299.15 + }, + "visibility": 14484, + "wind": { + "speed": 4.1, + "deg": 180 + }, + "clouds": { + "all": 1 + }, + "dt": 1532019600, + "sys": { + "type": 1, + "id": 3721, + "message": 0.0046, + "country": "CA", + "sunrise": 1531994053, + "sunset": 1532047985 + }, + "id": 6167863, + "name": "Downtown Toronto", + "cod": 200 +}'''; + +registerDependencies() async { + ServiceLocator.reset(); + final _mockSharedPrefs = MockSharedPreferences(); + + when(_mockSharedPrefs.getBool(typed(any))).thenReturn(true); + when(_mockSharedPrefs.setBool(typed(any), typed(any))) + .thenAnswer((_) => Future.value(true)); + + ServiceLocator.registerSingleton(_mockSharedPrefs); + ServiceLocator.registerSingleton(MockLocationService()); + ServiceLocator.registerSingleton( + MockWeatherApi( + MockClient( + (request) async => Response(weatherJsonResponse, 200), + ), + "", + ), + ); +} + +class MockSharedPreferences extends Mock implements SharedPreferences {} diff --git a/lib/src/common/constants.dart b/lib/src/common/constants.dart index 86d0b33..589cc60 100644 --- a/lib/src/common/constants.dart +++ b/lib/src/common/constants.dart @@ -1,4 +1,4 @@ class AppConstants { - static const apiKey = "OWM_API_KEY"; - static const imageUrl = 'http://openweathermap.org/img/w/'; + static const apiKey = "9330c38e200912fe46e8abd5f99d98e0"; + static const imageUrl = 'https://openweathermap.org/img/w/'; } diff --git a/lib/src/views/weather_page.dart b/lib/src/views/weather_page.dart index ceb1a2d..f71e5ff 100644 --- a/lib/src/views/weather_page.dart +++ b/lib/src/views/weather_page.dart @@ -1,3 +1,5 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:simple_weather/src/exceptions/exceptions.dart'; import 'package:simple_weather/src/models/weather_model.dart'; @@ -64,9 +66,10 @@ class WeatherPage extends StatelessWidget { builder: (context, AsyncSnapshot snapshot) { if (snapshot.hasError) { return Center( - child: snapshot.error is NoWeatherException + child: snapshot.error is NoWeatherException || + snapshot.error is TimeoutException ? Text(LocalizationsProvider.of(context).error) - : Text(snapshot.error), + : Text(snapshot.error.toString()), ); } if (!snapshot.hasData) { diff --git a/pubspec.lock b/pubspec.lock index 70b7685..7156951 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -91,7 +91,7 @@ packages: name: cached_network_image url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.0" charcode: dependency: transitive description: @@ -173,7 +173,7 @@ packages: name: flutter_cache_manager url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.1.0" flutter_driver: dependency: "direct dev" description: flutter @@ -214,7 +214,7 @@ packages: name: get_it url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3+2" glob: dependency: transitive description: @@ -347,21 +347,7 @@ packages: name: mockito url: "https://pub.dartlang.org" source: hosted - version: "3.0.0" - multi_server_socket: - dependency: transitive - description: - name: multi_server_socket - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.2" - node_preamble: - dependency: transitive - description: - name: node_preamble - url: "https://pub.dartlang.org" - source: hosted - version: "1.4.4" + version: "4.1.0" package_config: dependency: transitive description: @@ -452,7 +438,7 @@ packages: name: shared_preferences url: "https://pub.dartlang.org" source: hosted - version: "0.4.3" + version: "0.5.3+4" shelf: dependency: transitive description: @@ -460,20 +446,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.7.5" - shelf_packages_handler: - dependency: transitive - description: - name: shelf_packages_handler - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.4" - shelf_static: - dependency: transitive - description: - name: shelf_static - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.8" shelf_web_socket: dependency: transitive description: @@ -493,20 +465,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.9.4+2" - source_map_stack_trace: - dependency: transitive - description: - name: source_map_stack_trace - url: "https://pub.dartlang.org" - source: hosted - version: "1.1.5" - source_maps: - dependency: transitive - description: - name: source_maps - url: "https://pub.dartlang.org" - source: hosted - version: "0.10.7" source_span: dependency: transitive description: @@ -563,13 +521,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.0" - test: - dependency: transitive - description: - name: test - url: "https://pub.dartlang.org" - source: hosted - version: "1.6.3" test_api: dependency: transitive description: @@ -577,13 +528,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.2.5" - test_core: - dependency: transitive - description: - name: test_core - url: "https://pub.dartlang.org" - source: hosted - version: "0.2.5" timing: dependency: transitive description: @@ -642,4 +586,4 @@ packages: version: "2.1.15" sdks: dart: ">=2.3.0 <3.0.0" - flutter: ">=1.2.1 <2.0.0" + flutter: ">=1.5.0 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 9042cf1..3d18a1f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -21,10 +21,10 @@ dependencies: sdk: flutter flutter_localizations: sdk: flutter - json_annotation: - geolocator : - shared_preferences: - get_it: + json_annotation: ^2.4.0 + geolocator: + shared_preferences: ^0.5.3+4 + get_it: ^1.0.3+2 cached_network_image: # The following adds the Cupertino Icons font to your application. @@ -36,9 +36,9 @@ dev_dependencies: sdk: flutter flutter_driver: sdk: flutter - json_serializable: - build_runner: - mockito: + json_serializable: ^3.0.0 + build_runner: ^1.0.0 + mockito: ^4.1.0 # For information on the generic Dart part of this file, see the diff --git a/test/unit_tests/blocs/weather_bloc_test.dart b/test/unit_tests/blocs/weather_bloc_test.dart index ea71bf6..620f751 100644 --- a/test/unit_tests/blocs/weather_bloc_test.dart +++ b/test/unit_tests/blocs/weather_bloc_test.dart @@ -1,5 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:simple_weather/main.dart'; +import 'package:simple_weather/main_test.dart'; import 'package:simple_weather/src/business/weather_bloc.dart'; void main() { diff --git a/test/unit_tests/client/weather_api_test.dart b/test/unit_tests/client/weather_api_test.dart index 5ea990e..34594c0 100644 --- a/test/unit_tests/client/weather_api_test.dart +++ b/test/unit_tests/client/weather_api_test.dart @@ -1,7 +1,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:http/http.dart'; import 'package:http/testing.dart'; -import 'package:simple_weather/main.dart'; +import 'package:simple_weather/main_test.dart'; import 'package:simple_weather/src/client/mocked/mock_weather_api_impl.dart'; import 'package:simple_weather/src/models/weather_model.dart'; diff --git a/test/unit_tests/repositories/weather_repository_test.dart b/test/unit_tests/repositories/weather_repository_test.dart index 8a99d6d..0a9b864 100644 --- a/test/unit_tests/repositories/weather_repository_test.dart +++ b/test/unit_tests/repositories/weather_repository_test.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/mockito.dart'; -import 'package:simple_weather/main.dart'; +import 'package:simple_weather/main_test.dart'; import 'package:simple_weather/src/models/weather_model.dart'; import 'package:simple_weather/src/repositories/weather_repository.dart'; diff --git a/test/widget_tests/widget_test.dart b/test/widget_tests/widget_test.dart index 05d6b6d..17cc107 100644 --- a/test/widget_tests/widget_test.dart +++ b/test/widget_tests/widget_test.dart @@ -6,7 +6,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:simple_weather/main.dart'; +import 'package:simple_weather/main_test.dart'; import 'package:simple_weather/src/app.dart'; import 'package:simple_weather/src/app_config.dart'; import 'package:simple_weather/src/helpers/conversion_helper.dart'; diff --git a/test_driver/weather_page.dart b/test_driver/weather_page.dart index 7006863..a09a563 100644 --- a/test_driver/weather_page.dart +++ b/test_driver/weather_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_driver/driver_extension.dart'; -import 'package:simple_weather/main.dart'; +import 'package:simple_weather/main_test.dart'; import 'package:simple_weather/src/app.dart'; import 'package:simple_weather/src/app_config.dart'; diff --git a/test_driver/weather_page_test.dart b/test_driver/weather_page_test.dart index 35c31a0..8ba0b43 100644 --- a/test_driver/weather_page_test.dart +++ b/test_driver/weather_page_test.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:flutter_driver/flutter_driver.dart'; -import 'package:test/test.dart'; +import 'package:test_api/test_api.dart'; void main() { group( From 73fac6a7fd7c66d07743c867faf6464c6caf79d5 Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 16:37:24 -0400 Subject: [PATCH 2/7] added android 28.0.3 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 08a22f5..4efa8ea 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,6 +41,7 @@ matrix: - platform-tools - build-tools-28.0.0 - build-tools-28.0.2 + - build-tools-28.0.3 - android-28 - build-tools-27.0.3 - android-27 From c9874ede715e1e10fc843366fe3fad3b9a54216d Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 17:29:28 -0400 Subject: [PATCH 3/7] newer xcode + doctor to check if something is missing --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 4efa8ea..ac63480 100644 --- a/.travis.yml +++ b/.travis.yml @@ -87,6 +87,7 @@ matrix: - brew install ideviceinstaller - brew install ios-deploy - git clone https://github.com/flutter/flutter.git + - ./flutter/bin/flutter doctor script: - ./flutter/bin/flutter -v build ios --no-codesign From 1cc8097582148fb6ef27862c7ad7b34f91a37525 Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 18:00:22 -0400 Subject: [PATCH 4/7] added team --- ios/Runner.xcodeproj/project.pbxproj | 5 ++++- .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 ++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 238e8db..2f1d744 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -79,7 +79,6 @@ DA08D918CEF2A7630002041F /* Pods-Runner.release.xcconfig */, 6025140406B4D918CDAB7A93 /* Pods-Runner.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -182,6 +181,7 @@ TargetAttributes = { 97C146ED1CF9000F007C117D = { CreatedOnToolsVersion = 7.3.1; + DevelopmentTeam = T63VEX5R8E; LastSwiftMigration = 0910; }; }; @@ -380,6 +380,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T63VEX5R8E; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -513,6 +514,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T63VEX5R8E; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -540,6 +542,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + DEVELOPMENT_TEAM = T63VEX5R8E; ENABLE_BITCODE = NO; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + From ebdfc963d39c92c298e406442f86a6ea6d057c23 Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 18:14:04 -0400 Subject: [PATCH 5/7] added xcode 10.2.1 --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac63480..7a0d841 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,6 +69,7 @@ matrix: - export GRADLE_HOME=$PWD/gradle-4.10.2-all - export PATH=$GRADLE_HOME/bin:$PATH - git clone https://github.com/flutter/flutter.git + - ./flutter/bin/flutter doctor script: - ./flutter/bin/flutter -v build apk @@ -76,7 +77,7 @@ matrix: - env: JOB=IPA os: osx language: generic - osx_image: xcode10 + osx_image: xcode10.2.1 before_script: - pip install six - brew update From bcc6a87af8a43ecfb3d3020a7fffd7d2d5241c45 Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 18:57:18 -0400 Subject: [PATCH 6/7] fixed cocoapods issue --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 7a0d841..127ba36 100644 --- a/.travis.yml +++ b/.travis.yml @@ -85,8 +85,8 @@ matrix: - brew unlink usbmuxd - brew link usbmuxd - brew install --HEAD libimobiledevice - - brew install ideviceinstaller - - brew install ios-deploy + - brew install ideviceinstaller ios-deploy cocoapods + - pod setup - git clone https://github.com/flutter/flutter.git - ./flutter/bin/flutter doctor script: From 0f3b6dec4c129b79d8847085e6c85c0c1110b215 Mon Sep 17 00:00:00 2001 From: Luis Pulido Date: Thu, 18 Jul 2019 19:16:39 -0400 Subject: [PATCH 7/7] another attempt --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 127ba36..c20c5d4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -81,12 +81,13 @@ matrix: before_script: - pip install six - brew update + - gem install cocoapods + - pod setup - brew install --HEAD usbmuxd - brew unlink usbmuxd - brew link usbmuxd - brew install --HEAD libimobiledevice - - brew install ideviceinstaller ios-deploy cocoapods - - pod setup + - brew install ideviceinstaller ios-deploy - git clone https://github.com/flutter/flutter.git - ./flutter/bin/flutter doctor script: