A simple Flutter package that checks the compatibility of all dependencies in the pubspec.yaml
file for specified platforms. This package reads the pubspec.yaml
file, fetches the package information from pub.dev
, and verifies the platforms (like Android
, iOS
, web
, macOS
, Windows
, and Linux
) against the provided list.
Features
- Platform Compatibility Check:
- Specify platforms (e.g.,
android
,ios
,web
, etc.) to check which packages are supported.
- Specify platforms (e.g.,
- Detailed Reporting:
- List all packages with their supported platforms. Optionally show package links for more details.
- Easy to Use:
- Command-line arguments for quick execution and flexibility.
Getting started
Add pubspec_checker
to your Flutter or Dart project:
dev_dependencies:
pubspec_checker: ^1.0.0
Run this command:
flutter pub get
Usage
Command-Line Interface (CLI) To use the package, run the following command:
dart run pubspec_checker <platforms> [options]
Parameters
<platforms>
: The platforms to check compatibility for. Supported values are:- android
- ios
- web
- windows
- linux
- macos
Options
-s
or--show
: Display the list of packages with their supported platforms.--l
or--links
: Display the links to the package details.
Examples
Check compatibility for android
and ios
:
dart run pubspec_checker android ios
Check compatibility for web
:
dart run pubspec_checker web
or
dart run pubspec_checker:web
Example Output:
PS D:\Repository\pubspec_checker\example> dart run pubspec_checker windows ios
Building package executable...
Built pubspec_checker:pubspec_checker.
------- Started checking compatibility for "windows" -------
(2) Supported:
✅ file_picker
✅ connectivity_plus
(5) Not Supported:
❌ pusher_client
❌ disk_space
❌ open_file_plus
❌ sqflite_sqlcipher
❌ flutter_pdfview
------- Compatibility check completed for "windows" --------
Additional information
If you want to use the package programmatically, here’s how you can do it:
import 'package:pubspec_checker/pubspec_checker.dart';
void main() async {
final checker = PlatformChecker(['ios', 'android']);
final reader = PubspecReader();
final dependencies = reader.getDependencies();
final results = await checker.checkPackageCompatibility(dependencies);
for (var package in results.entries) {
print('Package: ${package.key}, Supported Platforms: ${package.value.join(", ")}');
}
}
Contributing
Contributions are welcome! If you encounter any issues or have feature requests, please open an issue or submit a pull request on GitHub.
License
This package is licensed under the MIT License.