Add link to SwiftPM manual integration instructions (#168066)

If SwiftPM integration fails, display a link to instructions on how to
integrate manually.

New error message will look like
```
An error occurred when adding Swift Package Manager integration:
  Exception: Forced a throw

Swift Package Manager is currently an experimental feature, please file a bug at
  https://github.com/flutter/flutter/issues/new?template=01_activation.yml
Consider including a copy of the following files in your bug report:
  ios/Runner.xcodeproj/project.pbxproj
  ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme (or the scheme for the flavor used)

To add Swift Package Manager integration manually, please use the following instructions:
https://docs.flutter.dev/packages-and-plugins/swift-package-manager/for-app-developers#add-to-a-flutter-app-manually

Alternatively, to avoid this failure, disable Flutter Swift Package Manager integration for the project
by adding the following in the project's pubspec.yaml under the "flutter" section:
  "disable-swift-package-manager: true"
Or disable Flutter Swift Package Manager integration globally with the
following command:
  "flutter config --no-enable-swift-package-manager"
```

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

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
This commit is contained in:
Victoria Ashworth 2025-05-02 15:39:50 -05:00 committed by GitHub
parent da166e8586
commit 59537e1f66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -173,8 +173,6 @@ class SwiftPackageManagerIntegrationMigration extends ProjectMigrator {
await _xcodeProjectInterpreter.getInfo(_xcodeProject.hostAppRoot.path);
} on Exception catch (e) {
restoreFromBackup(schemeInfo);
// TODO(vashworth): Add link to instructions on how to manually integrate
// once available on website.
throwToolExit(
'An error occurred when adding Swift Package Manager integration:\n'
' $e\n\n'
@ -184,10 +182,12 @@ class SwiftPackageManagerIntegrationMigration extends ProjectMigrator {
' ${_platform.name}/Runner.xcodeproj/project.pbxproj\n'
' ${_platform.name}/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme '
'(or the scheme for the flavor used)\n\n'
'To avoid this failure, disable Flutter Swift Package Manager integration for the project\n'
'To add Swift Package Manager integration manually, please use the following instructions:\n'
'https://docs.flutter.dev/to/add-swift-package-manager-manually\n\n'
'Alternatively, to avoid this failure, disable Flutter Swift Package Manager integration for the project\n'
'by adding the following in the project\'s pubspec.yaml under the "flutter" section:\n'
' "disable-swift-package-manager: true"\n'
'Alternatively, disable Flutter Swift Package Manager integration globally with the\n'
'Or disable Flutter Swift Package Manager integration globally with the\n'
'following command:\n'
' "flutter config --no-enable-swift-package-manager"\n',
);