🛒 Bringo

Seller App

Build iOS

The Seller app ships with a complete Xcode project (ios/Runner.xcworkspace, Podfile and all), pre-set to the placeholder bundle id com.bringo.seller. You change that id to your own, add your Firebase file, and build.

1. Open the project

cd seller_app
flutter pub get
cd ios && pod install && cd ..
open ios/Runner.xcworkspace
⚠️
Don't run flutter create on this folder — the iOS project already exists, and re-scaffolding it overwrites the shipped configuration.

2. Configure in Xcode

  • Signing & Capabilities — set your Team and Bundle Identifier.
  • Capabilities — add Push Notifications and Background Modes → Remote notifications.
  • Firebase — add your GoogleService-Info.plist to ios/Runner/.
  • Face ID — if you keep the biometric lock, add an NSFaceIDUsageDescription string to Info.plist.

3. Build & submit

flutter build ipa --release --dart-define=API_BASE=https://your-domain.com

Archive from Xcode (Product → Archive → Distribute) or upload the .ipa with Transporter, then submit in App Store Connect.

What each step is really doing

pod install
Downloads the native iOS dependencies. Re-run it after every flutter pub get that adds or updates a plugin, or the build will fail with missing headers.
Open the .xcworkspace, never the .xcodeproj
The workspace is what links CocoaPods in. Opening the bare project produces "module not found" errors that look unrelated.
Bundle identifier
Must match the id registered in your Apple Developer account and the one in your Firebase iOS app, or push and sign-in silently fail on device.
Team
Selecting a Team is what lets Xcode create provisioning profiles. Without it you cannot install on a physical device or archive.

Common build failures

"Signing for Runner requires a development team"
No Team selected — Runner target → Signing & Capabilities → choose yours.
CocoaPods errors, or a plugin's header is missing
pod repo update && pod install. If it persists, delete Podfile.lock and Pods/, then pod install again.
"Command PhaseScriptExecution failed"
Almost always a stale build. flutter clean, then flutter pub get, then pod install, then build again.
Archive succeeds but upload is rejected for the icon
iOS icons must have no alpha channel. Regenerate with remove_alpha_ios: true — see Change the App Logo.
App installs but push never arrives
The APNs key is not uploaded to Firebase, or the Push capability is missing. Push also never works on the Simulator — test on a real device.

Before you submit to App Review

  • Every NS…UsageDescription string in Info.plist names your brand and explains the real reason — vague strings are a common rejection.
  • Sign In with Apple is offered if you offer Google or Facebook sign-in (Apple requires it).
  • Any temporary App Transport Security exception added for local testing has been removed.
  • A demo account is supplied in App Store Connect so the reviewer can sign in.
👉
Next: Features.