flutter/packages/flutter_tools/test/general.shard
Victoria Ashworth 6d19fa3bfa
Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256)
This PR adds initial support for Swift Package Manager (SPM). Users must opt in. Only compatible with Xcode 15+.

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

## Included Features

This PR includes the following features:
* Enabling SPM via config 
`flutter config --enable-swift-package-manager`
* Disabling SPM via config (will disable for all projects) 
`flutter config --no-enable-swift-package-manager`
* Disabling SPM via pubspec.yaml (will disable for the specific project)
```
flutter:
  disable-swift-package-manager: true
```
* Migrating existing apps to add SPM integration if using a Flutter plugin with a Package.swift
  * Generates a Swift Package (named `FlutterGeneratedPluginSwiftPackage`) that handles Flutter SPM-compatible plugin dependencies. Generated package is added to the Xcode project.
* Error parsing of common errors that may occur due to using CocoaPods and Swift Package Manager together
* Tool will print warnings when using all Swift Package plugins and encourage you to remove CocoaPods

This PR also converts `integration_test` and `integration_test_macos` plugins to be both Swift Packages and CocoaPod Pods.

## How it Works
The Flutter CLI will generate a Swift Package called `FlutterGeneratedPluginSwiftPackage`, which will have local dependencies on all Swift Package compatible Flutter plugins.  

The `FlutterGeneratedPluginSwiftPackage` package will be added to the Xcode project via altering of the `project.pbxproj`. 

In addition, a "Pre-action" script will be added via altering of the `Runner.xcscheme`. This script will invoke the flutter tool to copy the Flutter/FlutterMacOS framework to the `BUILT_PRODUCTS_DIR` directory before the build starts. This is needed because plugins need to be linked to the Flutter framework and fortunately Swift Package Manager automatically uses `BUILT_PRODUCTS_DIR` as a framework search path.

CocoaPods will continue to run and be used to support non-Swift Package compatible Flutter plugins.

## Not Included Features

It does not include the following (will be added in future PRs):
* Create plugin template
* Create app template
* Add-to-App integration
2024-04-18 21:12:36 +00:00
..
android Convert ProjectMigration and ProjectMigrator to be async (#146537) 2024-04-10 16:26:19 +00:00
base [tools] Make SnapshotType.platform non-nullable (#146958) 2024-04-18 16:34:06 +00:00
build_system Changing the renderer on the web target should change its build key. (#147003) 2024-04-18 21:05:06 +00:00
commands Make daemon server work on ipv6-only machines. (#144359) 2024-02-29 23:10:50 +00:00
custom_devices provide command to FakeCommand::onRun (#142206) 2024-01-25 07:51:25 +00:00
dap Roll pub packages + update DAP tests (#145349) 2024-03-18 21:39:21 +00:00
dart Remove message about pub cache that is not actionable (#143357) 2024-02-13 11:15:15 -08:00
drive Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
fuchsia Remove outdated ignores from tool (#140467) 2023-12-20 22:14:32 +00:00
intellij prevent tool crash when IntelliJValidatorOnMac encounters an installation with a missing CFBundleIdentifier (#138095) 2023-11-09 03:46:25 +00:00
ios Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
isolated [deps] Bump native assets dependencies (#145612) 2024-03-25 15:02:49 +01:00
linux Reland "Move native assets to isolated/ directory" (#143055) 2024-02-08 17:49:48 +00:00
macos Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
migrations Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
proxied_devices Avoid forwarding the data after socket is disconnected. (#146665) 2024-04-12 21:45:32 +00:00
reporting [flutter_tools] fix instructions to disable CLI animations (#139094) 2023-11-27 22:00:50 +00:00
runner Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
test flutter test --wasm support (#145347) 2024-03-21 20:08:07 +00:00
tester Native assets support for MacOS and iOS (#130494) 2023-09-10 08:07:13 +00:00
vscode Added support for vscode and vscode-insiders installed via Flatpak (#137123) 2023-12-04 21:59:53 +00:00
web Support flutter run --wasm and flutter drive --wasm. (#146231) 2024-04-12 19:27:26 +00:00
windows Convert ProjectMigration and ProjectMigrator to be async (#146537) 2024-04-10 16:26:19 +00:00
analytics_test.dart Flutter preview device (#135639) 2023-10-18 00:27:54 +00:00
android_plugin_test.dart
application_package_test.dart
args_test.dart [flutter_tools] Precache after channel switch (#118129) 2023-06-09 01:46:24 +00:00
artifact_updater_test.dart Enable unreachable_from_main lint - it is stable now!!1 (#129854) 2023-07-06 00:09:01 +00:00
artifacts_test.dart Reland "Add FlutterMacOS.xcframework artifact (#143244)" (#144275) 2024-02-28 20:09:54 +00:00
asset_bundle_flavors_test.dart Catch file system exceptions when trying to parse user-provided asset file paths (#142214) 2024-01-29 18:43:57 +00:00
asset_bundle_package_fonts_test.dart rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529) 2023-06-09 21:20:50 +00:00
asset_bundle_package_test.dart rename generated asset manifest file back to AssetManifest.bin (from AssetManifest.smcbin) (#128529) 2023-06-09 21:20:50 +00:00
asset_bundle_test.dart make hot reload reflect changes to asset transformer configurations (#144660) 2024-03-25 04:13:11 +00:00
asset_bundle_variant_test.dart refactor asset bundle code to not depend on the global Cache.flutterRoot (#142277) 2024-01-26 22:01:26 +00:00
asset_test.dart refactor asset bundle code to not depend on the global Cache.flutterRoot (#142277) 2024-01-26 22:01:26 +00:00
base_utils_test.dart Fixed race condition in PollingDeviceDiscovery. (#145506) 2024-03-21 22:37:08 +00:00
build_info_test.dart [reland] Support conditional bundling of assets based on --flavor (#139834) 2023-12-14 05:30:10 +00:00
bundle_builder_test.dart Enable asset transformation for flutter run -d <browser> and flutter test (#144734) 2024-03-07 23:38:40 +00:00
cache_test.dart Reland "Add FlutterMacOS.xcframework artifact (#143244)" (#144275) 2024-02-28 20:09:54 +00:00
channel_test.dart [flutter_tools] Suppress git output in flutter channel (#128475) 2023-06-13 19:28:06 +00:00
cmake_test.dart Reduce usage of testUsingContext (#131078) 2023-07-24 17:22:25 +00:00
cold_test.dart Avoid depending on files from build_system/targets other than from top level entrypoints in flutter_tools. (#142760) 2024-02-02 18:23:08 +00:00
common_test.dart
compile_batch_test.dart Remove toString() overrides in dart:ui/package:flutter in profile/release mode on wasm/vm targets (#144763) 2024-03-08 09:55:02 +01:00
compile_expression_test.dart Roll engine, patch expression evaluation (#128255) 2023-06-07 19:48:42 +00:00
compile_incremental_test.dart Reland "Switch flutter_tools to run frontend server from AOT snapshot" (#136282) 2023-10-11 16:15:26 -04:00
compile_test.dart Remove toString() overrides in dart:ui/package:flutter in profile/release mode on wasm/vm targets (#144763) 2024-03-08 09:55:02 +01:00
config_test.dart
convert_test.dart
coverage_collector_test.dart Fix implementation imports outside of lib (#143594) 2024-02-16 22:38:10 +00:00
crash_reporting_test.dart Appended period remove & Uri parsing fix. (#131293) 2023-07-31 20:42:11 +00:00
create_config_test.dart Suggest a potential valid name for the flutter project when using flutter create (#130900) 2023-07-21 19:09:25 +00:00
daemon_test.dart [flutter_tools] Fix missing stack trace from daemon (#144113) 2024-02-27 08:39:49 +00:00
dart_plugin_test.dart refactor: Remove throwOnPluginPubspecError flag for plugin validation (#144214) 2024-03-07 23:04:08 +00:00
desktop_device_test.dart Add --trace-to-file option to flutter run (#135713) 2023-10-12 13:23:52 -04:00
devfs_test.dart Reverts "Expose build mode in environment of asset transformer processes (#144752)" (#144957) 2024-03-11 21:00:17 +00:00
device_port_forwarder_test.dart
device_test.dart Fixed race condition in PollingDeviceDiscovery. (#145506) 2024-03-21 22:37:08 +00:00
device_vm_service_discovery_for_attach_test.dart Support mdns when attaching to proxied devices. (#146021) 2024-04-09 20:00:21 +00:00
devtools_launcher_test.dart Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
emulator_test.dart Fixed Small Typo in Emulators Test Name (#143578) 2024-02-22 18:35:21 +00:00
fake_process_manager_test.dart
features_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
flutter_manifest_assets_test.dart add parsing of assets transformer declarations in pubspec.yaml (#143557) 2024-02-16 22:24:59 +00:00
flutter_manifest_assets_transformers_test.dart add parsing of assets transformer declarations in pubspec.yaml (#143557) 2024-02-16 22:24:59 +00:00
flutter_manifest_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
flutter_platform_test.dart cleanup now-irrelevant ignores for deprecated_member_use (#143403) 2024-02-14 21:08:25 +00:00
flutter_project_metadata_test.dart Native assets support for MacOS and iOS (#130494) 2023-09-10 08:07:13 +00:00
flutter_tester_device_test.dart Add impeller key to skia gold client, Turn on a framework test shard that will run unit tests with --enable-impeller (#141341) 2024-01-11 17:57:00 +00:00
flutter_validator_test.dart Give channel descriptions in flutter channel, use branch instead of upstream for channel name (#126936) 2023-05-23 19:59:20 +00:00
generate_localizations_test.dart chore: fix some comments (#145397) 2024-03-19 17:00:24 +00:00
github_template_test.dart
hot_shared.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
hot_test.dart Reland "Move native assets to isolated/ directory" (#143055) 2024-02-08 17:49:48 +00:00
integration_test_device_test.dart
license_collector_test.dart
mdns_discovery_test.dart Clean up lint ignores (#144229) 2024-02-27 23:21:03 +00:00
message_parser_test.dart Relax syntax for gen-l10n (#130736) 2023-07-18 13:59:48 -07:00
persistent_tool_state_test.dart
plugin_parsing_test.dart
plugins_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
preview_device_test.dart [flutter_tools] Ensure flutter daemon clients can detect preview device (#140112) 2023-12-21 19:01:16 +00:00
project_file_invalidator_test.dart
project_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
project_validator_result_test.dart
protocol_discovery_test.dart
pub_dependencies_project_validator_test.dart
resident_devtools_handler_test.dart Add a --print-dtd flag to print the DTD address served by DevTools server (#144272) 2024-03-25 13:04:18 -07:00
resident_runner_helpers.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
resident_runner_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
resident_web_runner_cold_test.dart Remove outdated ignores from tool (#140467) 2023-12-20 22:14:32 +00:00
resident_web_runner_test.dart remove unused firstBuildTime parameter in DevFS::update (#144576) 2024-03-05 19:14:48 +00:00
run_hot_test.dart Clean up lint ignores (#144229) 2024-02-27 23:21:03 +00:00
template_test.dart Locate the template directory using a TemplatePathProvider. (#132156) 2023-08-08 21:43:00 +00:00
terminal_handler_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
testbed_test.dart
time_test.dart
tracing_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
unified_analytics_test.dart Use new enabledFeature param for Analytics (#139934) 2023-12-15 19:58:05 +00:00
update_packages_test.dart Copy the flutter version JSON file into the simulated Flutter SDK used by update_packages (#143035) 2024-02-06 20:00:08 -08:00
utils_test.dart Reland #128236 "Improve build output for all platforms" (#145495) 2024-03-23 12:05:21 +00:00
version_test.dart [flutter_tools] Fix "FormatException: Invalid date format" during version freshness check (#134088) 2023-09-06 17:22:13 +00:00
vmservice_test.dart [flutter_tools] Catch rpc error in render frame with raster stats (#144190) 2024-02-28 18:54:18 +00:00
web_template_test.dart Flutter Web Bootstrapping Improvements (#144434) 2024-03-12 22:41:26 +00:00
windows_version_validator_test.dart Add check for Bank of Brazil security module to Windows Flutter Doctor validators (#141135) 2024-01-18 12:32:49 -05:00
xcode_backend_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00
xcode_project_test.dart Add Swift Package Manager as new opt-in feature for iOS and macOS (#146256) 2024-04-18 21:12:36 +00:00