Commit Graph

379 Commits

Author SHA1 Message Date
Alexandre Ardhuin
92cbaa3efe remove unnecessary string interpolations (#49352) 2020-01-23 20:43:01 -08:00
Jonah Williams
ef15eac821 [flutter_tools] Remove context from Xcode and most of Xcodeproj (#48661) 2020-01-23 15:03:03 -08:00
Zachary Anderson
29490887e0
Reland: [flutter_tools] File system utilities (#48757)
* Reland: [flutter_tools] File system utilities

* Remove unused imports
2020-01-14 09:40:39 -08:00
Zachary Anderson
ef62092b9b
Revert "[flutter_tools] File system utilities (#48738)" (#48755)
This reverts commit 0349660622.
2020-01-13 14:30:37 -08:00
Zachary Anderson
0349660622
[flutter_tools] File system utilities (#48738) 2020-01-13 13:17:45 -08:00
Alexandre Ardhuin
4f9b6cf017
enable lint prefer_final_in_for_each (#47724) 2020-01-07 16:32:04 +01:00
Jonah Williams
ee7a37f1d3
[flutter_tools] Ensure that global variables are easily identifiable (#47398) 2020-01-06 11:04:20 -08:00
Jenn Magder
85e9be36bf
Revert "Check Xcode build setting FULL_PRODUCT_NAME for the name of the built app during flutter run (#47266)" (#47568)
This reverts commit 648a5d8a1e.
2019-12-20 17:45:16 -08:00
Jenn Magder
648a5d8a1e
Check Xcode build setting FULL_PRODUCT_NAME for the name of the built app during flutter run (#47266) 2019-12-19 14:18:10 -08:00
Jenn Magder
65ad8d805a
Revert "Check Xcode build setting FULL_PRODUCT_NAME for the name of the built app during flutter run (#46928)" (#47264)
This reverts commit e54e301d50.
2019-12-17 17:20:57 -08:00
Jenn Magder
e54e301d50 Check Xcode build setting FULL_PRODUCT_NAME for the name of the built app during flutter run (#46928) 2019-12-17 16:13:01 -08:00
Jenn Magder
dfa6eb31a0
Revert "flutter run FULL_PRODUCT_NAME (#46838)" (#46925) 2019-12-12 17:34:54 -08:00
Jenn Magder
7a7e2bb247 flutter run FULL_PRODUCT_NAME (#46838) 2019-12-12 17:03:01 -08:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
Danny Tuppeny
4741e9c3fe
Retry Xcode builds if they fail due to concurrent builds running (#45608)
* Retry Xcode builds if they fail due to concurrent builds running

Fixes #40576.

* Add tests for concurrent iOS launches

* Increase number of retries to account for the initial build being slow
2019-11-27 09:44:05 +00:00
Alexandre Ardhuin
adc7351046
implicit-casts:false on flutter_tools/lib (#44447)
* implicit-casts:false on flutter_tools/lib

* address review comments

* use castStringKeyedMap

* introduce {bool,string,strings}Arg

* fix ci
2019-11-19 07:57:42 +01:00
Jonah Williams
df0501c7d3
remove services code (#44052) 2019-11-04 09:08:57 -08:00
Jenn Magder
01dc19b93f
Pass environment variables through to xcodebuild (#43553) 2019-10-28 19:58:06 -07:00
knaeckeKami
ccfdf95c4a Use PRODUCT_BUNDLE_IDENTIFIER from buildSettings to find correct bundle id on iOS when using flavors (#42964) 2019-10-28 15:33:27 -07:00
Alexandre Ardhuin
f0553ba58e
Missing trailing commas (#41473)
* add missing trailing commas

* add more missing trailing commas

* add more and more missing trailing commas
2019-09-30 18:48:23 +02:00
Alexandre Ardhuin
89427d672d
add missing trailing commas in flutter_tools (#40968) 2019-09-24 08:06:09 +02:00
Jenn Magder
d95adf999c
Move build info checks from generating files to the xcode build (#40792) 2019-09-18 16:57:31 -07:00
Zachary Anderson
e2340c641d
[flutter_tool] Use curly braces around single statment control structures (#40446) 2019-09-13 14:51:35 -07:00
Zachary Anderson
73c10e8ced
[flutter_tool] process.dart cleanup (#39899) 2019-09-11 18:20:42 -07:00
Christopher Fujino
f945079c65
remove fallback code for ios/usb artifacts (#39585) 2019-09-06 14:23:20 -07:00
Zachary Anderson
0f2af976a2
[flutter_tools] Add a timeout to another showBuildSettings command (#39579) 2019-09-05 09:50:46 -07:00
Jonah Williams
6f71ce26d6
Place terminalUi flag on terminal interface (#39214) 2019-08-27 14:20:51 -07:00
Zachary Anderson
398ac1f6c8
[flutter_tool] Remove some async file io (#38654) 2019-08-20 13:15:08 -07:00
Andri Jasinski
267b858561 Disable xcode indexing in CI via COMPILER_INDEX_STORE_ENABLE=NO argument (#37378) 2019-08-16 08:29:45 -07:00
Todd Volkert
1d8deb1bb8
Handle case of a connected unpaired iOS device (#38629)
Fixes https://github.com/flutter/flutter/issues/36789
Fixes https://github.com/flutter/flutter/issues/37000

https://github.com/flutter/flutter/issues/36524
https://github.com/flutter/flutter/issues/24600
2019-08-15 17:59:37 -07:00
Jonah Williams
1df165ea13
Rename iOS arch for macOS release mode (macOS release mode 2 of 3) (#38645) 2019-08-15 17:38:35 -07:00
Zachary Anderson
ef146f63bb
[flutter_tool] Clean up usage events and custom dimensions (#36785) 2019-07-29 07:24:02 -07:00
Dan Field
c953cd19d2
Enable bitcode compilation for AOT (#36471) 2019-07-18 22:42:47 -07:00
Todd Volkert
aa9a115181
Move reporting files to reporting/ (#36017)
Slight cleanup of file locations in flutter_tools
to make it easier to see which files are responsible
for data reporting.
2019-07-16 13:21:06 -07:00
Christopher Fujino
102ab1e6d9
Reland bundle ios deps (#36093)
This updates the flutter tool cache to download binary files for ideviceinstaller, ios-deploy, libimobiledevice, and dynamically linked dependencies from Flutter's GCP bucket.
2019-07-15 09:22:29 -07:00
Emmanuel Garcia
d9c1962973
Instrument usage of include_flutter.groovy and xcode_backend.sh (#34189)
This is done via `flutter build bundle`.   As a consequence, this PR introduces a new way to disable analytics via the `FLUTTER_SUPPRESS_ANALYTICS` env flag.
2019-06-11 14:46:00 -07:00
Jenn Magder
c8bf7abeee
Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system (#34167)
Updates the Podfile template to use the CocoaPod disable_input_output_paths installation option which prevents the [CP] Embed Pods Frameworks build phase from outputting the Flutter.framework files.
2019-06-10 14:30:28 -07:00
Zachary Anderson
b847ba5a63
[flutter_tool] Send build timing to analytics (#34049) 2019-06-07 13:50:45 -07:00
Jenn Magder
035e3d37d7
Revert "Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system (#33852)" (#33882)
This reverts commit d053fe5cb3.
2019-06-04 15:35:35 -07:00
Jenn Magder
d053fe5cb3
Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system (#33852)
Updates the Podfile template to use the CocoaPod disable_input_output_paths installation option which prevents the [CP] Embed Pods Frameworks build phase from outputting the Flutter.framework files.
2019-06-04 12:17:57 -07:00
Jenn Magder
9734f4ed43 Revert "Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system (#33684)"
This reverts commit ef792fc30d.
2019-06-03 17:19:53 -07:00
Jenn Magder
ef792fc30d
Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system (#33684)
Updates the Podfile template to use the CocoaPod disable_input_output_paths installation option which prevents the [CP] Embed Pods Frameworks build phase from outputting the Flutter.framework files.
2019-06-03 16:11:33 -07:00
stuartmorgan
3ebebebb8d
Implement plugin tooling support for macOS (#33636)
Enables the CocoaPods-based plugin workflow for macOS. This allows a
macOS project to automatically fetch and add native plugin
implementations via CocoaPods for anything in pubspec.yaml, as is done
on iOS.
2019-05-31 13:19:44 -07:00
stuartmorgan
81c38b22cb
Implement macOS support in flutter doctor (#33277)
Splits Xcode validation out of the iOS validator and into a stand-alone
validator, and groups the CocoaPods validator with that top-level
validator instead of the iOS validator. iOS now validates only the
iOS-specific tools (e.g., ideviceinstaller).

Reorganizes many of the associated clases so that those that are used by
both macOS and iOS live in macos/ rather than ios/. Moves some
validators to their own files as part of the restructuring.

This is the macOS portion of #31368
2019-05-24 22:51:02 -04:00
Chris Bracken
156b4220b4
Americanise spellings (#33323)
Updates documentation and non-public API to use American spellings for
consistency with the rest of the codebase.

No changes to behaviour... other than how it's spelt.
2019-05-24 19:13:02 -07:00
Jonah Williams
4ff467191b
make FlutterProject synchronous (#31757) 2019-04-29 08:21:32 -07:00
Jonah Williams
0acd3e6b04
refactor context to be implicit-downcast safe (#31622) 2019-04-25 15:51:08 -07:00
Jonah Williams
661e0350fb
Disable all Dart fingerprinters (#31463) 2019-04-23 11:58:37 -07:00
Jonah Williams
99866f4a3d
Make timeout durations configurable (#30053) 2019-03-27 16:21:16 -07:00
Alexandre Ardhuin
bfa1d25bf9
some formatting of map, parameters and spaces (#29760) 2019-03-23 00:02:21 +01:00
Alexandre Ardhuin
a6af422874
some spaces formatting (#29452)
* some space formattings

* always use blocks in if-else if a block is used

* format spaces in for and while

* allow multiline if conditions

* fix missing space
2019-03-20 23:23:31 +01:00
Priit Lätt
cdbd0f9ddd Use async execution for xcodebuild commands (#29048) 2019-03-19 09:19:34 -07:00
Phil Quitslund
802eca29d2
set literal conversions (#27811) 2019-03-06 11:05:16 -08:00
Alexandre Ardhuin
387f885481
Add missing trailing commas (#28673)
* add trailing commas on list/map/parameters

* add trailing commas on Invocation with nb of arg>1

* add commas for widget containing widgets

* add trailing commas if instantiation contains trailing comma

* revert bad change
2019-03-01 08:17:55 +01:00
KyleWong
52687c7910
Optimize flutter run logic for iOS by "ONLY_ACTIVE_ARCH=YES" if possible (#27817) 2019-02-12 12:24:57 +08:00
KyleWong
bf20fa7c9d
Refactor "no ios devices attached" logic. (#27717) 2019-02-12 10:14:01 +08:00
xster
36c5e321a5
Print 50000$ monopoly money (#27531) 2019-02-05 15:00:51 -08:00
Michael Goderbauer
6d20ff2446
Remove all obsolete "// ignore:" (#27271) 2019-01-30 08:56:12 -08:00
Danny Tuppeny
64a1ce011a
Change "Starting Xcode build" text to "Running xcode build" (#27181)
This status shows for the duration of the run, not just while starting. It looks kinda weird in the editors to show a progress bar for "Starting Xcode build" and then removing it once it completes.
2019-01-28 16:24:56 +00:00
Jonah Williams
91fd89e8b3
Wrap dart:convert to track utf8 decode failures (#26650) 2019-01-25 16:16:26 -08:00
Dan Field
543f8924b4
Avoid calling cancel on AnsiSpinner more than once when building for iOS (#26826)
* Avoid calling cancel more than once

* add some missing checks for ansispinner
2019-01-21 22:41:35 -08:00
Dan Field
386f3466b5
Roll engine to 05fee4eeee0ff6b219b1fcc394371e5f6963cc46 (#26713)
* move flutter_assets to App.framework

* Roll engine to 05fee4eeee0ff6b219b1fcc394371e5f6963cc46

05fee4eee Update default flutter_assets path for iOS embedding (flutter/engine#7518)
02205db01 Roll src/third_party/skia 5d052dac3ac1..02738a86e5fd (4 commits) (flutter/engine#7541)
af907c074 Roll src/third_party/skia 5c7a3ac0e214..5d052dac3ac1 (7 commits) (flutter/engine#7540)
dde286673 IWYU to get SkFontMetrics (flutter/engine#7539)
2019-01-21 21:23:04 -08:00
Ian Hickson
31a9626c48
[O] Removing all timeouts (mark II) (#26736)
These are essentially self-inflicted race conditions. Instead of timeouts we're going to try a more verbose logging mechanism that points out when things are taking a long time.
2019-01-19 00:31:05 -08:00
Dan Field
4c99958df6
Revert "Move flutter_assets to App.framework (#26630)" (#26675)
This reverts commit d8db70af1a.
2019-01-16 16:46:37 -08:00
Dan Field
d8db70af1a
Move flutter_assets to App.framework (#26630)
* move flutter_assets to App.framework

* remove flutter_assets references from all pbxproj files checked in
2019-01-16 14:02:54 -08:00
Ian Hickson
8426910a19
Revert "[O] Remove many timeouts. (#23531)" (#25646)
This reverts commit 76f70810e4.
2018-12-20 18:46:36 -08:00
Ian Hickson
76f70810e4
[O] Remove many timeouts. (#23531)
* Remove many timeouts.

These are essentially self-inflicted race conditions. Instead of timeouts we're going to try a more verbose logging mechanism that points out when things are taking a long time.

* Get the attach tests to pass.

* Apply review comments from Todd

* More review comment fixes

* Put back the extended timeouts here now that I know why we have them...
2018-12-20 17:10:40 -08:00
Jonah Williams
f5b02e3c05
Bump minimum ios_deploy version (#24550) 2018-11-20 07:49:29 -08:00
Alexandre Ardhuin
79b5e5bc8a
Add missing lints (#24381)
* update lint list

* enable sort_pub_dependencies

* enable avoid_returning_null_for_void

* enable flutter_style_todos
2018-11-19 10:37:55 +01:00
Alexander Aprelev
3b7942c444
Fix multi-step build handling process. (#24310)
* Fix multi-step build handling process.

Stop listening for new step updates after 'all done.' log message. Make sure that we don't delete file too soon, until listener had a chance to process the 'all done' message.

Fixes https://github.com/flutter/flutter/issues/18750

* Emit 'all output' explicitly when build process is done.
2018-11-14 08:54:13 -08:00
mattijsf
54becbf3bf Ignore unreachable iOS devices in IOSDevice.getAttachedDevices (#23776) 2018-11-05 15:09:39 -08:00
Alexander Aprelev
34bc1e3c8c
Fix hanging of flutter run when running on more than one simulator. (#23932)
This stops reading from pipe-to-file log after the build is completed. Attempting to read from pipe-to-file keeps open blocked because nobody is going to write into that pipe.
2018-11-05 07:29:37 -08:00
Alexander Aprelev
47f62109d2
Specify UDID for idevicelistener. (#23854)
This is needed to run flutter app on multiple iOS devices at a time.
2018-11-01 20:04:42 -07:00
Dan Field
fd6b2e198c
Re-reland Xcode backend refactor (#23762)
* Use Xcode build configurations to drive Flutter build mode

* Proper check wrt local_engine, print error if profile mode misisng

* Remove unused code, update tests, fix template problem, update warning

* fix up warning

* add explanatory dev comment

* fix whitespace

* missing words, change lambda arrow to function body

* error indentation

* Test early exits for xcode_backend.sh

* only on macOS, use right test

* Update error messages

* case insensitive compare for build config

* Update gallery podfile

* update projects to add profile configuration

* make compatible with flavors

* add missing plist files

* add FLUTTER_FRAMEWORK_DIR back, set swift version for profile, tell Podfile about profile
2018-10-31 16:37:53 -07:00
Dan Field
7217999a9a
Revert "Reland Xcode backend refactor" (#23737)
* Revert "Update templates (#23698)"

This reverts commit 5b0de6d679.

* Revert "Verify that date/number translations exist for all supported languages (#23692)"

This reverts commit 3449edf256.

* Revert "Reland Xcode backend refactor (#23574)"

This reverts commit 7270f2845d.
2018-10-30 09:36:31 -07:00
Dan Field
7270f2845d
Reland Xcode backend refactor (#23574)
* Use Xcode build configurations to drive Flutter build mode

* Proper check wrt local_engine, print error if profile mode misisng

* Remove unused code, update tests, fix template problem, update warning

* fix up warning

* add explanatory dev comment

* fix whitespace

* missing words, change lambda arrow to function body

* error indentation

* Test early exits for xcode_backend.sh

* only on macOS, use right test

* Update error messages

* case insensitive compare for build config

* Update gallery podfile

* update projects to add profile configuration

* make compatible with flavors

* add missing plist files
2018-10-30 07:23:19 -07:00
Dan Field
628e8ec0b9
Revert "Xcode backend refactor (#23387)" (#23528)
This reverts commit def1d80566.
2018-10-25 13:25:09 -07:00
Dan Field
def1d80566
Xcode backend refactor (#23387)
* Use Xcode build configurations to drive Flutter build mode
2018-10-25 11:29:31 -07:00
Greg Spencer
0ff9e8a928
Rename 'application' back to 'module', and make 'app' the default again for templates. (#22888)
We decided that redefining the default for templates was premature. We're going to go back to having "module" in experimental land again, and we'll try again when we have the feature set fully baked.

This keeps the writing of the .metadata files, and writing the template type to them, because that was a good improvement, and there are still a bunch of added tests that improve our coverage.
2018-10-10 11:01:40 -07:00
Alexandre Ardhuin
2d3ff10d62
apply lint prefer_void_to_null in packages/flutter_tools (#22686) 2018-10-05 07:54:56 +02:00
Greg Spencer
9f23866a0a
Rename module --> application in flutter create command. (#22565)
This renames the "module" template to the "application" template, and makes "application" the default. The existing "app" template is now deprecated.

flutter create also now recognizes the type of project in an existing directory, and is able to recreate it without having the template type explicitly specified (although you can still do that). It does this now by first looking in the .metadata file for the new project_type field, and if it doesn't find that, then it looks at the directory structure. Also, the .metadata file is now overwritten even on an existing directory so that 1) the project_type can be added to legacy projects, and 2) the version of Flutter that updated the project last is updated.

I also cleaned up a bunch of things in create_test.dart, added many more tests, and added an example test to the test/ directory in the generated output of the application template.

Fixes #22530
Fixes #22344
2018-10-04 13:03:20 -07:00
Alexandre Ardhuin
f62afdcf57
add missing type parameter on methods (#22096) 2018-10-01 21:29:08 +02:00
Mikkel Nygaard Ravn
a600fe7f13 Support materializing Flutter module host app on iOS (#21276)
* Prototype

* Fix paths to Flutter library resources

* Invoke pod install as necessary for materialized modules

* Add devicelab test for module use on iOS

* Remove debug output

* Rebase, reame materialize editable

* Add devicelab test editable iOS host app

* Removed add2app test section
2018-09-25 15:21:13 -04:00
Greg Spencer
efcd9a8001
Simplify Gradle compiler output. (#21760)
This changes the compiler output for gradle to be less verbose and more easily read.

This only applies to compilation error messages: other gradle messages will continue to print as before.

It also fixes a small problem with the performance measurement printing (see that "7.1s" on it's own line in the original?) so that if something is expected to have multiple lines of output, it prints an initial line, and a "Done" line with the elapsed time, so that it's possible to know what the time applies to.

It also updates the spinner to be fancier, at least on platforms other than Windows (which is missing a lot of symbols in its console font).

Addresses #17307
2018-09-20 15:45:48 -07:00
Greg Spencer
7caa65943f
Added more extensive ANSI color printing support on terminals. (#20958)
This adds support to AnsiTerminal for colored output, and makes all tool output written to stderr (with the printError function) colored red.

No color codes are sent if the terminal doesn't support color (or isn't a terminal).

Also makes "progress" output print the elapsed time when not connected to a terminal, so that redirected output and terminal output match (redirected output doesn't print the spinner, however).

Addresses #17307
2018-09-19 15:22:43 -07:00
Chris Bracken
f8c50ea15f
Use Xcode legacy build system for iOS builds (#21901) (#21994)
Xcode 10 introduces a new build system which includes stricter checks on
duplicate build outputs.

When plugins are in use, there are two competing build actions that copy
Flutter.framework into the build application Frameworks directory:

  1. The Embed Frameworks build phase for the Runner project
  2. The [CP] Embed Pods Frameworks build phase that pod install creates
     in the project.

Item (1) is there to ensure the framework is copied into the built app
in the case where there are no plugins (and therefore no CocoaPods
integration in the Xcode project). Item (2) is there because Flutter's
podspec declares Flutter.framework as a vended_framework, and CocoaPods
automatically adds a copy step for each such vended_framework in the
transitive closure of CocoaPods dependencies.

As an immediate fix, we opt back into the build system used by Xcode 9
and earlier. Longer term, we need to update our templates and
flutter_tools to correctly handle this situation.

See: https://github.com/flutter/flutter/issues/20685
2018-09-18 10:05:46 -07:00
Chris Bracken
4c045e79fb
Revert "Use Xcode legacy build system for iOS builds (#21901)" (#21966)
This caused issues for projects without an Xcode workspace. Almost all
Flutter projects in the wild will have a workspace, but this patch needs
to add a check to catch any that lack one.

This reverts commit 021f472efc.
2018-09-17 18:22:54 -07:00
Chris Bracken
021f472efc
Use Xcode legacy build system for iOS builds (#21901)
Xcode 10 introduces a new build system which includes stricter checks on
duplicate build outputs.

When plugins are in use, there are two competing build actions that copy
Flutter.framework into the build application Frameworks directory:

  1. The Embed Frameworks build phase for the Runner project
  2. The [CP] Embed Pods Frameworks build phase that pod install creates
     in the project.

Item (1) is there to ensure the framework is copied into the built app
in the case where there are no plugins (and therefore no CocoaPods
integration in the Xcode project). Item (2) is there because Flutter's
podspec declares Flutter.framework as a vended_framework, and CocoaPods
automatically adds a copy step for each such vended_framework in the
transitive closure of CocoaPods dependencies.

As an immediate fix, we opt back into the build system used by Xcode 9
and earlier. Longer term, we need to update our templates and
flutter_tools to correctly handle this situation.

See: https://github.com/flutter/flutter/issues/20685
2018-09-17 17:54:57 -07:00
Alexandre Ardhuin
d927c93310
Unnecessary new (#20138)
* enable lint unnecessary_new

* fix tests

* fix tests

* fix tests
2018-09-12 08:29:29 +02:00
Chris Bracken
63fde92adc
Eliminate Dart 1 support from Xcode xcconfig files (#21400) 2018-09-04 14:33:49 -07:00
Chris Bracken
d04a057efd
Eliminate BuildInfo.previewDart2 (now always true) (#21392)
Dart 1 is no longer supported in Flutter.
2018-09-04 13:38:17 -07:00
Chris Bracken
041ff621a7
Eliminate --preview-dart-2 flag (#21304)
This patch eliminates the --preview-dart-2/--no-preview-dart-2 flag,
hardcoding all uses to true. It also defaults all previewDart2 method
parameters to true, where they hadn't yet been.

A series of subsequent patches will eliminate all previewDart2
parameters and the associated code from within the codebase.
2018-09-04 08:50:05 -07:00
Mikkel Nygaard Ravn
22832d3634
Support for flutter run/build module on iOS (#21216) 2018-08-30 16:18:44 +02:00
Ian Hickson
3dec6a6930
Clean up usage of temporary directories (#20682)
All temporary directory start with `flutter_` and have their random component separated from the name by a period, as in `flutter_test_bundle.YFYQMY`.

I've tried to find some of the places where we didn't cleanly delete temporary directories, too. This greatly reduces, though it does not entirely eliminate, the directories we leave behind when running tests, especially `flutter_tools` tests.

While I was at it I standardized on `tempDir` as the variable name for temporary directories, since it was the most common, removing occurrences of `temp` and `tmp`, among others.

Also I factored out some common code that used to catch exceptions that happen on Windows, and made more places use that pattern.
2018-08-17 13:17:23 -07:00
Mikkel Nygaard Ravn
b280074815
Move async from member access to construction (#20035) 2018-08-02 14:12:25 +02:00
Leaf Petersen
32f94443cc
Remove uses of deprecated constants and change int.parse to int.tryParse (#19575)
* Remove uses of deprecated constants
* Change int.parse to int.tryParse where appropriate
2018-07-20 15:07:24 -07:00
Sigurd Meldgaard
2d3a5c744d
Revert "Revert "Use FlutterProject to locate files (#18913)" (#19409)" (#19456)
With a fix of a path being printed relative instead of absolute.
2018-07-20 08:00:30 +02:00
Danny Tuppeny
d3f6128c21
Flutter emulator launch crash running in dart-2-mode (#19454)
* Only printError on our simple messages

Any other type is a real error that should be a normal crash (to get a proper error log).

See #19453.

* Add toList() to convert Iterable<String> -> List<String>

This code previously throw in Dart-2 mode.

Fixes #19453.

* Move getSimulatorPath into Xcode

* Add a test that we tried to launch the simulator

* Remove unused import
2018-07-19 10:32:44 +01:00
Sigurd Meldgaard
6a8f904104
Revert "Use FlutterProject to locate files (#18913)" (#19409)
This reverts commit 57d78cc739.
2018-07-16 16:21:20 +02:00
Sigurd Meldgaard
57d78cc739
Use FlutterProject to locate files (#18913) 2018-07-16 09:39:37 +02:00
Chris Bracken
379a2d5654
Push /usr/bin to front of PATH for ios-deploy runs (#19281)
ios-deploy relies on LLDB.framework, which relies on /usr/bin/python and
the 'six' module that's installed on the system. However, it appears to
use the first version of Python on PATH, rather than explicitly
specifying the system install.  If a user has a custom install of Python
(e.g., via Homebrew or MacPorts) ahead of the system Python on their
PATH, LLDB.framework will pick up that version instead. If the user
hasn't installed the 'six' module, ios-deploy will fail with a
relatively cryptic error message.

This patch pushes /usr/bin to the front of PATH for the duration of the
ios-deploy run to avoid this scenario.

This patch also removes checks for package six.

Neither Flutter nor any of its direct dependencies/tooling relies on
package six. ios-deploy depends on LLDB.framework (included with Xcode),
which relies on a Python script that imports this package but uses
whichever Python is at the front of the path. Flutter now invokes
ios-deploy with a PATH with /usr/bin forced to the front in order to
avoid this problem.

We could have retained the check out of paranoia, but this seems
unnecessary since it's entirely possible LLDB.framework may one day drop
this dependency, in which case I'd expect the base system install of
Python would likely drop it as well.
2018-07-11 17:33:06 -07:00
Devon Carew
9d9836f080
adjust declared types to work with dart 2 typing at runtime (#19007)
* adjust declared types to work with dart 2 typing at runtime

* review comments

* update packages/flutter_tools/lib/src/ios/simulators.dart
2018-07-09 12:22:46 -07:00
Sigurd Meldgaard
1e8ef602c3
Add iOS module template (#18830) (#18903)
Add iOS module template

This will enable integration of flutter-views into existing iOS project.
2018-06-28 14:35:00 +02:00
Sigurd Meldgaard
4a6558f88f
Revert "Add iOS module template (#18830)" (#18902)
This reverts commit 8be198d8a0 that broke the build.
2018-06-28 11:16:08 +02:00
Sigurd Meldgaard
8be198d8a0
Add iOS module template (#18830)
Add iOS module template

This will enable integration of flutter-views into existing iOS project.
2018-06-28 10:03:16 +02:00
Chris Bracken
2ae48845a8
Revert elimination of Dart 1 (#18460)
fuchsia_tester.dart still assumes Dart 1. Previously, it ran tests directly
from source, flutter_platform.dart automatically runs a kernel compile when
operating in Dart 2 mode, but this assumes a functional Dart SDK is available
in the artifacts directly, and fuchsia_tester.dart mocks out the artifacts
directory with an empty temp dir.

Remaining work is:
1. Get the frontend server building as a dependency on Fuchsia.
2. Patch fuchsia_tester.dart to use a valid Dart SDK and frontend server.

This also reverts migration to Dart 2 typedef syntax.

This reverts commit 6c56bb2. (#18362)
This reverts commit 3daebd0. (#18316)
2018-06-13 12:46:39 -07:00
Keerti Parthasarathy
aecb7d9607
Fixes for Dart 2 failures in tests (#18371) 2018-06-12 09:30:10 -07:00
Chris Bracken
3daebd059c
It's time to #deleteDart1 (again) (#18316)
* It's time to #deleteDart1 (#18293)

Eliminates support for Dart 1 in flutter_tools, and drops our Dart 1
benchmarks. All commands now run in Dart 1 mode only.

Eliminates --preview-dart-2 / --no-preview-dart-2 support.

* Fix indentation, remove no longer necessary .toList()

* Only push udpated kernel if >0 invalidated srcs
2018-06-08 15:49:24 -07:00
Chris Bracken
9495df4bc3
Revert "It's time to #deleteDart1 (#18293)" (#18313)
Several benchmarks started failing during kernel compile:
1. Timeouts:
   * commands_test
   * hot_mode_dev_cycle__benchmark
   * run_machine_concurrent_hot_reload
   * service_extensions_test

2. Kernel compiler crash:
   * hot_mode_dev_cycle_linux__benchmark
   * routing_test

3. Unexpected termination:
   * hot_mode_dev_cycle_win__benchmark

This reverts commit ed63e7082a.
2018-06-08 12:43:11 -07:00
Chris Bracken
ed63e7082a
It's time to #deleteDart1 (#18293)
Eliminates support for Dart 1 in flutter_tools, and drops our Dart 1
benchmarks. All commands now run in Dart 1 mode only.

Eliminates --preview-dart-2 / --no-preview-dart-2 support.
2018-06-08 11:04:57 -07:00
Alexandre Ardhuin
09276bea25
enable lint prefer_equal_for_default_values (#18156) 2018-06-05 08:50:40 +02:00
Ralph Bergmann
c65e9d19a4 add version to pubspec.yaml (#16857)
Uses the `version` property from the `pubspec.yaml` file to set the corresponding fields in the `local.properties` file respectively in the `Generated.xcconfig` file.

The `--build-name` and `--build-number` options have changed. Now they trump the `version` property from the `pubspec.yaml` file.

If the `version` property is not set and the  `--build-name` and `--build-number` options are not provided, the build command will not change the `local.properties` / `Generated.xcconfig` file.
2018-05-30 07:51:25 -07:00
Simon Lightfoot
be6501a91c Patch to fix builds with custom targets on iOS simulator. (#17734)
* Patch to fix builds with custom targets on iOS simulator. #16787

* Fix for unused import.

* Code review changes applied.
2018-05-21 03:54:38 -07:00
Chris Bracken
849676fc7f
Support multi-arch iOS binaries (#17312)
This change adds support for armv7, arm64, and universal iOS apps.

This change eliminates iOS target architecture hardcoding (previously
arm64 only) and uses the target architecture(s) specified in Xcode's
ARCHS setting ('Architectures' in Xcode Build Settings).

For universal binaries, set ARCHS to its default value, $(ARCHS_STANDARD).

Note that after changing the architecture in Xcode, developers should
run 'pod install' from the ios subdirectory of their project. A separate
change (that will land before this one) will add support for
automatically detecting project file and Podfile changes and re-running
pod install if necessary.

This change also adds an --ios-arch option to flutter build aot. In iOS
AOT builds (in profile and release mode), this dictates which
architectures are built into App.framework. This flag should generally
be unnecessary to set manually since flutter build aot is typically only
invoked internally by flutter itself.
2018-05-06 18:43:07 -07:00
Todd Volkert
d820e5f3b1
Use deprecated io constants (#17278)
The new values are not ready for use yet inside Google
2018-05-03 22:27:29 -07:00
Chris Bracken
cdbdafa8f3
Rerun pod install on changed Xcode project, Podfile (#17274)
If the developer changes their Xcode build settings and their project
has plugins, pod install is required, (e.g. to pick up changes to the
target architecture).

Similarly, manual edits to the Podfile should trigger a pod install.
2018-05-03 19:40:16 -07:00
Yegor
b2c98f9a4e
Roll engine to e976be13c51448f89107d082ec81e2b6731671fa (#17266)
* Roll engine to e976be13c51448f89107d082ec81e2b6731671fa

* move away from deprecated constants
2018-05-03 19:24:48 -07:00
Chris Bracken
68a1e2f7aa
Simplify iOS debug build (#17145)
iOS debug builds always run in interpreted mode whether on device or on
simulator. In both cases, we can skip snapshotting and link against an
empty App.framework. Previously, we did this for iOS simulator builds.
This does the same for device builds.

Previously, debug iOS builds used gen_snapshot to generate a core
snapshot, then used 'xxd' to generate C files containing the snapshot
data in buffers named kDartVmSnapshotData and kDartIsolateSnapshotData,
which are then compiled/linked into App.framework. This is unnecessary
since the VM compiled into Flutter.framework already contains this data.
2018-04-30 19:51:30 -07:00
Chris Bracken
9765f0af00
Extract Xxd class for iOS AOT snapshotting (#17006)
This fixes and re-lands 4bb7496b62, which
was reverted in ceade39c83 due to test
failures caused by a bad rebase.
2018-04-26 08:32:51 -07:00
Todd Volkert
ceade39c83
Revert "Extract Xxd class for iOS AOT snapshotting (#16986)" (#17003)
This reverts commit 4bb7496b62.
2018-04-26 07:11:06 -07:00
Chris Bracken
4bb7496b62
Extract Xxd class for iOS AOT snapshotting (#16986)
Allows for better mockability when tests are added.
2018-04-25 22:16:59 -07:00
Chris Bracken
2689560b72
Add Xcode.cc, Xcode.clang methods for iOS builds (#16974)
Makes for easier mocking, particularly for testing AOT snapshot build.
2018-04-25 20:50:16 -07:00
xster
00221820df
Remove the initial xcodebuild clean step which seems unnecessary (#16475) 2018-04-24 18:17:24 -07:00
Yegor
85473d0941 retry VMService connection; expect missing PRODUCT_BUNDLE_IDENTIFIER (#16770)
Fixes #13655
2018-04-19 18:29:49 -07:00
Sarah Zakarias
4443e4d4cf
Cleanup FLX related code (#16416) 2018-04-12 10:12:26 +02:00
Xiao Yu
3923ccf655 Revert 9749bea7b9. Accidentally pushed to flutter instead of fork repo for PR.
This reverts commit 9749bea7b9.
2018-04-11 13:54:06 -07:00
Xiao Yu
9749bea7b9 Remove the initial xcodebuild clean step which seems unnecessary 2018-04-11 13:52:04 -07:00
Devon Carew
13bafba994
add a period after xcode build done (#16209) 2018-04-04 07:22:58 -07:00
Ralph Bergmann
895707324d improve Flutter build commands (#15788)
add --buildNumber and --buildName to flutter build like
flutter build apk --buildNumber=42 --buildName=1.0.42
2018-03-29 05:58:31 -07:00
xster
4565395693
Let iOS auto-signing tool handle Googler scenario (#16010)
* Let iOS auto-signing tool handle Googler scenario

* Forgot to update tests
2018-03-28 18:58:06 -07:00
Todd Volkert
8d11f5c763
Make AppContext immutable and race-free (#15984)
This updates AppContext per the recommendations in #15352

Fixes #15352
2018-03-28 10:58:28 -07:00
Alexandre Ardhuin
217b2bdaa1
add new lints of linter-0.1.44 and enable unnecessary_parenthesis (#15585) 2018-03-21 07:10:14 +01:00
Jonah Williams
91dcfc5dd2
stderr can be null or empty string (#15701) 2018-03-19 10:53:04 -07:00
Jonah Williams
298f4efc54
Fail ios workflow when simctl does not work (#15628)
* fail ios workflow when simctl does not work

* missed rename commit

* address comments
2018-03-17 10:57:51 -07:00
Alexandre Ardhuin
7667db6362
apply upcomming prefer_const_declarations (#15498) 2018-03-14 06:24:49 +01:00
Jason Simmons
466d15433f
Use Dart 2 camel case constants (#15360) 2018-03-12 11:06:32 -07:00
Mikkel Nygaard Ravn
0d59679624
Make Flutter tooling work on Android without Xcode being installed (#15161) 2018-03-07 08:41:23 +01:00
jcollins-g
614df6949c
Android license detector in doctor, take two (#14783)
* Revert "Revert "Add android license verification to doctor and some refactoring" (#14727)"

This reverts commit d260294752.

* Add tests, fix sdkManagerEnv and use it consistently, and rearrange Status object model

* AnsiSpinner needs to leave the cursor where it found it.

* fix tests

* Const constructor warning only shows up on windows...?

* Avoid crash if we can't find the home directory

* Make pathVarSeparator return a string in the mock

* Implement review comments

* Fix out-of-order problem on stop
2018-02-28 12:09:52 -08:00
xster
f7f1685cac
Make sure broken pod install runs triggers pod install on next flutter build (#14753) 2018-02-16 16:05:16 -08:00
Mikkel Nygaard Ravn
2000435728
Move plugin injection to just after pub get (#14743) 2018-02-16 10:17:28 +01:00
Alexandre Ardhuin
bd1921ec84
unnecessary parenthesis (#14533) 2018-02-16 07:43:19 +01:00
xster
1e397d3fb7
Break up and show more progression during an Xcode build (#14715)
* Created plumbing but has stream problem

* testing with makePipe

* Trying pipe but not really getting anywhere

* works by repeatedly reading line

* Minor cleanup

* works

* Clean up pipe after use.

* Move the last status forward

* Make sure failed script commands bubble up
2018-02-15 15:16:23 -08:00
Mikkel Nygaard Ravn
c2e1bc0322
Revert "Move plugin injection to just after pub get (#14560)" (#14734)
This reverts commit b3e4976ca2.
2018-02-15 22:55:36 +01:00
Mikkel Nygaard Ravn
b3e4976ca2
Move plugin injection to just after pub get (#14560) 2018-02-15 22:17:12 +01:00
xster
80c10bc431
Work around xcodebuild's undocumented freeze when -showBuildSettings is used with -allowProvisioning* (#14684) 2018-02-13 16:49:01 -08:00
xster
d401bd78ae
Reduce Xcode noise #3 (#14663)
* Revert "Revert "Reduce xcodebuild noise #2" (#14641)"

This reverts commit 2d47481f1e.

* Stop scrapping xcodebuild output, get the right build settings

* clone the command params first
2018-02-13 01:56:13 -08:00
xster
6d2dc050b2
Let Xcode communicate with Apple and create new provisioning profiles and register new devices (#14589) 2018-02-12 16:44:21 -08:00
Mikkel Nygaard Ravn
2d47481f1e
Revert "Reduce xcodebuild noise #2" (#14641)
Merging to get back to a green tree.
2018-02-12 15:15:51 +01:00
xster
33ea7f84a9
Reduce xcodebuild noise #2 (#14622)
* Revert "Revert "Reduce noise in xcodebuild stdout (#14586)" (#14605)"

This reverts commit 8e2278bd8d.

* Specify the build config when cleaning
2018-02-11 05:54:14 -08:00
xster
8e2278bd8d
Revert "Reduce noise in xcodebuild stdout (#14586)" (#14605)
This reverts commit 74ddda5177.
2018-02-09 14:28:36 -08:00