Commit graph

313 commits

Author SHA1 Message Date
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 11460b8378.
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
Jenn Magder 5e650af7fa
Clean up host_app_ephemeral_cocoapods Profile build settings (#36498) 2019-07-19 12:49:26 -07:00
Anoop B 90326b6184 [ImgBot] Optimize images (#35971) 2019-07-11 21:16:48 -07:00
Jenn Magder ec2c3f2116
Disable CocoaPods input and output paths in Xcode build phase for ephemeral add2app (#35833) 2019-07-10 10:40:15 -07:00
Jenn Magder 559c9982dd
UIApplicationLaunchOptionsKey -> UIApplication.LaunchOptionsKey (#35763) 2019-07-08 16:55:27 -07:00
Jenn Magder f3150ed0b5
Remove Swift Obj-C Inference build setting (#35756) 2019-07-08 16:04:16 -07:00
Karen Rustad Tölva 9155795883 Fix typo in main.dart templates (#35684) 2019-07-08 10:36:44 -07:00
Jenn Magder 95a1816698
Clean up host_app_ephemeral Profile build settings (#35307) 2019-07-01 11:02:25 -07:00
Jenn Magder 1b176c5df1
Update Xcode projects to recommended Xcode 10 project settings (#34738) 2019-06-20 08:48:19 -07:00
Jenn Magder c40d701e96
Change Xcode project developmentRegion to 'en' and plist CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE (#34293) 2019-06-12 11:31:17 -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
Josh Burton 9223a44b8a Adds the androidX flag to a modules pubspec.yaml template so it is se… (#34066)
This is a small follow up to the previous AndroidX PR: https://github.com/flutter/flutter/pull/31028

This fixes an issue mentioned [here](https://github.com/flutter/flutter/issues/28805) where the androidX flag for a module is not set when creating a new project:

`flutter create --androidx -t module my_flutter`
2019-06-07 16:09:21 -07:00
Jonah Williams bd413bff1b
Add flutter create for the web (#34018) 2019-06-07 13:15:38 -07:00
stuartmorgan 9751f3e537
Add use_frameworks to macOS Podfile template (#33987)
This wasn't included originally since it didn't seem to be necessary for
macOS in testing, but not having it breaks Swift plugins. This matches
the iOS Swift Podfile template.
2019-06-06 12:43:37 -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
Josh Burton d0e45a2369 Adds support for generating projects that use AndroidX support libraries (#31028) 2019-05-31 18:33:02 -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
Emmanuel Garcia 12a0e475e2
Make paths absolute in settings.gradle (#33228) 2019-05-23 23:32:11 -07:00
Michael Thomsen 7ae3caf309
Rename flutter packages to flutter pub (#33041) 2019-05-21 16:38:58 +02:00
Kate Lovett 054d9bb2f1
Updating dart.dev related links (#32641)
* Updating dart.dev related links

* Update packages/flutter_tools/lib/src/base/context.dart
2019-05-14 10:35:00 -07:00
Danny Tuppeny b76a1e8312
Comment out .vscode/ in gitignore for templates (#32404) 2019-05-13 09:06:30 +01:00
Matthew Lloyd 969c6ef1dc Add reference to Runner-Bridging-Header.h to iOS template's profile configuration (#32266) 2019-05-07 23:59:01 -07:00
Antti Ahti bf8262d85b Remove trailing whitespace from README template (#31762) 2019-04-29 13:04:55 +02:00
Dan Field 1db5d66932
Capture JSON RPC errors that presently get swallowed (#31584)
* Update packages
* Capture JSON RPC errors that presently get swallowed
2019-04-25 08:27:00 -07:00
ShaLi Shaltiel a018264131 Updated package template .gitignore file (#27034) 2019-04-09 10:12:32 -07:00
Tim Sneath 529189791c
Replace flutter.io with flutter.dev (#30562) 2019-04-05 11:39:30 -07:00
Jonah Williams 1bfa2f2311
Intercept errors thrown by synchronous Completers in image resolution. (#30139) 2019-03-29 10:05:18 -07:00
Jonah Williams 3c93b65a9b
Update to latest matcher (#30019) 2019-03-27 17:21:10 -07:00
Jonah Williams 6f5f037689
Add basic web device and run support (#28302) 2019-02-26 16:58:24 -08:00
TruongSinh Tran-Nguyen d15a361244 flutter create --template=plugin now include flutter unit test (#26456) 2019-02-12 10:37:00 -08:00
KyleWong 1c0a06f397 Make version documentation clearer. (#27278)
Currently, in pubspec.yaml, semver.org is referred to for more about versioning.
However, the versionCode/versionName could differ on different platforms (iOS, Android, Dart).

This adds more clear and complete information that could help users to understand it better.

See: #27251
2019-02-11 16:29:38 -08:00
KyleWong 7c19ec6ca8 Add2App: Fix crash resulted from hard-code module 'app' based resource copy. (#27154) 2019-01-30 10:29:29 -08:00
Mohammed Salman 8cb2695a0b fix #26207 .gitignore only include project root build directory (#26388) 2019-01-30 07:33:28 -08:00
Dan Field 496c57386b
Update packages (#27046)
* Update packages

* Change test for isFile
2019-01-24 16:02:45 -08:00
Jason Simmons 7bfbc28505
Revert "Upgrade the Gradle script to Android plugin version 3.3.0 (#26913)" (#27045)
This reverts commit 30f33d6c7d.
2019-01-24 14:29:08 -08:00
Jason Simmons 30f33d6c7d
Upgrade the Gradle script to Android plugin version 3.3.0 (#26913)
Fixes https://github.com/flutter/flutter/issues/26544
2019-01-24 12:21:11 -08:00
Jonah Williams f777db2b78
add uiMode to android:configChanges (#26896) 2019-01-22 10:37:22 -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
Dan Field d8d36bc7e8
targetSdkVersion 28 (#26798) 2019-01-19 11:59:42 -08:00
mcplectrum b4daf33807 Fix Podfile issue #24342 (#25079)
* Fix Podfile issue #24342

Sometimes base configurations  (config.base_configuration_reference) can be nil, which leads to undefined method `real_path' for nil:NilClass.

* Disable bitcode in every case
2019-01-17 15:00:51 -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
Dan Field 025d04ad52
remove todo (#26562) 2019-01-15 08:42:12 -08:00
Jason Simmons cf4c903144
Update compileSdkVersion in the Android app templates to Android P (#26444)
Fixes https://github.com/flutter/flutter/issues/25703
2019-01-14 16:16:12 -08:00
Jason Simmons 8efd6c1a21
Add a manifest for profile builds that enables INTERNET permission (#26450)
Profile builds need access to sockets in order to launch the Dart
observatory server.

This permission used to be enabled by default in all build types,
but was moved to a build type specific manifest in
88b853f7eb
2019-01-11 18:19:17 -08:00