If we only list which tools Flutter has, it's easy to list a bunch of names. But how these tools connect with each other is the most time-consuming part in actual development.
Below, from project creation → debugging → building → iOS publishing, each step corresponds to a specific tool, and we explain when and how to use them.
Project Initialization
A Flutter project is created from the command line. Run the following on your system (Windows / macOS / Linux):
flutter create my_app
cd my_app
flutter run
After this step, Android can run directly, and the iOS project will automatically generate the /ios directory.
Tools
| Tool | Purpose |
|---|---|
| Flutter SDK | Core for project creation and building |
| Dart SDK | Language support |
Development Phase
Common choices:
- VS Code
- Android Studio
Key features:
- Hot Reload
- Debug panel
- Log viewer
For example, in VS Code:
flutter run --verbose
You can see:
- Network requests
- Rendering logs
- Crash information
Dependency Management: pubspec.yaml
Flutter project dependencies are centralized in:
dependencies:
http: ^1.0.0
provider: ^6.0.0
Run:
flutter pub get
This step will:
- Download dependencies
- Update the lock file
If the build fails, check here first.
Building Flutter iOS: Underlying Xcode
Run:
flutter build ipa
Flutter will:
- Compile Dart code
- Invoke Xcode to build
- Generate an IPA
This step depends on:
- Certificates
- Provisioning profiles
If signing is missing, it will fail directly.
Signing Preparation: Flutter Itself Does Not Handle Certificates
Flutter is not responsible for certificate generation; additional tools are needed.
You can use AppUploader (Happy Release) to prepare the signing environment:
Generate Certificate
- Open the tool
- Enter certificate management
- Create a new certificate (distribution)
- Set a password
- Download
.p12
Create Provisioning Profile
- Enter provisioning profile management
- Create a new App Store type
- Bind Bundle ID
- Select the certificate
- Download
.mobileprovision
Use in Flutter Project
After importing the certificates, Xcode will recognize them, and flutter build ipa can execute normally.
Upload IPA: Flutter Does Not Include Upload Capability
After Flutter builds, you only get an IPA file.
Uploading requires additional tools.
Options include:
- Xcode Organizer (macOS)
- Command line tool
- AppUploader
Upload with AppUploader
On Windows or macOS:
- Open the submit upload page
- Enter Apple ID
- Set app-specific password
- Select the IPA file
- Select the upload channel
- Execute upload
After upload completes:
- The build appears in App Store Connect
Screenshots and Resource Preparation: An Easily Overlooked Step
Flutter does not handle App Store assets.
You need to prepare:
- iPhone screenshots
- iPad screenshots (if supported)
- App icon
You can take screenshots using the simulator or use online generation tools, for example:
- Adjust resolution to generate iPad screenshots
- Use icon tools to generate Assets
- Or go to the Appuploader website
Common Pitfalls
In Flutter projects, common errors:
- Bundle ID modified but provisioning profile not updated
Symptoms:
- Build succeeds
- Upload fails or no build appears
Solutions:
- Regenerate the provisioning profile
- Confirm Bundle ID consistency
Flutter's advantage lies in a unified development experience, but during the iOS publishing phase, you still need to understand Apple's signing and release mechanisms.
Top comments (0)