PaySuite Logo
Installation Progress

iOS App Installation Guide

About This Guide

This comprehensive guide covers everything you need to deploy your PaySuite Flutter application to iOS devices and the Apple App Store. From initial setup to final submission, we've got you covered.

This guide provides comprehensive instructions for setting up, configuring, building, and distributing the PaySuite iOS application. Follow these steps to successfully deploy the Flutter-based application to iOS devices and the App Store.

System Requirements

macOS Required

iOS development requires a Mac computer. You cannot build iOS apps on Windows or Linux.

Hardware Requirements

Mac Computer Apple Silicon (M1/M2/M3) or Intel-based Mac
Operating System macOS 12.0 (Monterey) or later Required
Storage Minimum 10 GB free disk space
RAM 8 GB minimum (16 GB recommended)

Software Requirements

Flutter Version 3.38.6 or later
Dart Version 3.10.7 or later
Xcode Version 15.0 or later Required
CocoaPods Version 1.15.0 or later
iOS SDK iOS 14.0 or later

Apple Developer Account

  • Apple ID: Required for Xcode and App Store distribution
  • Developer Program: Annual subscription ($99/year) for app distribution
  • Provisioning Profiles: For code signing and device testing
  • Certificates: Development and distribution certificates
Free Testing

You can test apps on physical devices for free with a regular Apple ID. The $99/year Developer Program is only needed for App Store distribution.

MacOS Development Setup

1Install Homebrew (Package Manager)

Homebrew is the package manager for macOS. Open Terminal and run:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

After installation, verify it's working:

brew --version
# Should display Homebrew version

2Install Flutter on macOS

Download and install the Flutter SDK:

# Download Flutter SDK
cd ~/development
git clone https://github.com/flutter/flutter.git -b stable

# Add Flutter to your PATH
echo 'export PATH="$PATH:$HOME/development/flutter/bin"' >> ~/.zshrc
source ~/.zshrc

# Verify installation
flutter doctor
Success Indicator

Running flutter doctor should show the Flutter installation with checkmarks for completed items.

Video Tutorial

3Install CocoaPods

CocoaPods manages iOS dependencies for Flutter projects:

sudo gem install cocoapods
pod setup

If you encounter permission errors, try:

sudo gem install cocoapods -n /usr/local/bin

For Apple Silicon Macs (M1/M2/M3), you might need:

sudo arch -x86_64 gem install ffi
sudo gem install cocoapods

Xcode Installation & Setup

1Install Xcode

Xcode is Apple's integrated development environment (IDE) for iOS development.

Installation Options:
  • Mac App Store: Search for "Xcode" and click "Get" (Recommended)
  • Apple Developer: Download from developer.apple.com
Large Download

Xcode is over 12 GB. Ensure you have a stable internet connection and sufficient storage space.

Video Tutorial

2Install Xcode Command Line Tools

Install essential command-line tools for development:

xcode-select --install

Verify the installation:

xcode-select -p
# Should return: /Applications/Xcode.app/Contents/Developer

3Accept Xcode License Agreement

You must accept the license before using Xcode:

sudo xcodebuild -license accept
Note

You'll be prompted to enter your macOS password. Type it (it won't be visible) and press Enter.

4Configure Xcode & Install Simulators

  1. Launch Xcode from Applications
  2. Go to Xcode → Settings → Platforms
  3. Install the latest iOS simulator
  4. Install additional required components when prompted
  • iPhone 15 Pro (latest flagship)
  • iPhone SE (smaller screen testing)
  • iPad Pro 12.9-inch (tablet testing)

Get Started with PaySuite iOS

1Download and Extract the Project

Download the PaySuite Flutter project and extract it to your development directory:

cd ~/development
unzip paysuite-ios.zip
cd paysuite-ios

2Open Project in IDE

Choose your preferred development environment:

Android Studio:

  1. Open Android Studio
  2. File → Open
  3. Select the project folder
  4. Wait for indexing to complete

Visual Studio Code:

  1. Open VS Code
  2. File → Open Folder
  3. Select the project folder
  4. Install Flutter extension if not already installed

Xcode (iOS Only):

  1. Navigate to ios folder
  2. Open Runner.xcworkspace (not .xcodeproj)
  3. Wait for project to load
Opening iOS Project

3Configure API Endpoints

Connect your mobile app to your REST API by updating the base URL:

File Location
utils/app_constants.dart
class AppConstants {
  static const String baseUrl = "https://your-api-domain.com/api/";
  // Update with your actual API endpoint
}
API Configuration
Important

Ensure your API URL ends with a forward slash (/) and uses HTTPS for production environments.

iOS-Specific Configuration

1Configure iOS Deployment Target

Set the minimum iOS version your app supports:

File Location
ios/Podfile
platform :ios, '14.0'
# Minimum iOS version supported
  • iOS 14+: ~95% of devices (Recommended minimum)
  • iOS 15+: ~85% of devices
  • iOS 16+: ~70% of devices

Setting iOS 14 as minimum ensures maximum device compatibility.

2Update Info.plist with Permissions

Configure required permissions for your app features:

File Location
ios/Runner/Info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>Need photo library access to upload images</string>

<key>NSCameraUsageDescription</key>
<string>Need camera access to take photos</string>

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for audio features</string>

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Photo Library Access user's photos for uploads/profile pictures
Camera Take photos directly within the app
Microphone Record audio for voice features
Location Access GPS for location-based features
Notifications Send push notifications to users

3Configure App Capabilities

Enable required capabilities in Xcode:

  1. Open ios/Runner.xcworkspace in Xcode
  2. Select the Runner project
  3. Select the Runner target
  4. Click Signing & Capabilities tab
  5. Click + Capability to add:
  • Background Modes (for background tasks)
  • Push Notifications (for push messages)
  • In-App Purchase (if selling products/subscriptions)
  • Associated Domains (for universal links)

iOS App Icons Configuration

Icon Requirements

iOS requires multiple icon sizes to support different devices and contexts. You'll need to generate a complete icon set.

1Prepare App Icons

Generate all required icon sizes using one of these methods:

Online Tools (Recommended):
Design Guidelines:
  • Base Size: Start with 512×512 px image
  • Format: PNG with no transparency
  • Color Space: sRGB or Display P3
  • Shape: Square (iOS applies rounded corners automatically)
  • Content: Avoid text (use simple, recognizable imagery)

2Required Icon Sizes

iOS requires these specific icon sizes:

Device/Context Size (pixels) Scale Points
iPhone 180×180 3x 60×60 points
iPhone 120×120 2x 60×60 points
iPad Pro 167×167 2x 83.5×83.5 points
iPad 152×152 2x 76×76 points
App Store 512×512 1x 512×512 points
Settings 87×87 3x 29×29 points
Settings 58×58 2x 29×29 points
Notifications 60×60 3x 20×20 points
Notifications 40×40 2x 20×20 points

3Replace App Icons in Xcode

Add your generated icons to the project:

  1. Navigate to ios/Runner/Assets.xcassets/AppIcon.appiconset
  2. Open this folder in Finder
  3. Replace all icon files with your generated icons
  4. Or use Xcode: Open Runner.xcworkspace → Assets.xcassets → AppIcon → Drag & drop icons
iOS App Icon Configuration
Verification

In Xcode, all icon slots in AppIcon should be filled with no warnings. Missing icons will cause App Store submission to fail.

Bundle Identifier & Code Signing

Critical Information

The Bundle Identifier uniquely identifies your app in the App Store. Once published, it cannot be changed. Choose carefully!

1Change Bundle Identifier

Update your app's unique identifier in Xcode:

  1. Open ios/Runner.xcworkspace in Xcode
  2. Select Runner in the Project Navigator
  3. Select the Runner target (not the project)
  4. Go to the General tab
  5. Update Bundle Identifier field
Bundle ID Format
com.yourcompany.paysuite

Use reverse domain notation (e.g., com.company.appname)

  • Format: Reverse domain notation
  • Characters: Letters, numbers, hyphens, and periods only
  • Example: com.paysuite.mobile
  • Uniqueness: Must be globally unique across all iOS apps
  • Consistency: Should match your website domain when possible

2Configure Code Signing

Set up code signing to run on devices and distribute to the App Store:

Automatic Signing (Recommended for Beginners):
  1. In Xcode, go to Signing & Capabilities tab
  2. Check "Automatically manage signing"
  3. Select your Team from dropdown
  4. Xcode will automatically generate provisioning profiles
Team Selection

If you don't see your team, sign in with your Apple ID in Xcode → Settings → Accounts.

For more control, use manual signing:

  1. Uncheck "Automatically manage signing"
  2. Create certificates in Apple Developer Portal
  3. Create provisioning profiles for development and distribution
  4. Download and install profiles in Xcode
  5. Select appropriate profiles in Xcode

3Update Display Name

Change the name that appears under your app icon:

File Location
ios/Runner/Info.plist
<key>CFBundleDisplayName</key>
<string>PaySuite</string>

Character Limit: Keep it under 12 characters for best display on all devices.

Install iOS Dependencies

1Install Flutter Dependencies

Clean and fetch all Flutter packages:

flutter clean
flutter pub get

2Install CocoaPods Dependencies

Navigate to the iOS directory and install native dependencies:

cd ios
pod deintegrate
pod cache clean --all
pod install
This May Take a While

The first pod install can take 5-10 minutes depending on your internet speed and number of dependencies.

If you encounter errors during pod install:

# Update CocoaPods
sudo gem install cocoapods

# Clear all caches
rm -rf ~/Library/Caches/CocoaPods
rm -rf Pods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
rm Podfile.lock

# Try again
pod install --repo-update

3Verify Installation

Check that everything is properly configured:

flutter doctor

Look for checkmarks (✓) next to:

  • Flutter (Channel stable)
  • Xcode - develop for iOS and macOS
  • VS Code or Android Studio (your IDE)
  • Connected device

Run iOS Application

1List Available Devices

See all available iOS simulators and connected devices:

flutter devices

Open an iOS simulator:

open -a Simulator

2Run on iOS Simulator

Launch your app on the simulator:

flutter run

Or specify a specific simulator:

flutter run -d "iPhone 15 Pro"
Rotate Device Cmd + Left/Right Arrow
Home Button Cmd + Shift + H
Lock Screen Cmd + L
Screenshot Cmd + S
Toggle Appearance Cmd + Shift + A

3Run on Physical iPhone/iPad

Test on a real device for accurate performance testing:

  1. Connect Device: Plug iPhone/iPad via USB cable
  2. Trust Computer: Unlock device and tap "Trust" when prompted
  3. Keep Awake: Keep the device unlocked during installation
  4. Select in Xcode: Choose your device from the device list
  5. Run: Execute flutter run -d "Your iPhone Name"
First Time Setup

After installing on a physical device for the first time, go to Settings → General → VPN & Device Management → Trust Developer on your iPhone/iPad.

4Development Features

Use these keyboard shortcuts while running your app:

Hot Reload Press r in terminal - Updates UI without losing state
Hot Restart Press R in terminal - Full app restart
Open DevTools Press v in terminal - Opens debugging tools
Stop App Press q in terminal - Quit the application

Build & Archive for Distribution

1Build Release Version

Create a release build of your iOS app:

flutter build ios --release
Build Time

The first release build can take 10-15 minutes. Subsequent builds are much faster.

2Open Project in Xcode

Open the workspace file (not the project file):

open ios/Runner.xcworkspace
Important

Always open .xcworkspace, not .xcodeproj. The workspace file includes CocoaPods dependencies.

3Configure Archive Settings

Prepare your project for archiving:

  1. In Xcode, select Runner project in navigator
  2. Select Runner target
  3. Go to Build Settings tab
  4. Search for "iOS Deployment Target"
  5. Ensure it matches your minimum version (e.g., 14.0)
  • Bitcode: Set to "Yes" (required for App Store)
  • Strip Debug Symbols: Set to "Yes" for release
  • Dead Code Stripping: Set to "Yes" to reduce app size
  • Optimization Level: Set to "Fastest, Smallest"

4Create Archive

Archive your app for distribution:

  1. In Xcode, select Any iOS Device (arm64) or Generic iOS Device as build target
  2. Go to menu: Product → Archive
  3. Wait for the archive process to complete (5-10 minutes)
  4. The Organizer window will open automatically when done
Archive Created

Your archive will appear in the Organizer with today's date and time. You can create multiple archives.

5Validate Archive

Check for issues before uploading to App Store:

  1. In Organizer window, select your latest archive
  2. Click "Validate App" button
  3. Select your distribution certificate and provisioning profile
  4. Click "Validate" and wait for results
  5. Fix any errors or warnings before proceeding
  • Missing Icons: Ensure all icon sizes are provided
  • Invalid Bundle ID: Check Bundle Identifier format
  • Missing Permissions: Add required Info.plist descriptions
  • Code Signing Issues: Verify certificates and profiles

App Store Connect & Distribution

Before You Begin

Ensure you have an active Apple Developer Program membership ($99/year) to submit apps to the App Store.

1Prepare App Store Assets

Gather all required materials before creating your app listing:

App Store Icon: 1024×1024 px PNG (no transparency)
iPhone Screenshots: 6.7" display (1290×2796 px) - At least 3 required
iPhone Screenshots: 6.5" display (1284×2778 px) - Optional but recommended
iPad Screenshots: 12.9" display (2048×2732 px) - If supporting iPad
App Preview Video: 15-30 second video demo (optional)
App Description: Clear, compelling description (4000 characters max)
Keywords: Relevant search terms (100 characters max)
Support URL: Customer support website
Privacy Policy URL: Required for all apps
  • Show your app's key features and benefits
  • Use clean, simple screenshots without clutter
  • Highlight unique selling points
  • Consider adding text overlays to explain features
  • Use the simulator to capture screenshots at exact sizes

2Create App Record in App Store Connect

Register your app in the App Store:

  1. Visit App Store Connect
  2. Sign in with your Apple Developer account
  3. Click "My Apps"
  4. Click the "+" button → "New App"
  5. Fill in the app information:
Platform iOS
Name PaySuite (must be unique, check availability)
Primary Language English (or your primary language)
Bundle ID Select your bundle ID from dropdown
SKU Unique identifier (e.g., paysuite-ios-2024)
User Access Full Access (recommended)
App Name

Your app name must be unique across the entire App Store. If taken, you'll need to choose a different name.

3Upload Build to App Store Connect

Submit your validated archive:

  1. In Xcode Organizer, select your validated archive
  2. Click "Distribute App"
  3. Select "App Store Connect"
  4. Choose "Upload"
  5. Select your distribution certificate and provisioning profile
  6. Review the app information
  7. Click "Upload"
  8. Wait for upload to complete (can take 10-30 minutes)
Upload Complete

You'll receive an email from Apple when your build is processed and ready (usually within 15-30 minutes).

4Complete App Information

Fill in all required sections in App Store Connect:

App Information:
  • Category (Primary & Secondary)
  • Content Rights
  • Age Rating (complete questionnaire)
Pricing and Availability:
  • Price (Free or Paid)
  • Availability date
  • Territories (where app is available)
App Privacy:
  • Privacy Policy URL
  • Data collection and usage details
  • Third-party data sharing information
App Store Listing:
  • Name and subtitle
  • Description and promotional text
  • Keywords
  • Screenshots for all device sizes
  • App preview videos (optional)
  • Support URL and marketing URL

5Submit for Review

Final steps before submission:

  1. Navigate to your app in App Store Connect
  2. Go to the "App Store" tab
  3. Click "+ Version or Platform""iOS"
  4. Select your uploaded build
  5. Complete all required fields marked with red asterisks
  6. Review all information for accuracy
  7. Click "Submit for Review"
Review Timeline

App review typically takes 24-48 hours. You'll receive emails about status changes. Check status in App Store Connect.

6TestFlight Beta Testing (Optional)

Test your app with users before public release:

  1. In App Store Connect, go to "TestFlight" tab
  2. Select your build
  3. Internal Testing: Add up to 100 team members
  4. External Testing: Add up to 10,000 external testers
  5. Submit for Beta App Review (required for external testing)
  6. Share public link or invite testers via email
  7. Collect feedback and iterate
  • Test with real users before public launch
  • Gather crash reports and analytics
  • Collect user feedback
  • Verify app works on various devices
  • Test in-app purchases in sandbox environment

Common Issues & Troubleshooting

CocoaPods Installation Issues

If pod install fails:

# Reinstall CocoaPods with correct path
sudo gem install cocoapods -n /usr/local/bin

# Update pod repository
pod repo update

# Clean and reinstall
rm -rf Pods Podfile.lock
pod install

# For Apple Silicon Macs
sudo arch -x86_64 gem install ffi
sudo gem install cocoapods

Code Signing Errors

Resolve common signing issues:

# Clean derived data
rm -rf ~/Library/Developer/Xcode/DerivedData

# Reset provisioning profiles
rm -rf ~/Library/MobileDevice/Provisioning\ Profiles

# In Xcode: Product → Clean Build Folder
# Keyboard shortcut: Shift + Cmd + K

# Re-download provisioning profiles
# Xcode → Settings → Accounts → Download Manual Profiles
  1. Open Xcode → Settings → Accounts
  2. Select your Apple ID
  3. Click "Download Manual Profiles"
  4. Go to project Signing & Capabilities
  5. Uncheck "Automatically manage signing"
  6. Manually select correct profiles
  7. Re-enable "Automatically manage signing"

Flutter iOS Build Issues

Fix build problems:

# Complete clean
flutter clean
rm -rf ios/Pods ios/Podfile.lock ios/.symlinks
rm -rf ~/Library/Developer/Xcode/DerivedData/*

# Reinstall dependencies
cd ios
pod deintegrate
pod install
cd ..

# Update Flutter
flutter upgrade
flutter doctor -v

# Rebuild
flutter build ios --release

Simulator Issues

Reset and manage simulators:

# Shutdown all simulators
xcrun simctl shutdown all

# Erase all simulator data
xcrun simctl erase all

# List available simulators
xcrun simctl list devices

# Boot specific simulator
xcrun simctl boot "iPhone 15 Pro"

# Delete unavailable simulators
xcrun simctl delete unavailable

Memory and Performance Issues

Optimize Xcode performance:

# Increase Xcode memory for compilation
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks `sysctl -n hw.ncpu`

# Clear Xcode caches
rm -rf ~/Library/Caches/com.apple.dt.Xcode
rm -rf ~/Library/Developer/Xcode/DerivedData

# Restart Xcode and Mac if issues persist

Useful Debugging Commands

Helpful commands for troubleshooting:

# Detailed Flutter doctor output
flutter doctor -v

# List all connected devices
flutter devices

# Build and analyze app size
flutter build ios --analyze-size

# Build IPA directly
flutter build ipa

# Check iOS deployment
flutter run -v

# Clean everything
flutter clean && cd ios && pod deintegrate && pod install && cd ..

App Store Rejection Issues

  • Missing Privacy Policy: Add valid privacy policy URL
  • Incomplete Metadata: Fill all required App Store fields
  • Crashes: Test thoroughly before submission
  • Misleading Screenshots: Show actual app functionality
  • Missing Features: App must work as described
  • Inappropriate Content: Follow App Store guidelines

Resources: Review App Store Review Guidelines

Congratulations!

You've completed the iOS installation and deployment guide for PaySuite. Your app is now ready for the App Store!

  • Continue testing on various iOS devices and versions
  • Monitor crash reports and analytics in App Store Connect
  • Respond to user reviews and feedback
  • Plan regular updates with new features and bug fixes
  • Check out the User Guide for app features documentation