iOS App Version & Maintenance Management

By Vishal Zaveri
Dot
October 10, 2025
iOS App Version & Maintenance Management

Learn how to integrate the AppsOnAir AppSync SDK into your native iOS application. This guide is designed for developers of all experience levels whether you're just starting with iOS development or you're a seasoned pro.

What is AppSync?

AppSync by AppsOnAir allows you to distribute beta builds, manage app updates and maintenance for your iOS applications. It's a powerful service for development teams to streamline their testing and deployment workflow.

AppSync simplifies app updates and maintenance by handling forced updates, optional updates, and maintenance mode automatically at app launch.

The images above show the web dashboard, where you can manage app updates and control the maintenance mode for your mobile application.

Prerequisites

Before you begin, make sure you have:

- Xcode installed on Mac OS.

- An AppsOnAir account Sign up here

- Your App ID from the AppsOnAir dashboard (found in App Settings > Keys & IDs)

Core Features 

Force Updates: 

Force users to update from the App Store or Google Play before continuing. Ideal for security patches, critical bug fixes, or breaking changes that require immediate installation.

Optional Updates:

Notify users about new features without being intrusive. They can update when convenient, keeping your app fresh without disrupting their experience.

Maintenance Updates:

Need to take your app offline for urgent fixes? Enable maintenance mode with a single toggle. Users see a friendly maintenance screen instead of a broken app

Corss-platforms support:

AppSync works across all major mobile platforms:

Installation & Integration

Here is the complete installation guide. First add the AppsOnAir-AppSync CocoaPods, add this to your Podfile:

pod 'AppSyncSDK'

in your terminal, navigate to the path where your Podfile is located (usually the iOS project directory), and run the command.

pod repo update
pod install

Here are the detailed integration steps. 

Swift

1. In your AppDelegate.swift, import the AppSync SDK:

import AppSyncSDK

2. Initialise SDK 

import AppsOnAir_AppSync
import UIKit

@UIApplicationMain
   class AppDelegate: UIResponder, UIApplicationDelegate {
     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

     // AppSync Class instance create
     let appsOnAirSyncService = AppSyncService.shared

     // AppSync common services Initialization
     appsOnAirSyncService.sync(directory: ["showNativeUI":false]) { appUpdateData in
           // Write the code here when showNative UI is false
     }
     return true
   }
   // Remaining contents of your AppDelegate Class...
 }

Objective-C

1. For Objective-C projects, add to AppDelegate.m:

#import “AppsOnAir_AppSync-Swift.h”

2. Initialise SDK


#import "AppsOnAir_AppSync-Swift.h"

@interface AppDelegate ()
@property (nonatomic, strong) AppSyncService *appsOnAirSyncService;
@end

@implementation AppDelegate


  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // App Sync Class instance create
    self.appsOnAirSyncService = [AppSyncService shared];
    // Help to enable sync manager for app with directory for showNativeUi handling and completion method
    [self.appsOnAirSyncService syncWithDirectory:@{@"showNativeUI":@NO} completion:^(NSDictionary * appUpdateData) {
        // write code of custom UI  
    }];

    return YES;
  }
  // Remaining contents of your AppDelegate Class...

SwiftUI

1. For SwiftUI  projects, add to APP_NAME.swift:

import AppSyncSDK 

2. Initialise SDK


import SwiftUI
import AppsOnAir_AppSync

@main
struct YOUR_APP_NAME: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}

class AppDelegate: NSObject, UIApplicationDelegate {

  // AppSync Class instance create
  let appsOnAirSyncService = AppSyncService.shared
  
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

    // Help to enable sync manager for app with directory for showNativeUi handling and completion method
    appsOnAirSyncService.sync(directory: ["showNativeUI":false]) { appUpdateData in
            // write code of custom UI  
    }
    return true
  }
  // Remaining contents of your AppDelegate Class...
}

Note: Replace `"YOUR_APP_ID"` with your actual App ID from the AppsOnAir dashboard.

For more details, visit the official GitHub repository.

Run & Verify 

Run your app in Xcode on iOS simulators or a physical device to ensure it builds correctly. Manage force updates and maintenance mode through the AppsOnAir web portal.

By following these guidelines, you can keep your app versions organized and deliver updates smoothly to your users. Maintenance mode helps you work safely on updates without affecting the user experience.

For more details please visit official documentation.

Start Pushing Real-Time App Updates Today
Try AppsOnAir for Free
Stay Uptodate