A powerful CLI tool that enables developers to build Flutter applications for iOS and Windows platforms from a Windows environment. This tool bridges the gap for users who need access to macOS for iOS builds and simplifies the Windows build process.
- Cross-Platform Building: Build iOS applications without requiring a local macOS machine
- Windows Build Support: Streamlined Windows build process with enhanced error handling
- Remote Build Server Integration: Secure communication with remote build servers for iOS builds
- Custom Build Configurations: Support for custom build settings and configurations
- Detailed Error Reporting: Comprehensive error handling and reporting system
- Rust 1.70 or higher
- Flutter SDK installed and in PATH
- Windows 10/11 operating system
- Internet connection for iOS builds
- Access to a compatible remote build server for iOS builds
- Clone the repository:
git clone https://github.com/qharny/CrossBuild cd CrossBuild- Build the project:
cargo build --release- (Optional) Add to PATH for global access:
# Add the binary location to your system's PATHBefore using the iOS build feature, configure your remote build server:
CrossBuild configure --server "https://your-build-server.com" --api-key "your-api-key"# Debug build CrossBuild ios # Release build CrossBuild ios --release # Custom configuration CrossBuild ios --config custom_config.json --release# Debug build CrossBuild windows # Release build CrossBuild windows --release # Custom configuration CrossBuild windows --config custom_config.json --releaseThe server configuration is stored in %APPDATA%/CrossBuild/config.json:
{ "server_url": "https://your-build-server.com", "api_key": "your-api-key" }Custom build configurations can be specified in JSON format:
{ "target_platform": "ios", "build_mode": "release", "extra_flags": [ "--no-codesign", "--verbose" ] }The tool provides detailed error messages for common issues:
- Remote server connection failures
- Build process errors
- Configuration issues
- Flutter command execution problems
- Project validation errors
CrossBuild/ ├── Cargo.toml ├── src/ │ ├── main.rs │ ├── error.rs │ ├── build/ │ │ ├── mod.rs │ │ ├── ios.rs │ │ └── windows.rs │ ├── config/ │ │ ├── mod.rs │ │ └── templates/ │ │ ├── ios_default.json │ │ └── windows_default.json │ ├── remote/ │ │ └── mod.rs │ └── utils/ │ └── mod.rs ├── tests/ │ ├── build_tests.rs │ ├── config_tests.rs │ └── remote_tests.rs └── README.md # Run all tests cargo test # Run specific test suite cargo test build_tests # Run with logging RUST_LOG=debug cargo test-
Remote Server Connection Failed
- Verify your internet connection
- Check server URL and API key configuration
- Ensure the remote server is operational
-
Flutter Command Not Found
- Verify Flutter is installed
- Check if Flutter is in your PATH
- Run
flutter doctorto verify your setup
-
Build Configuration Errors
- Validate JSON syntax in configuration files
- Ensure all required fields are present
- Check file permissions
For detailed logging, set the RUST_LOG environment variable:
RUST_LOG=debug CrossBuild ios --release- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Flutter team for the amazing framework
- Rust community for the robust tooling
- All contributors who helped shape this project
For support or queries:
- Create an issue in the repository
- Email: kabuteymanasseh5@gmail.com
- Twitter: @mr_kabuteyy