Skip to content
Cnone-Tech Documentation

iOS

Cnone-Tech DocsVeldriq Field

Veldriq Field

macOS and Xcode 15+ are required. There is no iOS flavor matrix — dart-defines select the environment. Deployment target is iOS 15.0.

Windows and Linux cannot archive iOS. A missing Xcode is a toolchain error, not a missing Flutter feature.

This documentation does not include author provisioning profiles or certificates. Store listing and review are your responsibility.

  1. Confirm flutter doctor -v shows Xcode OK. A CocoaPods [!] does not block Android.
  2. From the Flutter project root:
Terminal window
cd mobile
flutter pub get
flutter build ios --release --no-codesign \
--dart-define=APP_ENV=production \
--dart-define=API_BASE_URL=https://fsm.example.com \
--dart-define=APP_DISPLAY_NAME=Veldriq Field
  1. Open ios/Runner.xcworkspace in Xcode.
  2. Select the Runner target, set your Team, set PRODUCT_BUNDLE_IDENTIFIER to a bundle you own (template: com.cnonetech.veldriq.field).
  3. Set CFBundleDisplayName in ios/Runner/Info.plist (default Veldriq Field). APP_DISPLAY_NAME does not change the home-screen label.
  4. App Store / Springboard icon is ios/Runner/Assets.xcassets/AppIcon.appiconset — see Branding.
  5. Product → Archive, then distribute to TestFlight or export an IPA with your signing.
Terminal window
flutter run \
--dart-define=APP_ENV=development \
--dart-define=API_BASE_URL=http://127.0.0.1:8000 \
--dart-define=APP_DISPLAY_NAME=Field\ Dev

Camera, barcode, and APNs are not equivalent on the Simulator — validate those on a device. Cleartext HTTP may still be blocked by ATS; production must be HTTPS.

NSCameraUsageDescription explains profile photo, job evidence, and barcode scanning. NSPhotoLibraryUsageDescription explains profile photo and attaching an existing evidence photo. Do not add location usage strings. This app has no GPS.

Version strings come from pubspec.yaml 1.0.0+1. Bump before each App Store Connect upload.

  • “not configured for iOS” on Windows/Linux → use a Mac.
  • Firebase plist missing → expected; login does not require it.
  • Splash should become Welcome back, not Invalid configuration.