Build & publish for iOS
You need a Mac with Xcode and an Apple Developer account (yearly fee). Do this once per app.
1. Signing in Xcode
Section titled “1. Signing in Xcode”- Open the app’s
ios/Runner.xcworkspacein Xcode. - Runner project → Runner target → Signing & Capabilities: tick Automatically manage signing and choose your Team. Check the Bundle Identifier is yours (Rename & rebrand).
- Keep the capabilities already listed:
- Push Notifications;
- Sign in with Apple (customer and seller apps);
- Associated Domains (shared links);
- Background Modes — Remote notifications, and Location updates in the rider app.
- Customer app only: repeat step 2 for the ImageNotification and RapidOrderLiveActivity targets, with the same team.
2. Set the version
Section titled “2. Set the version”In the app’s pubspec.yaml: version: 1.0.0+1. Increase the build number (+2, +3 …) for every
upload to App Store Connect.
3. Build
Section titled “3. Build”Check baseUrl in lib/app_config.dart is your server
(Connect the apps to your server), then:
cd apps/customerflutter build ipa --releaseThe archive is in build/ios/archive/ and the upload-ready file in build/ios/ipa/.
4. Create the app in App Store Connect
Section titled “4. Create the app in App Store Connect”App Store Connect → Apps → + → New App: platform
iOS, your app name, primary language, the Bundle ID you set in Xcode, and a SKU (any reference,
like quickmart-customer).
5. Upload
Section titled “5. Upload”Either:
- Transporter (Mac App Store): sign in and drag the
.ipafrombuild/ios/ipa/→ Deliver; or - Xcode: Window → Organizer → select the archive → Distribute App → App Store Connect → Upload.
Processing takes 10–30 minutes; you’ll get an email.
6. TestFlight, then the App Store
Section titled “6. TestFlight, then the App Store”- App Store Connect → your app → TestFlight: add yourself as an internal tester and install with the TestFlight app. Test sign-in, ordering, payments and notifications on a real phone.
- App Store tab → fill in the description, keywords, support and privacy policy URLs, screenshots (6.7” and 6.5” iPhone at least) and the App Privacy questions.
- App Review Information: give the reviewer a way to sign in — for phone sign-in, add a test phone number in Firebase (Authentication → Sign-in method → Phone → Phone numbers for testing) and write the number and code in the notes.
- Choose the build, then Add for Review → Submit.
Apple Pay (optional)
Section titled “Apple Pay (optional)”Apple Pay is offered at checkout through Stripe, in the customer app:
- Apple Developer → Identifiers → + → Merchant IDs → create one, like
merchant.com.yourbrand. - In Stripe → Settings → Payment methods → Apple Pay → follow the steps to add the certificate for that merchant ID.
- Xcode → customer Runner target → Signing & Capabilities → + Capability → Apple Pay → tick your merchant ID.
- Add the merchant ID to
apps/customer/lib/app_config.dart, then build as usual:static const String applePayMerchantId = 'merchant.com.yourbrand';
With applePayMerchantId left empty, the Apple Pay option simply stays hidden.