505 Commits

Author SHA1 Message Date
Emmanuel Garcia
f098de1fde
Enable Proguard by default on release mode (#39986) 2019-09-10 17:22:55 -07:00
Emmanuel Garcia
6266d5f35d
Log flags in build apk and appbundle (#39457) 2019-08-29 21:37:35 -07:00
Emmanuel Garcia
4a1c62c28b
Add missing files in the Gradle wrapper directory (#39145) 2019-08-28 14:52:08 -07:00
xster
4640690d0f
let flutter build aar use a local engine (#39312) 2019-08-27 23:46:33 -07:00
Emmanuel Garcia
5353d5e877
Fid app bundle in Gradle 3.5 (#39126) 2019-08-27 17:08:02 -07:00
Jonah Williams
6f71ce26d6
Place terminalUi flag on terminal interface (#39214) 2019-08-27 14:20:51 -07:00
Michael Klimushyn
e31d88f9c9
Downgrade the AndroidX warning (#39147)
Originally we wanted to cast as wide of a net and make the warning as
prominent as possible. Recently we've received feedback that the false
positives are more harmful than not, so downgrading the loud message to
a single line warning.
2019-08-26 14:30:22 -07:00
Todd Volkert
c22ce95e15
Change from using defaults to plutil for Plist parsing (#38662)
We were using the `defaults` command-line utility to parse
Plist files, but it was never supported by Apple, and it
appears that in an upcoming OS release, it will be less likely
to work:

> WARNING: The defaults command will be changed in an upcoming
> major release to only operate on preferences domains. General
> plist manipulation utilities will be folded into a different
> command-line program.

Fixes https://github.com/flutter/flutter/issues/37701
2019-08-16 17:10:07 -07:00
Emmanuel Garcia
40c5cc9708
Find the app bundle when the flavor contains underscores (#37457) 2019-08-02 16:02:46 -07:00
Zachary Anderson
a9aea962ab
[flutter_tool] Catch ProcessException from 'adb devices' (#37196) 2019-07-30 12:17:10 -07:00
Zachary Anderson
a5d23d2a25
[flutter_tool] More gracefully handle Android sdkmanager failure (#37194) 2019-07-30 08:19:58 -07:00
Zachary Anderson
ef146f63bb
[flutter_tool] Clean up usage events and custom dimensions (#36785) 2019-07-29 07:24:02 -07:00
Emmanuel Garcia
242a4225a1
Flutter build aar (#36732)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-23 09:27:42 -07:00
Emmanuel Garcia
c9b466f9e2
Revert "Add flutter build aar (#35217)" (#36731)
This reverts commit 11460b83785b6b6a81a5e751403442c518b5d7ed.
2019-07-22 22:07:59 -07:00
Emmanuel Garcia
11460b8378
Add flutter build aar (#35217)
`flutter build aar`

This new build command works just like `flutter build apk` or `flutter build appbundle`, but for plugin and module projects.

This PR also refactors how plugins are included in app or module projects. By building the plugins as AARs, the Android Gradle plugin is able to use Jetifier to translate support libraries into AndroidX libraries for all the plugin's native code. Thus, reducing the error rate when using AndroidX in apps.

This change also allows to build modules as AARs, so developers can take these artifacts and distribute them along with the native host app without the need of the Flutter tool. This is a requirement for add to app.

`flutter build aar` generates POM artifacts (XML files) which contain metadata about the native dependencies used by the plugin. This allows Gradle to resolve dependencies at the app level. The result of this new build command is a single build/outputs/repo, the local repository that contains all the generated AARs and POM files.

In a Flutter app project, this local repo is used by the Flutter Gradle plugin to resolve the plugin dependencies. In add to app case, the developer needs to configure the local repo and the dependency manually in `build.gradle`:


repositories {
    maven {
        url "<path-to-flutter-module>build/host/outputs/repo"
    }
}

dependencies {
    implementation("<package-name>:flutter_<build-mode>:1.0@aar") {
       transitive = true
    }
}
2019-07-22 20:46:01 -07:00
Emmanuel Garcia
5a34e7981e
Catch exceptions thrown by runChecked* when possible (#36109) 2019-07-18 10:45:37 -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
Jonah Williams
adf45d1e40
Refactor signal and command line handler from resident runner (#35406) 2019-07-09 13:10:26 -07:00
Alexandre Ardhuin
758009ba70
more ui-as-code (#35393)
* more ui-as-code

* address review comments
2019-07-02 21:11:56 +02:00
Alexandre Ardhuin
919dcf53f3
enable lints prefer_spread_collections and prefer_inlined_adds (#35189) 2019-06-27 21:23:16 +02:00
Danny Tuppeny
f3be1d9d95
Add emulatorID field to devices in daemon (#34794)
* Add emulatorId to Android and iOS emulator devices

* Update docs

* Review tweaks

* Add tests for AndroidConsole for getting avd names

* Remove unused import

* Remove duplicated header

* Fix imports
2019-06-26 16:39:23 +01:00
Alexandre Ardhuin
c7408be181
prepare for lint update of prefer_final_fields (#35059) 2019-06-25 19:39:34 +02:00
Danny Tuppeny
8dbfc82bc7
Tweak the display name of emulators (#34785) 2019-06-24 11:41:02 +01:00
Jonah Williams
7851a75183
Fix NPE in flutter tools (#34725) 2019-06-19 11:43:06 -07:00
Danny Tuppeny
d9983e1be7
Add category/platformType to emulators (#34721) 2019-06-19 17:10:39 +01:00
Emmanuel Garcia
c50fa3d2bd Re-land config lib dependencies for flavors (#34668) 2019-06-18 22:37:42 -07:00
Emmanuel Garcia
9dbc66979a
Revert "Config lib dependencies when using flavors (#34592)" (#34655)
This reverts commit 358b9bd381fc8cc30094aafb873bce20a02c848c.
2019-06-18 15:30:59 -07:00
Jonah Williams
5c52498d4e
Add device category, ephemeral, platformType for daemon (#33990) 2019-06-18 15:23:14 -07:00
Jonah Williams
73330e1241
Remove compilation trace and dynamic support code (#34529) 2019-06-18 15:22:04 -07:00
Emmanuel Garcia
358b9bd381
Config lib dependencies when using flavors (#34592) 2019-06-17 15:05:16 -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
Ben Konyi
e59d9a815d
Reland "Added --dart-flags option to flutter run (#33924)" (#34181)
Reland "Added --dart-flags option to flutter run (#33924)"

This reverts commit 587687eedf81aa83521cca96b8fb65a4adc8dd90.
2019-06-11 11:37:47 -07:00
Emmanuel Garcia
8627ff433b
Allow multi-abi shared libraries in APKs and App bundles (#34123)
* Gradle generates ELF shared libraries instead of AOT snapshots.
* `flutter build apk/appbundle` supports multiple `--target-platform` and defaults to `android-arm` and `android-arm64`.
* `flutter build apk` now has a flag called `--split-per-abi`.
2019-06-10 13:16:09 -07:00
Jonah Williams
f8f7b89976
Revert "Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles (#33696)" (#34121) 2019-06-08 18:43:25 -07:00
Emmanuel Garcia
966b15b4a4
Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles (#33696)
* Gradle generates ELF shared libraries instead of AOT snapshots.
* `flutter build apk/appbundle` supports multiple `--target-platform` and defaults to `android-arm` and `android-arm64`.
*  `flutter build apk` now has a flag called `--split-per-abi`.
2019-06-08 18:02:32 -07:00
Jonah Williams
587687eedf
Revert "Added --dart-flags option to flutter run (#33924)" (#34092) 2019-06-07 19:33:14 -07:00
Ben Konyi
67a529b895
Added --dart-flags option to flutter run (#33924) 2019-06-07 18:53:42 -07:00
Zachary Anderson
b847ba5a63
[flutter_tool] Send build timing to analytics (#34049) 2019-06-07 13:50:45 -07:00
Alexander Aprelev
30dbc4c767
Whitelist adb.exe heap corruption exit code. (#33951)
* Whitelist adb.exe heap corruption exit code.

In android platform tools 29.0.0 adb.exe shell seems to be exiting with heap corruption exit code, otherwise producing results as expected. This PR whitelists this exit code on Windows.

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

* Fix condition

* Fix 'shell am start' command

* Fix stop command

* Refactor into runAdbMostlyChecked(Sync/Async)

* runAdbMostlyChecked -> runAdbChecked
2019-06-06 12:01:03 -07:00
Zachary Anderson
590dbbd924
[flutter_tool] Log an Android X related failure to analytics (#33782) 2019-06-03 13:16:44 -07:00
Jason Simmons
e810512b32
Use Dart's new direct ELF generator to package AOT blobs as shared libraries in Android APKs (#33611)
This is a replacement for the old implementation of --build-shared-library
that emits an AOT assembly snapshot and feeds it to the Android NDK toolchain.
2019-05-30 16:07:22 -07:00
Jason Simmons
f5cf209a66
Remove appbundle build steps that are required for APKs but not AABs (#32515)
Some parts of the appbundle build process were based on the logic for building
APK packages.  However, these steps (copying to a directory shared by all
build variants, and calculating a SHA) are not necessary for an appbundle.
2019-05-13 15:36:47 -07:00
Jonah Williams
1d91bd2583
Revert "Start abstracting platform logic builds behind a shared interface (#31889)" (#32003)
This reverts commit e5459942c819ce9c9b2e72509a20c1f68fe0bf75.
2019-05-02 14:14:46 -07:00
Jonah Williams
e5459942c8
Start abstracting platform logic builds behind a shared interface (#31889) 2019-05-02 13:31:00 -07:00
Jonah Williams
4ff467191b
make FlutterProject synchronous (#31757) 2019-04-29 08:21:32 -07:00
Danny Tuppeny
fdcc8aafa7
Allow adb stdout to contain the port number without failing (#31491)
* Allow adb stdout to contain the port number without failing

* Add tests that port forwarder correctly responds to known ADB output
2019-04-26 21:03:25 +01:00
Jonah Williams
0acd3e6b04
refactor context to be implicit-downcast safe (#31622) 2019-04-25 15:51:08 -07:00
Jonah Williams
6b191841f3
Allow filtering devices to only those supported by current project (#31446) 2019-04-25 12:25:12 -07:00
Jonah Williams
9e51e13e91
add printError messages and tool exit to android device (#31400) 2019-04-24 19:30:39 -07:00
Stanislav Baranov
e2a3c2ee45
Remove support for building dynamic patches on Android. (#31359) 2019-04-22 10:40:50 -07:00